/
CATEGORY
HTML / CSS
/
利用 css 讓 ul div 置中

利用 css 讓 ul div 置中

MUKI AI Summary

利用 CSS 讓 ul 置中時,不能直接使用 text-align:center,因為 ul 預設為 display:block。可以透過改變 display 狀態來達成。

若 ul 有父層 div,父層設 text-align:center,ul 設 display:inline-block。若 ul 沒有父層,則設為 display:table,並用 margin: 0 auto。這兩種方法適用於不同的 HTML 結構,提供有效的置中解決方案。...

我們常利用 ul 做選單、做列表、做頁碼 ...等等,但會碰到一種狀況,是想讓 ul 置中,如果你直接寫 text-align:center 會發現 ul 完全不鳥你!

這是因為 ul 預設為 display:block,所以如果想讓他置中,必須更改他的 display 狀態。

想瞭解一些 element 預設的 display 狀態,可參考以下資料

html, address,
blockquote,
body, dd, div,
dl, dt, fieldset, form,
frame, frameset,
h1, h2, h3, h4,
h5, h6, noframes,
ol, p, ul, center,
dir, hr, menu, pre { 
    display: block; unicode-bidi: embed 
}

摘自:Appendix D. Default style sheet for HTML 4

我提供兩種不同的結構,跟大家分享如何讓 ul 置中

ul 外還有父層 div

假設你的結構為「ul 還有父層」,亦即:

<div class="wrap">
  <ul>
 	<li>Hello</li>
 	<li>World</li>
  </ul>
</div>

那我們可以在父層設定 text-align,並修改 uldisplay 狀態為 inline-block

.wrap {
    text-align: center;
}

.wrap ul {
    display: inline-block;
}

ul 沒有父層

如果你的 HTML 結構中,ul 沒有父層包覆,例如:

<ul class="wrap">
  <li>Hello</li>
  <li>World</li>
</ul>

那我們可以利用 margin: 0 auto 以及 display:table 調整 ul

ul.wrap {
  display: table;
  margin: 0 auto;
}

以上兩種方法供大家參考,可以針對不同的結構,採用不同的置中處理。

歡迎給我點鼓勵,讓我知道你來過 :)

11
MUKI says:

如果文章有幫助到你,歡迎分享給更多人知道。文章內容皆為 MUKI 本人的原創文章,我會經常更新文章以及修正錯誤內容,因此轉載時建議保留原出處,避免出現版本不一致或已過時的資訊。

本文地址:https://muki.tw/ul-align-center-in-css/ 已複製

Subscribe
Notify of
guest

1 則留言
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
徐培鈞
2 years ago

感謝分享

Copyright © since 2008 MUKI space* / omegaSS theme All Rights Reserved.