1

使用创建的阴影:before:after位于 parent 之下div。我该如何解决?父母的影子div工作正常。

在此处输入图像描述

CSS:

article {
    display: block;
    position: relative;
    width: 90%;
    background: #ccc;
    -moz-border-radius: 4px;
    border-radius: 4px;
    padding: 1.5em;
    color: rgba(0,0,0, .8);
    text-shadow: 0 1px 0 #fff;
    line-height: 1.5;
    text-align: center;
    display: block;
    margin: 20em auto;
}


article:before, article:after {
    z-index: -1;
    position: absolute;
    content: "";
    bottom: 15px;
    left: 10px;
    width: 50%;
    top: 80%;
    max-width:300px;
    background: rgba(0, 0, 0, 0.7);
    -webkit-box-shadow: 0 15px 10px rgba(0,0,0, 0.7);   
    -moz-box-shadow: 0 15px 10px rgba(0, 0, 0, 0.7);
    box-shadow: 0 15px 10px rgba(0, 0, 0, 0.7);
    -webkit-transform: rotate(-3deg);    
    -moz-transform: rotate(-3deg);   
    -o-transform: rotate(-3deg);
}

article:after {
    -webkit-transform: rotate(3deg);
    -moz-transform: rotate(3deg);
    -o-transform: rotate(3deg);
    right: 10px;
    left: auto;
}

HTML:

<body>
    <div>
        <table>
            <tr>
                <td>
                    <div>this div has also a nice shadow effect (works), but created with another div by z-index:-1;
                        <article>
                            <p>this will have a nice shadow effect(doesnt work)</p>
                        </article>
                    </div>
                    ...
4

2 回答 2

1

已发布代码的 JS 小提琴,清理了一下。

和伪选择器允许您向:before元素的文本节点添加内容。您不能使用这些伪选择器将其他元素或节点添加到 DOM 中。:after

由于您附加了一个空白字符串,我不确定您想要设置什么内容,但现在您正尝试向text添加一个框阴影

此外,您的 CSS 中的缩进完全乱码,并且您有一些流氓 HTML 标签。您应该花 12 秒时间查看您发布的代码,以便我们花时间阅读,以推断和帮助您消除误解;如果您通过花时间在您的问题上来尊重我们的时间,您会得到更好的帮助。

于 2011-08-06T22:02:26.750 回答
1

您的代码对我来说很好,请参阅http://jsfiddle.net/NAEmW/2/。在 FF 和 Chrome 中测试都可以,当然 IE<=8 是没有希望的。

可以杀死它的一件事是 CSS 重置,所以要小心什么被清零。

于 2011-08-06T23:13:40.007 回答