/
CATEGORY
HTML / CSS
/
用 Bootstrap 3 製作高度相同的 div (column)

用 Bootstrap 3 製作高度相同的 div (column)

MUKI AI Summary

排版網頁時,常需左右欄位高度相同。使用 Bootstrap Grid 時,可用 flex 讓 column 高度一致,方法簡單但不支援 IE9 以下。只需在 row 加上 display: flex 即可,注意 col-* 總數超過 12 仍會維持一行。

若考慮瀏覽器相容性,可用 display: table,支援度好且不需額外 DIV。設定 row 為 display: table 並加上 width: 100%,col-* 則設為 display: table-cell 且移除 float。這兩種方法簡便又適合 Bootstrap。...

排版網頁時,常常會碰到的一個需求,就是希望左右欄位的高度可以相同。而讓欄位的高度相同已經不是什麼新奇的事了,所以今天要分享的是,當你使用 Bootstrap Grid 製作網頁時,該如何將這個效果套用在 Bootstrap 裡。

會想分享這樣的內容,也是因為之前在上「RWD 入門與實戰」課程時,有同學問過這樣的問題。所以就寫成一篇文章分享給大家囉!

使用 flex 讓 column 高度相同

第一個最簡單的方法,就是使用 display: flex 讓所有欄位的高度相同。但 flex 有一個令人哀傷的事實:他不支援 IE9 以下的瀏覽器。但我想 flex 一定是未來排版的主流,所以一樣分享給大家。


你可以從範例語法的 Before 以及 After 看到前後差異。

而我只有在 row 裡面加上一行語法,即可做到該效果:

.row {
  display: flex;
}

正常情況下,Bootstrap 一行最多容納 12 columns,但如果使用 display: flex,同一個 rowcol-* 總數超過了 12,他們一樣會維持在同一行內,寬度也會自動均分。這是除了瀏覽器相容外,還需要特別注意的一件事。

使用 table 讓 column 高度相同

古早以前如果希望欄位的高度相同,用 table 不失為一個好方法,雖然現在我們不再使用表格做排版,但依然可以使用 display: table 將所有標籤的型態作轉換。

此外 display: table 的瀏覽器支援度很好,雖然語法較多,但是考量到 IE9 以下的兼容的話,推薦大家使用該方法。


Bootstrap 有 row 以及 column 的設定,所以在結構上很適合加入 display: table ,不需要再給予多餘的 DIV:

.row {
  display: table;
  width: 100%;
}

.row [class^=col-] {
  display: table-cell;
  float: none;
}

補充

  • 使用 display: table 後,寬度會等於行內元素(inline elements),因此記得要加上 width: 100%; ,讓寬度等於父層的寬度。
  • 記得在 col-* 將所有浮動給移除 (float: none),不然 display: table 不會有作用。

以上兩種方法好記又方便,如果搭配 Bootstrap,也不需要增加額外的 DIV 標籤,希望對各位有幫助。

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

1
MUKI says:

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

本文地址:https://muki.tw/bootstrap-3-same-height-div-column/ 已複製

Subscribe
Notify of
guest

0 則留言
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Copyright © since 2008 MUKI space* / omegaSS theme All Rights Reserved.