0
我想将图像添加到每个li
,但我只想在鼠标悬停时显示它。 但是,我想避免“移动”效果,这是添加到DOM的新元素(图像)的结果。我试图用visibility:hidden
修复它,因为这需要空间,但没有运气。鼠标之前的伪元素预留空间
下面是一个简单的例子,你可以看到,在盘旋这些li
的时候,它们正在向右移动。
实现此目的最简单的方法是什么?
我想将图像添加到每个li
,但我只想在鼠标悬停时显示它。 但是,我想避免“移动”效果,这是添加到DOM的新元素(图像)的结果。我试图用visibility:hidden
修复它,因为这需要空间,但没有运气。鼠标之前的伪元素预留空间
下面是一个简单的例子,你可以看到,在盘旋这些li
的时候,它们正在向右移动。
实现此目的最简单的方法是什么?
你想要任一位置所示,当伪:before
绝对元件,以防止它进入布局流动,或在为0的opacity
从:hover
状态独立地创建伪元件并设置opacity
到1时徘徊。
保持:before
向外布局的流动
ul > li:hover:before {
/* all the other styles */
position: absolute;
left: 25px;
}
小提琴:http://jsfiddle.net/marionebl/UQAjh/1/
创建:before
不管:hover
状态
ul > li:before {
/* all the other styles */
display: inline-block;
float: left;
opacity: 0;
}
ul > li:hover:before {
opacity: 1;
}
太棒了,男人!谢谢! – Ned
出于兴趣:你选择了哪个变体,为什么? – marionebl
我要使用第一个变体,更少的代码:)在第二种方法中,我尝试了与可见性类似的方法:隐藏,但没有奏效。不透明会做到这一点,太棒了! – Ned