2019-08-19
描述
当鼠标移上或聚焦时把隐藏的菜单弹出进行展示。
HTML
<div class="reference" tabindex="0"><div class="popout-menu">Popout menu</div></div>
CSS
.reference {
  position: relative;
  background: tomato;
  width: 100px;
  height: 100px;
}
.popout-menu {
  position: absolute;
  visibility: hidden;
  left: 100%;
  background: #333;
  color: white;
  padding: 15px;
}
.reference:hover > .popout-menu,
.reference:focus > .popout-menu,
.reference:focus-within > .popout-menu {
  visibility: visible;
}
Demo
说明
position: relative在相关的父元素上为其子元素建立笛卡尔坐标系position: absolute让弹出的菜单脱离文档流,使其可以相对于父元素进行定位left: 100%让弹出的菜单从父元素的左边向右移动 100% 的宽度,使其可以位于父元素的右侧visibility: hidden初始化时隐藏弹出的菜单,这样可以使用过渡效果。而display: none就无法使用过渡效果.reference:hover > .popout-menu意味着当鼠标移动到.reference上时,带有.popout-menu类的直接子元素就会修改他们的visibility值为visible,从而展现出菜单.reference:focus > .popout-menu意味着当聚焦于.reference,菜单就会显示出来.reference:focus-within > .popout-menu确保当聚焦于菜单内部的元素时,菜单也会进行显示
浏览器支持
支持率:100%
        
                
                ME!
            
                
                链滴