CSS布局 | 青训营

131 阅读3分钟

1. Layout(布局)

1. 定义

CSS中的布局是指如何排列和定位元素以创建网页的结构和外观。

2. CSS盒子模型

  • Width(宽度):用于设置元素的宽度,可以使用绝对单位(像素、厘米等)或相对单位(百分比)。
  • Height(高度):用于设置元素的高度,同样可以使用绝对单位或相对单位。
  • Padding(内边距):控制元素内容与边框之间的空间,可以为上、右、下、左四个方向分别设置。
  • Border(边框):用于给元素添加边框,可以设置边框的样式、宽度和颜色。
  • Margin(外边距):控制元素与其他元素之间的间距,同样可以为不同方向设置不同的数值。
  • Overflow(溢出):当元素的内容超过其指定的尺寸时,可以通过设置overflow属性来控制内容的显示方式。
.box {
  width: 200px;
  height: 150px;
  padding: 10px;
  border: 1px solid #000000;
  margin: 10px;
  overflow: auto;
}

3. 块级和行级

在CSS中,元素可以分为块级元素和行级元素。

  • 块级元素:独占一行,可以设置宽度、高度、内外边距等属性,如 div 、p、h1、body、article、main、section、p、ul、li等。
  • 行级元素:不独占一行,不能设置宽度、高度等块级属性,如span、a、img、em、strong、cite、code等。

4. display属性

display属性用于指定元素应该以什么方式显示,常见的取值有:

  • block:将元素显示为块级元素。
  • inline:将元素显示为行级元素。
  • inline-block:同时具有行级元素和块级元素的特性。
  • none:隐藏元素,使其不可见。
.block-element {
  display: block;
}

.inline-element {
  display: inline;
}

.hidden-element {
  display: none;
}

2. 布局相关技术

1. 常规流 normal flow

常规流是默认的文档布局模型,在常规流中,元素按照其在HTML文档中出现的顺序依次排列。

  • 行级排版上下文:行级元素水平排列在一行上,如果空间不足,则会进行换行。
  • 块级排版上下文:块级元素独占一行,默认情况下,从上到下依次排列。
  • Table排版上下文:使用HTML表格标签创建的元素会形成一个表格布局,包括行和列。
  • Flex排版上下文:使用Flexbox模型可以创建灵活的布局,通过设置容器的display属性为flex,子元素可以方便地进行对齐和排序。
  • Grid排版上下文:使用CSS Grid可以实现复杂的二维布局,通过定义网格容器和子元素的布局规则来进行页面排版。

2. Float(浮动)

float属性可以让元素脱离常规流,向左或向右浮动。浮动元素会尽可能地靠近其包裹的父元素或其他浮动元素。

.floated-element {
  float: left;
}

3. Position(定位)

position属性用于控制元素的定位方式。

  • position: relative(相对定位):相对于元素正常位置进行定位,可以通过top、right、bottom、left属性调整位置。
.relative-element {
  position: relative;
  top: 10px;
  left: 20px;
}
  • position: absolute(绝对定位):相对于最近的已定位祖先元素(即position不为static的元素)进行定位,如果没有已定位的祖先元素,则相对于文档的body元素进行定位。
.absolute-element {
  position: absolute;
  top: 50px;
  right: 0;
}