跳轉到

建立 2025-02-25 更新 2026-09-11

邊框、圓角與陰影(Border & Shadow)

border 佔盒模型空間;outline 與多數 box-shadow 不佔空間。畫卡片、按鈕、輸入框時這三者常一起用。

border 基本寫法

.box {
  border: 2px solid #c62828;
}

順序習慣為 寬度 → 樣式 → 顏色。樣式若是 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 個值(對應四角),也可用 / 分開水平與垂直半徑做橢圓角:

.ticket { border-radius: 8px 8px 8px 32px; }

overflow

子元素(圖片、背景)要跟著圓角裁切,父層加上 overflow: hidden 或讓圖片自己設相同 border-radius

outline 與焦點

:focus-visible {
  outline: 2px solid #264de4;
  outline-offset: 3px;
}
  • 不佔局,不會把排版擠歪
  • 鍵盤使用者需要看得見焦點;不要寫 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

.hero-title {
  text-shadow: 0 1px 2px rgb(0 0 0 / 45%);
}

長文請少用,可讀性通常比平面色差。

總結

屬性 佔空間 典型用途
border 輸入框、分隔線
border-radius 否(只改形狀) 卡片、頭像
outline 鍵盤焦點
box-shadow 層級、浮動感

下一步進入佈局:顯示與定位