box-shadow: 2px 3px 4px rgba(0,0,0,0.5);
- 上述代碼的意義是:X坐標正向偏移2px,Y坐標正向偏移3px,模糊半徑4px。
- 陰影生成的步驟:
- 以該元素border-box相同的大小和位置,畫一個rgba(0,0,0,0.5)的矩形。
- 把它向右移2px,向左移3px。
- 按照模糊值進行模糊處理,具體的計算是:頂部具有 4px - 3px = 1px 的投影,底部具有:4px + 3px = 7px 的投影,左側具有 4px - 2px = 2px 的投影,右側具有 4px + 2px = 6px 的投影。
- 所以最終,上下左右都會有陰影出現,只是大小不同而已。
第4個參數:擴大(正值)或縮小(負值)投影的尺寸
- 例如:
box-shadow: 2px 3px 4px rgba(0,0,0,0.5);
normal.png
- 解析:見上。
box-shadow: 0 5px 4px -4px black;
single_edge.png
解析:左:4-0-4=0;右:4+0-4=0;上:4-5-4=-5;下:4+5-4=5。只有下面的陰影值為正,所以只有下方出現陰影。
box-shadow: 3px 3px 6px -3px black;
double_edge.png
- 解析:左:6-3-3=0;右:6+3-3=6;上:6-3-3=0;下:6+3-3=6。只有右下的陰影值為正,所以顯現出陰影。
- 總結:為了能將左側和上側的陰影值一同抵消,兩者的值必須一樣,而且用第四個參數減去X,Y上的偏移值,必須是第三個參數的相反數,這樣才能抵消為0。(也就是其實xy的偏移值并不一定像例子一樣是第四個參數的相反數。)