box-shadow
(css property)box-shadow
產生陰影效果或光暈效果的特性box-shadow: x y blur spread color inset;
none
(只有一個字) 。x y
) 為必要值,必須指定;其餘的值可不定義。color
特性指定的顏色值。inset
) ,改放在第 1 個位置也可以。沒有定義就是一般在外的陰影。box-shadow:4px 4px 3px rgba(20%,20%,40%,0.5);
box-shadow:2px 2px 1px rgba(20%,20%,40%,0.5) inset;
box-shadow:2px 2px 2px rgba(20%,20%,40%,0.6),4px 4px 6px rgba(20%,20%,40%,0.4),6px 6px 12px rgba(20%,20%,40%,0.4);
接下來會有更多例子討論。
box-shadow
- w3c 官方文件 (英文) 。
思考 - css
box-shadow
輕鬆呈現質感好、多變化的陰影效果或光暈效果。外陰影 (或外光暈) 會依據 border-box 來計算尺寸及位移,而內陰影 (或內光暈) 則依據 padding-box 來計算。
稍後會看到範例的語法,都有增加了前兩段廠商專屬擴充特性,提供給部分瀏覽器未正式支援標準語法之前的較舊版本使用,加不加這段應視網站的適用領域,並不影響較新版瀏覽器,語法中以較淡色呈現。
-moz-
的:適用 firefox 等較舊版 Gecko 系列。-webkit-
的:適用 safari, google chrome 等較舊版 webkit 系列。border
。以下範例的每項主題都有加了對應的 css 效果,沒看到應該有的效果?
inset
變成內陰影,可呈現凹入的視覺。多層次陰影:一組以上數值,產生由前至後層疊的陰影,以 , (逗號) 分隔。當然陰影的透明顏色是會堆疊顏色的。
有透明區域的圖片 (
img
元素) 定義box-shadow
,當然會在整個img
元素的 box (包括透明區域) 產生陰影。這個例子除了圖片加陰影,它的外層元素也指定了inset
陰影,呈現更立體的視覺,語法內沒有寫出,請自行試試嘍。不同顏色的陰影,指定交錯的位移,也能呈現特別的視覺。陰影跨越到下方的元素也不會移動排版。
將
box-shadow
運用在像:hover
,:focus
之類具有使用者互動的指標 (selectors) ,也會有更多趣味的效果呈現,可以自行多嚐試嘍!表格或表單控制元件在部分瀏覽器異常呈現
截至撰文時, safari 5 尚未支援
box-shadow
標準語法,必須使用前面提到的-webkit-
語法。雖說
box-shadow
可適用在全部元素,不過部分較特別的元素,如表格類、表單控制元件 (controls) ,在瀏覽器上會有不太正常的處理現象。撰文時,特別測試了一些提出來討論。th
,td
) :如果在外層table
元素指定了border-collapse:collapse;
特性 (儲存格間沒空隙) ,在 ie 陰影沒效。tr
)button
,input
) ,在 ie, google chrome 須指定新的背景色,或背景透明才會有效。box-shadow
的color
值才會有效。