在应用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 */
}
答案 0 :(得分:6)
这是因为none
以外的值会建立stacking context。这已记录在 spec (目前处于工作草稿状态)中:
<强> 2 Module interactions 强>
此规范定义了一组影响的属性 应用这些属性的元素的可视化渲染; 在元素大小调整后应用这些效果 根据[CSS21]的视觉格式化模型定位。一些 这些属性的值会导致创建包含 阻止和/或创建堆叠上下文。
该规范还指出:
<强> 5 Graphic filters: the filter property 强>
除
none
以外的计算值会导致创建a 堆叠上下文 [CSS21]与CSS不透明度相同。