← 已是第一轮 · 返回本次面经 · 第 1 轮 →
本轮要点: react 事件机制、React 生命周期、state 与 props
本轮共 13 道题。答案默认折叠,便于先自行作答。
1. 实现全屏水平垂直居中、宽高为屏幕宽度一半的正方形 题目要点 利用 vw 单位定义宽高,保证正方形且相对视口大小 Flexbox 和绝对定位 + transform 是常用居中方案 重置默认 margin 和设置容器高度保证布局准确 任选方案均可,Flexbox 代码简洁,绝对定位兼容性好 参考答案 一、考察点 掌握 CSS 布局基础知识
熟悉视口单位(vw、vh)的使用
理解水平垂直居中多种实现方式
了解盒模型和尺寸计算
二、参考答案 2.1 需求分析 元素宽度和高度为屏幕宽度的 50%(即 50vw)
元素是正方形,宽高相等
水平和垂直方向均居中显示
兼容主流现代浏览器
2.2 代码实现示例 方法一:使用 Flexbox <div class="container"> <div class="square"></div> </div> <style> html, body, .container { margin: 0; height: 100vh; display: flex; justify-content: center; /* 水平居中 */ align-items: center; /* 垂直居中 */ } .square { width: 50vw; height: 50vw; /* 保证正方形 */ background-color: #4CAF50; } </style> 方法二:使用绝对定位 + transform <div class="square"></div> <style> .square { position: absolute; top: 50%; left: 50%; width: 50vw; height: 50vw; background-color: #2196F3; transform: translate(-50%, -50%); } html, body { margin: 0; height: 100vh; } </style> 2.3 说明 50vw 表示视口宽度的一半 Flexbox 方案利用容器的弹性布局实现简单居中 绝对定位方案通过 top:50%, left:50% 定位中心点,再用 transform 修正偏移 两种方案均保证元素在视口中央且尺寸为屏幕宽度一半的正方形 三、常见误区或面试陷阱 忽略 viewport 单位,使用百分比 % 宽高导致高度受父元素限制 使用 margin: auto 只实现水平居中,未垂直居中 transform 偏移值写错方向或单位 未重置 html, body 的 margin 和高度,导致布局异常 2. 如何通过 padding-bottom 实现自适应正方形 题目要点 百分比 padding-bottom 是相对于元素宽度计算的 设置宽度,padding-bottom 等于宽度比例即可实现宽高比 纯 CSS 实现响应式正方形,无需 JS 计算 配合 position 及 transform 可实现内部内容居中 参考答案 一、考察点 理解 CSS 盒模型及百分比 padding 的计算规则
熟悉通过内边距(padding)比例实现自适应高度的布局技巧
掌握纯 CSS 无需固定高度实现宽高比控制的方法
了解响应式设计及视口适配相关概念
二、参考答案 2.1 核心原理说明 百分比 padding 的高度计算基于元素的宽度
例如,padding-bottom: 100% 表示内边距底部高度是元素自身宽度的 100%
利用这一特性,设置一个元素的宽度,然后用 padding-bottom 来控制高度,从而实现固定宽高比(正方形为 1:1)
这种方式不依赖固定高度或 JS,纯 CSS 实现响应式正方形 2.2 具体实现方式 <div class="square"></div> <style> .square { width: 50vw; /* 宽度为视口宽度的一半 */ padding-bottom: 50vw; /* 内边距底部为宽度的 100%,实现高度与宽度相等 */ background-color: #f60; position: relative; /* 便于放置绝对定位内容(如文字) */ } /* 如果需要内部内容绝对居中,可添加: */ .square > .content { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } </style> 2.3 使用场景 自适应正方形容器 图片或视频占位框 响应式卡片、图标区域布局 三、常见误区或面试陷阱 误以为 padding 百分比是基于高度计算(实际上是基于宽度) 忽略内容本身不占高度,需要通过 position: relative 和绝对定位解决内容布局 没有设置元素的 width,导致 padding 计算无意义 使用固定 height 反而破坏响应式效果 3. 若要求正方形内嵌图片保持比例且不拉伸,如何实现 题目要点 容器用 padding-bottom 创建自适应正方形 图片使用 object-fit: contain 保持比例且不拉伸 绝对定位图片居中显示,宽高100%填充容器 设置 overflow: hidden 避免溢出 参考答案 一、考察点 理解图片的默认渲染行为及尺寸适配
掌握 CSS 中图片等媒体对象的缩放控制属性(object-fit)
熟悉容器布局,确保图片在固定宽高正方形内自适应显示
了解响应式设计和兼容性考虑
二、参考答案 2.1 核心概念说明 图片默认行为:图片按原始宽高比显示,若强制设置宽高可能导致变形
object-fit 属性:用于控制替换元素(如 img、video)内容的填充方式
object-fit: contain 保持图片比例,完整显示,可能留空白
object-fit: cover 保持比例,填满容器,超出部分裁剪
结合容器尺寸和 object-fit 可灵活控制图片展示效果 2.2 具体实现示例 <div class="square"> <img src="your-image.jpg" alt="示例图片" /> </div> <style> .square { width: 50vw; padding-bottom: 50vw; /* 自适应正方形 */ position: relative; overflow: hidden; /* 防止图片溢出 */ } .square img { position: absolute; top: 50%; left: 50%; width: 100%; height: 100%; object-fit: contain; /* 保持比例且不拉伸 */ transform: translate(-50%, -50%); } </style> 2.3 说明 使用 padding-bottom 创建正方形容器 position: relative + position: absolute 定位图片,方便居中 图片宽高设为 100%,配合 object-fit: contain 保持原始比例且不被拉伸 overflow: hidden 防止图片超出容器边界显示 可根据需求改为 object-fit: cover 实现填充并裁剪效果 三、常见误区或面试陷阱 不设置 object-fit,直接用 width 和 height 100%,图片可能被拉伸变形 忽略容器定位,导致图片无法居中或布局错乱 未设置 overflow: hidden,图片溢出影响页面布局 误用 background-image 和 background-size,与 img 标签区别不清 4. 怎么理解回流跟重绘?什么场景下会触发? 题库原题:怎么理解回流跟重绘?什么场景下会触发?
...