【问题标题】:Box-Shadow :before, :after z-index stacking problemsBox-Shadow :before, :after z-index 堆叠问题
【发布时间】:2012-06-22 08:10:06
【问题描述】:

所以我一直在玩两者的盒子阴影,我最近做了一些类似的事情并且效果很好。然后突然间它无缘无故停止工作!

我想做的是有一个简单的 div 框,下面有双阴影来产生折叠效果。

如果您在 jfiddle http://jsfiddle.net/TJuDu/ 查看它,您可以看到我完成的所有代码。问题是 :before 和 :after 元素的堆叠,它的位置正确但堆叠错误,阴影在 .layout div 后面,而它们应该清楚地显示在 .box div 后面。如果我删除 z-index 值,我可以看到位于 .box div 上方的阴影。

事情是我在另一个页面上做了完全一样的事情并且它工作了,然后突然它停止在那个页面上工作并且在我制作的这个例子中。

【问题讨论】:

    标签: html z-index css


    【解决方案1】:

    这个问题的第二个答案其实很好的解释了这个问题:Is it possible to set the stacking order of pseudo-elements below their parent element?

    您需要做的是像这样使用.box 作为包装器:

    <div class="box">
        <div class="pseudo-box">
            <h3>Awesome Box Title!</h3>
            <p class="box-text">This is a box!</p>
        </div>
    </div>
    

    然后对于 CSS,将以下内容应用于 .box

    position:relative;
    z-index: 2;
    

    (或与 z-index 相关的任何内容),其余样式应应用于 .pseudo-box,它应该有 position: relative; 但没有 z-index。

    最后,:before:after 应该与 .pseudo-box 关联,而不是 .box

    在这里查看它的工作原理:http://jsfiddle.net/cchana/TJuDu/1/

    【讨论】:

    • 感谢您的帮助!这太奇怪了,几天前我用一个容器来工作。这个解决方案似乎效果很好,所以竖起大拇指:)
    • 我一直在疯狂地尝试在这里合并 Nicolas Gallagher 的技巧:nicolasgallagher.com/css-drop-shadows-without-images/demo 但没有运气,直到我尝试了你的方法,将另一个包装器添加到我的 div 中,我正在尝试渲染阴影,并控制其 z-index。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-04
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多