返回

CSS 深入浅出:盒子模型、选择器权重与布局技巧

前端

一探 CSS 盒子模型及相关属性

盒子模型

网页元素在 CSS 中被视为盒子,该盒子由以下部分组成:

  • 内容区域: 包含元素实际内容的区域。
  • 内边距: 内容区域周围的间距。
  • 边框: 围绕内边距的线。
  • 外边距: 围绕边框的间距。

box-sizing 属性

box-sizing 属性决定了元素的总宽度和总高度如何计算。它的值可以是:

  • content-box: 默认值。元素的总宽度和总高度由内容区域、内边距和边框组成,但外边距不包括在内。
  • border-box: 元素的总宽度和总高度由内容区域、内边距、边框和外边距组成。

通常,为了获得更可预测的布局,建议使用 border-box 值。

选择器的权重

CSS 选择器按权重排序,较高的权重会覆盖较低的权重。权重根据以下规则计算:

  • 内联样式: 1000
  • ID 选择器: 100
  • 类选择器、伪类选择器: 10
  • 标签选择器、属性选择器: 1

例如,一个 ID 选择器(权重为 100)可以覆盖一个类选择器(权重为 10)。

清除浮动

浮动元素会脱离文档流,导致后续元素在浮动元素下方而不是右侧。要清除浮动,可以使用以下方法:

  • clear:both; 添加到父元素,清除所有浮动元素。
  • overflow:hidden; 添加到父元素,迫使浮动元素退回文档流中。

盒子水平垂直居中

水平居中

  • text-align:center; 将文本居中。
  • margin:0 auto; 给元素添加左右外边距,使其在父元素中水平居中。

垂直居中

  • vertical-align:middle; 对于行内元素,将其垂直居中。
  • display:flex; 设置元素为 flexbox,垂直居中内容。
  • transform:translateY(-50%); 将元素向上移动 50% 高度。

参考资料

  1. Box Model
  2. CSS Selectors
  3. Clearing Floats
  4. Centering in CSS