邊框、圓角與陰影(Border & Shadow)
border 佔盒模型空間;outline 與多數 box-shadow 不佔空間。畫卡片、按鈕、輸入框時這三者常一起用。
border 基本寫法
順序習慣為 寬度 → 樣式 → 顏色。樣式若是 none,等於沒有邊框。
| 樣式 | 效果 |
|---|---|
solid |
實線(最常用) |
dashed / dotted |
虛線 / 點線 |
double |
雙線,寬度要夠才看得到 |
groove / ridge / inset / outset |
3D 效果,實際很少用 |
none |
無邊框 |
單邊與拆開寫
.panel {
border-block-end: 1px solid #e0e0e0;
}
.box {
border-width: 2px 0 2px 8px;
border-style: solid;
border-color: #264de4;
}
只改一邊時,用 border-top 這類縮寫比分開設 width/style/color 清楚。
border-radius
.card { border-radius: 12px; }
.pill { border-radius: 999px; }
.avatar {
width: 64px;
height: 64px;
border-radius: 50%;
object-fit: cover;
}
可寫 1~4 個值(對應四角),也可用 / 分開水平與垂直半徑做橢圓角:
overflow
子元素(圖片、背景)要跟著圓角裁切,父層加上 overflow: hidden 或讓圖片自己設相同 border-radius。
outline 與焦點
- 不佔局,不會把排版擠歪
- 鍵盤使用者需要看得見焦點;不要寫
outline: none卻不提供替代樣式 :focus-visible比:focus更適合:滑鼠點擊時較少出現多餘外框
box-shadow
.card {
box-shadow: 0 8px 24px rgb(0 0 0 / 12%);
}
.floating {
box-shadow:
0 1px 2px rgb(0 0 0 / 8%),
0 8px 24px rgb(0 0 0 / 12%);
}
語法:x 偏移 y 偏移 模糊 擴散 顏色。前面加 inset 變內陰影。
多重陰影用逗號分隔。filter: drop-shadow() 會沿著不透明輪廓(適合 PNG 圖示),box-shadow 則沿盒子矩形(含圓角)。
text-shadow
長文請少用,可讀性通常比平面色差。
總結
| 屬性 | 佔空間 | 典型用途 |
|---|---|---|
border |
是 | 輸入框、分隔線 |
border-radius |
否(只改形狀) | 卡片、頭像 |
outline |
否 | 鍵盤焦點 |
box-shadow |
否 | 層級、浮動感 |
下一步進入佈局:顯示與定位。