第 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 终究是一种命名的方法,遵循对自己来说更顺手、更好阅读的方式使用即可。

参考文献:


<<:  Python 练习

>>:  [Day10 ] NAT Slipstreaming

谁温暖了资安部-29(完)

道南桥...我们顺着道南桥旁的河堤,往里走...景美溪的水声,让我跟Asuka的距离,又近了一些。 ...

Day 21 菜鸟的 helm 纪录 - 介绍篇

很早之前的Kubernetes介绍和之後的教学文章中,几乎都有用到Kubernetes这一专案,相信...

[Day 9]从零开始学习 JS 的连续-30 Days---物件

宣告变数的资料型别--物件 1.数值( Number ) 2.字串( String ) 3.布林值(...

Material UI in React [ Day 7 ] Inputs (Button Group & Floating action button) & Styles

今天会接续Button的部分做个总结。 Button Group ButtonGroup 组件可用於...

30-24 之从集中式架构到微服务的难点 - DDD 的诞生

前面几篇文章我们大部份都是在讨论 : 集中式架构如何的分层 但应该有不少人注意到,我们是专注在每一层...