全部学科
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 Flexbox是一种一维布局模型,它可以在一个方向上(行或列)排列子元素,适合处理组件级别的布局需求。

A

B

2

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

A

B

3

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

A

B

4

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

A

B

单选题
5

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

A

display: flexbox

B

display: flex

C

display: flexible

D

display: box-flex

6

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

A

固定像素值

B

百分比值

C

剩余空间的份数

D

视口宽度的百分比

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

使用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; }

10

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

A

100px

B

150px

C

200px

D

400px

11

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

A

left

B

right

C

center

D

none

12

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

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

创建固定3列的网格

B

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

C

创建每列200px的网格

D

创建无限列的网格

13

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

A

grid-spacing

B

gap

C

grid-margin

D

cell-padding

14

以下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

三行三列,每格独立

15

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

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

2列

B

3列

C

4列

D

不确定

16

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

A

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

B

父元素设置 overflow: hidden

C

父元素设置 display: inline-block

D

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

多选题
17

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

A

flex-grow

B

flex-shrink

C

flex-basis

D

flex-direction

18

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

A

left

B

right

C

both

D

none

19

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

A

static

B

relative

C

absolute

D

fixed

填空题
20

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

CSS
.container {
  display: flex;
  /* 主轴方向对齐 */
  ____________: center;
  /* 交叉轴方向对齐 */
  ____________: center;
  /* 主轴方向:水平排列 */
  flex-direction: row;
}
21

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

常见的触发方式包括:

  • overflow 值为 hidden 或 ____________
  • display 值为 flow-root 或 ____________ 或 grid
22

补全以下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%;
}
参考答案
1.正确 2.正确 3.正确 4.正确 5.B 6.C 7.C 8.B 9.B 10.C 11.C 12.B 13.B 14.B 15.B 16.C 17.A;B;C 18.A;B;C;D 19.C;D 20.justify-content;align-items 21.BFC;auto;flex 22.fixed;sticky;absolute
想在手机上练习这套专题?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一个专题 CSS容器查询
下一个专题 → CSS性能优化专题
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码