CSS布局技巧---实践记录 | 青训营

68 阅读3分钟

大家好,我是怒码少年小码。

CSS布局技巧是前端开发中非常重要的一部分,它能够帮助我们实现各种各样的页面布局。本文将汇总一些常见的CSS布局技巧,包括浮动、定位、弹性盒子布局等等,并提供它们的应用场景和实操实践的相关代码。

目录

  • 浮动布局(Float Layout)
  • 定位布局(Positioning Layout)
  • 弹性盒子布局(Flexbox Layout)
  • 网格布局(Grid Layout)
  • 多列布局(Multi-column Layout)
  • 表格布局(Table Layout)

详细讲解

浮动布局(Float Layout)

通过给元素设置浮动float属性,左浮动、右浮动。可以使元素脱离文档流并实现多列布局。常见的应用场景包括实现导航栏、图文混排等。

.navbar {
  float: left;
  width: 200px;
}
.content {
  float: right;
  width: calc(100% - 200px);
}

定位布局(Positioning Layout)

定位布局是通过设置元素的定位position属性来实现的,然后利用top,button,left,right来控制设置了定位布局距离顶部、底部、左边、右边多远。

常见的定位属性有相对定位(relative)、绝对定位(absolute)和固定定位(fixed)。我们常说的子绝父相就是用了这种布局方式。

相对定位相对于元素在文档流中的位置进行定位,绝对定位相对于最近的具有定位属性的父元素进行定位,固定定位相对于浏览器窗口进行定位。

.parent {
  position: relative;
}

.child {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

弹性盒子布局(Flexbox Layout)

它可以方便地实现灵活的盒子布局。通过设置容器的display属性为flex,可以将其内部的元素排列为一行或一列,并自动调整元素的大小和位置。

.container {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.item {
  flex: 1;
}

网格布局(Grid Layout)

它可以将页面划分为多个网格区域,并灵活地控制元素在网格中的位置和大小。通过设置容器的display属性为grid,可以定义网格的列和行。

.container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: auto;
  gap: 20px;
}

.item {
  grid-column: span 2;
  grid-row: 1;
}

多列布局(Multi-column Layout)

通过设置容器的column-count属性和column-gap属性,可以将内容分为指定数量的列,并控制列之间的间距。

应用场景:多列布局适用于需要将大段文本内容分为多列显示的情况,比如报纸、杂志等。

.container {
  column-count: 3;
  column-gap: 20px;
}

表格布局(Table Layout)

与前文提到的方式不同的是,表格布局是一种使用HTML表格元来实现的布局方式。 通过设置表格的各个单元格的宽度、高度和边距等属性,可以实现各种复杂的布局效果。

应用场景:表格布局适用于需要展示结构化数据的情况,比如数据报表、排行榜等。

<table>
  <tr>
    <td>单元格1</td>
    <td>单元格2</td>
  </tr>
  <tr>
    <td>单元格3</td>
    <td>单元格4</td>
  </tr>
</table>

注意,虽然表格布局在某些情况下可以方便地实现复杂的布局效果,但过度使用表格布局可能会导致语义化和可访问性方面的问题,因此在使用表格布局时需要谨慎考虑。

END

到这里就总结完毕了。说实话,篇幅有限,恐难道尽。详细内容请看MDN文档:

developer.mozilla.org/zh-CN/docs/…