iT邦幫忙

2021 iThome 鐵人賽

DAY 10
0
自我挑戰組

30 天轉生到 bootstrap 5 的意識界系列 第 10

第 10 集:淺談 Container Wrapper 差異

此篇會探討 container 與 wrapper 用法,會著重在 wrapper 的探討。

在開始介紹前,想先說關於 containerwrapper 的關係有不少種解釋,我先簡單分為兩派。

相同派:

  • 兩者用法相同,只有名詞不同。

異同派:

  • 兩者用途不同。

以下內容會以 異同派 的觀點介紹 Wrapper

Container

是一個容器,內入可包含多個元素。

特性:

  • 設置容器大小
  • 容器水平置中

container

Wrapper

常見兩種命名方式(兩種都可以):

  • wrapper
  • wrap

Wrapper 兩種解釋:

第一種:

wrapper 代表最外層,包含網頁所有內容。

container

看到這張圖,你各位啊是不是想留言說我圖片放錯了!

wrapper1

其實要用一層一層結構來看上面這張圖,第一層是 <body>,下一層是 wrapper,兩者從結構來看其實是重疊的,因此通常會忽略。

那為什麼會需要多這一層 wrapper?

  1. 將網頁元素內容與 <body> 隔開。
  2. 將對全站樣式設置在 wrapper,避免污染到 <body>

上述兩點也有其它方法可以達到相同效果:

  1. <main> HTML 標籤,用來包含主要內容。
  2. EJS 樣板語言。

第二種:

wrapper 內層僅包含 個元素。

wrapper2

結構來看上面這張圖,wrapper 主要用來當作銜接 container 內層元素的街口。

這樣做的好處是?

  1. HTML 結構更清晰
  2. 語意化
  3. 好維護

我覺得有點像 BEM 連接詞的感覺,用來連接父容層器,使階層的關係一眼明瞭。

以上純屬個人言論,若有錯誤歡迎大家在下方留言,也歡迎想交流的都可以在下方留言。


示範

簡單用兩個範例介紹。

第一種範例:

  • <body> 需要設置的全站樣式,設置在 wrapper 上面。
<body>
  <div class="wrapper">
    <div class="container">
      container
    </div>
  </div>
</body>
.wrapper {
  padding: 40px 20px;
  line-height: 1.5;
}

.container {
  margin: 0 auto;
  max-width: 1000px;
  background: green;
  padding: 20px;
}

第二個範例:

  • wrapper 用來連接 container 內層元素。
<ul class="items-container">
  <li class="item-wrapper">
      <div class="item">...</div>
  </li>
  <li class="item-wrapper">
      <div class="item">...</div>
  </li>
  <li class="item-wrapper">
      <div class="item">...</div>
  </li>
  <li class="item-wrapper">
      <div class="item">...</div>
  </li>
  <li class="item-wrapper">
      <div class="item">...</div>
  </li>
</ul>

結論

沒有哪個更好,只有適不適合。

  • wrapper、container 終究是一種命名的方法,遵循對自己來說更順手、更好閱讀的方式使用即可。

參考文獻:


上一篇
第 9 集:RWD 響應式
下一篇
第 11 集:淺談 Sass
系列文
30 天轉生到 bootstrap 5 的意識界30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言