在应用webkit过滤器时,我注意到堆叠顺序存在一个奇怪的问题.为什么当我将鼠标悬停在图像上时,堆叠顺序会发生变化?
我宁愿不必使用z-indexing来解决这个问题,因为它打破了其他网站元素.
这是我的JSFiddle
http://jsfiddle.net/r13ycy1p/
请原谅荷马,我只需要一张图片.
编辑:如何反转效果以阻止绝对位置div被隐藏?
这是我的HTML
<ul> <li> <a href="#"> <div class="slide-content"> <div class="slide-title"> <h1>hello world</h1> </div> <div class="slide-desc"> <p>a description about something</p> </div> </div> <img src="http://img4.wikia.nocookie.net/__cb20130920142351/simpsons/images/e/e9/Pic_1187696292_8.jpg"/> </a> </li> </ul>
CSS
li { list-style:none; } .slide-content { position:absolute; color:red; top:50px; } li a:hover img{ -webkit-filter: grayscale(100%); /* For Webkit browsers */ }
解决方法
这是因为非none以外的值建立了
stacking context.这在
spec中记录(当前处于工作草案状态):
07002
This specification defines a set of CSS properties that affect the
visual rendering of elements to which those properties are applied;
these effects are applied after elements have been sized and
positioned according to the Visual formatting model from [CSS21]. Some
values of these properties result in the creation of a containing
block,and/or the creation of a stacking context.
该规范还指出:
07003
A computed value of other than
none
results in the creation of a stacking context [CSS21] the same way that CSS opacity does.