在应用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.