我不明白为什么,但插图框阴影是我的内容之下。
下面是一个例子:
div {
box-shadow:inset 0 0 10px black;
height:300px;
color:red;
}
<div>
a
</div>
你看a
是包装盒上的阴影的顶部。
我怎样才能获得箱子的影子是在a
的顶部?
你需要做一个新的元素在div里面,绝对定位和高度和宽度为100%,然后给该元素的盒子阴影。
HTML:
<div>
<div></div>
a
</div>
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%;
}
这里是一个JSFiddle。
编辑:
或者,你可以使用伪元素:
HTML:
<div>
a
</div>
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%;
}
这个答案通过提供一个最小的例子最简单的解决方案,并解决滚动的问题。
不幸的是没有办法避免的额外包裹div
(由于box-shadow
layering)。
.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;
}
<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>