我不明白爲什麼,但內嵌框陰影在我的內容下。內容下方的內嵌框陰影
下面是一個例子:
div {
box-shadow:inset 0 0 10px black;
height:300px;
color:red;
}
<div>
a
</div>
你看a
是包裝盒上的陰影的頂部。
我怎樣才能得到箱子陰影在a
之上?
我不明白爲什麼,但內嵌框陰影在我的內容下。內容下方的內嵌框陰影
下面是一個例子:
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%;
}
在現代瀏覽器(包括IE9 +)中,可以使用生成的內容(':before',':after')而不是真實元素。 (IE8也支持生成的內容,但有一個錯誤,防止生成的內容超過真實內容,當然不支持CSS盒陰影本身。) –
@MaratTanalin絕對正確。它也是一個更美麗的解決方案。更新了答案。 – fncombo
我的答案很好,但我有一個問題。當我在div中央有另一個'div'時,shadow元素或僞類位於內部'div'的頂部。如果我添加一個z-index到內部div,那麼它會在box-shadow的頂部。嘗試單擊此演示中的鏈接:http://jsfiddle.net/MAckM/5/ – henryaaron
我已經使用這個解決方案很好,但另外重要的是這個div的z-index:before。 當您無法覆蓋全部內容時,請不要忘記使用它。 –