我不明白为什么,但插入的盒子阴影在我的内容之下.
这是一个例子:
div {
box-shadow:inset 0 0 10px black;
height:300px;
color:red;
}
Run Code Online (Sandbox Code Playgroud)
<div>
a
</div>
Run Code Online (Sandbox Code Playgroud)
你看到它a
位于盒子阴影的顶部.
如何让盒子阴影位于a
?
fnc*_*mbo 34
你需要在div中创建一个新元素,绝对定位,高度和宽度为100%,然后给该元素赋予框阴影.
HTML:
<div>
<div></div>
a
</div>?
Run Code Online (Sandbox Code Playgroud)
CSS:
div {
height:300px;
color:red;
position:relative;
}
div div {
box-shadow:inset 0 0 10px black;
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
}?
Run Code Online (Sandbox Code Playgroud)
这是一个JSFiddle.
编辑:
或者,您可以使用伪元素:
HTML:
<div>
a
</div>?
Run Code Online (Sandbox Code Playgroud)
CSS:
div {
height:300px;
color:red;
position:relative;
}
div:before {
content:'';
display:block;
box-shadow:inset 0 0 10px black;
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
}?
Run Code Online (Sandbox Code Playgroud)
这个答案通过一个最小的例子提供了最直接的解决方案,并解决了滚动问题。
不幸的是,没有办法避免额外的包装div
(由于box-shadow
分层)。
.container {
position: relative;
}
.container::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
box-shadow: inset 0 0 9px 3px yellow;
pointer-events: none;
}
.items {
height: 100px;
overflow: scroll;
}
Run Code Online (Sandbox Code Playgroud)
<div class="container">
<div class="items">
<div class="item">One</div>
<div class="item">Two</div>
<div class="item">Three</div>
<div class="item">Four</div>
<div class="item">Five</div>
<div class="item">Six</div>
<div class="item">Seven</div>
<div class="item">Eight</div>
<div class="item">Nine</div>
<div class="item">Ten</div>
<div class="item">Eleven</div>
<div class="item">Twelve</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)