一句话总结
CSS 布局是前端面试的必考项,核心考点:Flexbox(主轴交叉轴+flex:1等分)、BFC(独立渲染区域+清除浮动+防margin重叠)、响应式(媒体查询+移动优先+vw/rem)、居中方案(Flex/Grid/绝对定位三种万能方案)。
Flexbox布局
Q:Flexbox的核心概念和常用属性?
Flexbox是一维布局模型,分为主轴和交叉轴。
容器属性:flex-direction、justify-content、align-items、flex-wrap、gap
项目属性:flex-grow(放大比例)、flex-shrink(缩小比例)、flex-basis(初始大小)
flex简写:flex: 1 等价于 flex: 1 1 0%,表示等分剩余空间。
BFC块级格式化上下文
Q:什么是BFC?如何创建?有什么应用?
BFC(Block Formatting Context)是页面中一个独立的渲染区域,内部元素的布局不会影响外部。
创建BFC的条件:
1. overflow不为visible(如hidden、auto)
2. float不为none
3. position为absolute或fixed
4. display为inline-block、flex、grid等
应用场景:清除浮动、防止margin重叠、自适应两栏布局。
响应式设计
Q:实现响应式设计的方案有哪些?
1. 媒体查询:使用@media根据屏幕宽度设置不同样式。
2. 弹性布局:使用百分比、vw/vh、rem/em等相对单位。
3. 弹性图片:img { max-width: 100%; height: auto; }
4. 移动优先:先写移动端样式,通过min-width逐步增强。
常见断点:576px(手机)、768px(平板)、992px(小桌面)、1200px(大桌面)。
居中方案
Q:CSS居中有哪些方案?
水平居中:
1. 行内元素:text-align: center
2. 块级元素:margin: 0 auto
3. Flex:justify-content: center
垂直居中:
1. line-height等于height
2. Flex:align-items: center
3. 绝对定位 + transform: translateY(-50%)
水平垂直居中:
1. Flex:justify-content + align-items
2. Grid:place-items: center
3. 绝对定位 + transform: translate(-50%, -50%)