Skip to content

CSS 清單屬性:項目符號的樣式與位置

CSS 清單屬性:項目符號與位置

清單樣式主要是用來控制 HTML 中 <ul><ol> 的外觀。

list-style 縮寫

list-style-type

設定清單符號的類型。

無排序

  • disc: 圓形實心,預設值。
  • circle: 圓形空心。
  • square: 方形。
  • none: 無。
  • : 自訂清單符號。

有排序

  • decimal: 編號,預設值。
  • upper-alpha: 大寫英文字母,預設值。
  • lower-alpha: 小寫英文字母,預設值。

list-style-image

使用影像作為清單符號。不過,無法控制影像的大小與調整距離。因此,使用率不高。

list-style-position

設定清單符號的位置。

  • outside: 清單符號位於清單項目文字的外部,文字會從符號後開始對齊,預設值。
  • inside: 清單符號位於清單項目文字的內部,符號會與文字一起縮排。

常見寫法

css
/* 導覽列:拿掉符號與預設縮排 */
.nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* 自訂符號:移除預設後用偽元素自己畫 */
.check-list li {
  list-style: none;
  position: relative;
  padding-left: 1.5em;
}

.check-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: #16a34a;
}

偽元素 自己畫,顏色、大小與間距都能完全控制。

小提醒

list-style 設成 none 之後,部分瀏覽器不再把它視為清單朗讀。導覽列這類重要區塊,可視需要補上對應的角色屬性。清單的語意說明可參考 列表清單

常見問題

怎麼把清單的圓點拿掉?

list-style 設成 none 即可,導覽列與卡片列表幾乎都會這樣做。要注意有些瀏覽器會因此不再把它視為清單朗讀,必要時補上對應的角色屬性。

inside 和 outside 差在哪?

outside 是預設值,符號放在內容區塊之外,換行時文字會對齊;inside 把符號放進內容區塊,換行後的文字會跑到符號下方。

可以自訂項目符號嗎?

可以用圖片,但更常見的做法是移除預設符號後,改用 偽元素 自己畫,這樣顏色、大小與間距都能完全控制。

編號可以自己控制嗎?

HTML 端可以用 startreversed 屬性;CSS 端則能用計數器自行累加,做出多層章節編號這類效果。

延伸閱讀