知识篇 -- CSS布局

Ray Shine 2023/11/11 CSS布局

# Flexbox (弹性盒子)

Flexbox 是一种一维布局模型,用于在容器中对项目进行对齐、分布和排序。它非常适合构建组件内部的布局。

# Flex 容器属性 (作用于父元素)

  • display: flex;display: inline-flex;: 开启 Flex 布局。
  • flex-direction: 定义主轴的方向(row, row-reverse, column, column-reverse)。
  • flex-wrap: 定义 Flex 项目是否换行(nowrap, wrap, wrap-reverse)。
  • justify-content: 定义项目在主轴上的对齐方式(flex-start, flex-end, center, space-between, space-around, space-evenly)。
  • align-items: 定义项目在交叉轴上的对齐方式(flex-start, flex-end, center, baseline, stretch)。
  • align-content: 定义多行 Flex 项目在交叉轴上的对齐方式(flex-start, flex-end, center, space-between, space-around, stretch)。
  • gap, row-gap, column-gap: 定义 Flex 项目之间的间距。

# Flex 项目属性 (作用于子元素)

  • order: 定义项目的排列顺序。
  • flex-grow: 定义项目的放大比例。
  • flex-shrink: 定义项目的缩小比例。
  • flex-basis: 定义项目在分配多余空间之前的默认大小。
  • flex: flex-grow, flex-shrink, flex-basis 的简写。
  • align-self: 允许单个项目覆盖容器的 align-items 属性。

# CSS Grid (网格布局)

CSS Grid 是一种二维布局模型,用于将页面划分为行和列,非常适合构建整个页面的布局。

# Grid 容器属性 (作用于父元素)

  • display: grid;display: inline-grid;: 开启 Grid 布局。
  • grid-template-columns: 定义列的数量和大小。
  • grid-template-rows: 定义行的数量和大小。
  • grid-template-areas: 使用命名区域定义网格布局。
  • grid-gap, grid-row-gap, grid-column-gap: 定义网格线之间的间距。
  • justify-items: 定义网格项目在单元格内的水平对齐方式。
  • align-items: 定义网格项目在单元格内的垂直对齐方式。
  • justify-content: 定义整个网格在容器内的水平对齐方式。
  • align-content: 定义整个网格在容器内的垂直对齐方式。

# Grid 项目属性 (作用于子元素)

  • grid-column-start, grid-column-end, grid-row-start, grid-row-end: 定义项目在网格中的起始和结束位置。
  • grid-column, grid-row: startend 的简写。
  • grid-area: 使用命名区域放置项目。
  • justify-self: 允许单个项目覆盖容器的 justify-items 属性。
  • align-self: 允许单个项目覆盖容器的 align-items 属性。

# 响应式设计 (Responsive Design)

响应式设计是一种网页设计方法,旨在使网站在各种设备(从桌面显示器到手机)上都能良好地显示。

# 媒体查询 (Media Queries)

媒体查询允许根据设备的特性(如屏幕宽度、高度、方向等)应用不同的 CSS 样式。

/* 当屏幕宽度小于 768px 时应用 */
@media (max-width: 767px) {
    body {
        font-size: 14px;
    }
    .container {
        width: 100%;
    }
}

/* 当屏幕宽度在 768px 到 1024px 之间时应用 */
@media (min-width: 768px) and (max-width: 1024px) {
    body {
        font-size: 16px;
    }
    .container {
        width: 90%;
    }
}

/* 当屏幕宽度大于 1024px 时应用 */
@media (min-width: 1025px) {
    body {
        font-size: 18px;
    }
    .container {
        width: 80%;
    }
}

# 视口元标签 (Viewport Meta Tag)

在 HTML 的 <head> 中添加视口元标签,以确保页面在移动设备上正确缩放。

<meta name="viewport" content="width=device-width, initial-scale=1.0">
  • width=device-width: 将视口宽度设置为设备的屏幕宽度。
  • initial-scale=1.0: 设置页面的初始缩放比例为 1。

# 流式布局 (Fluid Layouts)

使用相对单位(如百分比、emremvwvh)而不是固定像素值来定义元素的宽度和高度,使布局能够根据屏幕大小进行伸缩。

# 移动优先 (Mobile-First)

一种响应式设计策略,首先为最小的屏幕(移动设备)设计和开发,然后逐步为更大的屏幕(平板电脑、桌面)添加样式。这种方法有助于确保移动用户获得最佳体验,并优化性能。

最后更新时间: 2025/11/20 22:59:30
ON THIS PAGE