全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📝 1 篇文章 21 道配套习题

CSS布局专题

专题说明

CSS布局是网页开发的核心技能。本专题系统讲解浮动、定位、Flexbox和Grid四大布局技术,从传统方法到现代方案,帮助学习者全面掌握页面布局能力。

学习目标

  1. 理解浮动布局原理及清除浮动方法
  2. 掌握CSS定位机制与层叠上下文
  3. 熟练使用Flexbox实现一维弹性布局
  4. 掌握Grid二维网格布局的核心属性

学习内容

本专题涵盖四大布局模块:

  • 浮动布局:float属性、清除浮动、BFC原理
  • 定位机制:position属性、z-index、层叠上下文
  • Flexbox布局:容器属性、子元素属性、对齐方式
  • Grid布局:轨道定义、区域命名、响应式网格

学习建议

  1. 先理解传统浮动和定位,再学习现代Flexbox和Grid
  2. 每个模块学完后完成对应练习题巩固
  3. 实际项目中优先使用Flexbox和Grid,浮动仅用于文字环绕场景
  4. 注意对比不同布局方式的适用场景

📝 发现内容有误?点击此处直接编辑

📝 配套习题(22 题)

1
判断题

CSS中的浮动(float)属性最初设计用于实现文字环绕图片效果,浮动元素会脱离正常文档流,但仍会影响周围行内元素的布局。

A

B

2
单选题

以下哪个不是CSS中float属性的有效值?

A

left

B

right

C

center

D

none

3
单选题

以下哪种方式不是清除浮动的有效方法?

A

在浮动元素后添加空元素并设置 clear: both

B

父元素设置 overflow: hidden

C

父元素设置 display: inline-block

D

使用伪元素 ::after 并设置 clear: both

4
多选题

以下哪些是CSS中clear属性的有效值?

A

left

B

right

C

both

D

none

5
填空题

当父元素只包含浮动子元素时,父元素的高度会塌陷为0。这是因为浮动元素脱离了正常文档流。解决方法之一是让父元素创建 ______(块级格式化上下文)。

常见的触发方式包括:

  • overflow 值为 hidden 或 ______
  • display 值为 flow-root 或 ______ 或 grid
6
判断题

CSS中的position属性用于控制元素的定位方式,默认值是static,表示元素按照正常文档流进行布局。

A

B

7
单选题

以下关于CSS定位的说法,哪个是正确的?

A

relative定位的元素相对于视口进行偏移

B

absolute定位的元素相对于body元素进行定位

C

absolute定位的元素相对于最近的非static定位祖先元素定位

D

fixed定位的元素相对于其父元素定位

8
单选题

关于CSS的z-index属性,以下说法正确的是?

A

z-index对所有元素都有效

B

z-index的值越大,元素越靠近用户

C

z-index只能设置为正整数

D

z-index不需要position属性就能生效

9
多选题

以下哪些position值会使元素脱离正常文档流?

A

static

B

relative

C

absolute

D

fixed

10
填空题

补全以下CSS定位代码:

CSS
/* 固定定位 - 元素固定在视口指定位置 */
.fixed-box {
  position: !!1_fixed!!;
  top: 20px;
  right: 20px;
}

/* 粘性定位 - 滚动时切换定位方式 */
.sticky-header {
  position: !!2_sticky!!;
  top: 0;
}

/* 绝对定位 - 相对于定位祖先 */
.absolute-box {
  position: !!3_absolute!!;
  top: 50%;
  left: 50%;
}
11
判断题

CSS Flexbox是一种一维布局模型,它可以在一个方向上(行或列)排列子元素,适合处理组件级别的布局需求。

A

B

12
单选题

在CSS中,以下哪个属性值可以将容器设置为Flex布局?

A

display: flexbox

B

display: flex

C

display: flexible

D

display: box-flex

13
单选题

Flex容器中有三个子元素,分别设置flex-grow为1、2、1,容器剩余空间为400px,请问第二个子元素会增加多少宽度?

A

100px

B

150px

C

200px

D

400px

14
多选题

CSS的flex简写属性可以一次性设置哪些属性?

A

flex-grow

B

flex-shrink

C

flex-basis

D

flex-direction

15
填空题

在Flex布局中,主轴和交叉轴的对齐由不同属性控制:

CSS
.container {
  display: flex;
  /* 主轴方向对齐 */
  _______________: center;
  /* 交叉轴方向对齐 */
  ___________: center;
  /* 主轴方向:水平排列 */
  flex-direction: row;
}
16
判断题

CSS Grid布局是一种二维布局模型,可以同时控制行和列两个方向的元素排列,非常适合用于页面整体布局和复杂网格设计。

A

B

17
单选题

以下CSS代码创建了几列的Grid布局?

CSS
.container {
  display: grid;
  grid-template-columns: 100px 200px 100px;
}
A

2列

B

3列

C

4列

D

不确定

18
单选题

在CSS Grid布局中,fr单位表示什么?

A

固定像素值

B

百分比值

C

剩余空间的份数

D

视口宽度的百分比

19
单选题

以下Grid代码实现的是什么布局?

CSS
.container {
  display: grid;
  grid-template-areas:
    "header header header"
    "sidebar main main"
    "footer footer footer";
}
A

一行三列布局

B

三行三列,header跨3列,main跨2列,footer跨3列

C

随机布局

D

三行三列,每格独立

20
单选题

以下哪个CSS属性用于设置Grid子元素之间的间距?

A

grid-spacing

B

gap

C

grid-margin

D

cell-padding

21
单选题

以下Grid代码实现什么效果?

CSS
.container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}
A

创建固定3列的网格

B

创建自适应列数的响应式网格,列宽最小200px,最大平分剩余空间

C

创建每列200px的网格

D

创建无限列的网格

22
单选题

使用Flexbox替代浮动布局实现三列布局时,以下哪个CSS代码可以实现"左列固定宽度200px,右列固定宽度150px,中间列自适应"的效果?

A

css .container { display: flex; } .left { flex: 200px; } .center { flex: 1; } .right { flex: 150px; }

B

css .container { display: flex; } .left { width: 200px; } .center { flex: 1; } .right { width: 150px; }

C

css .container { display: flex; } .left { flex-grow: 200px; } .center { flex-grow: 1; } .right { flex-grow: 150px; }

D

css .container { display: flex; } .left { flex-basis: 200px; flex-grow: 0; } .center { flex-basis: 0; flex-grow: 1; } .right { flex-basis: 150px; flex-grow: 0; }

← 上一个专题 CSS容器查询
下一个专题 → CSS性能优化专题

📝 发现内容有误?点击此处直接编辑

想查看更多习题和详细解析?
小程序提供完整的题库和详细解析

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库