ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

前端面试手册 CSS 篇:高频面试题逐题解析与参考答案(front-end-interview-handbook)

2026/9/10 10:29:10 拓冰建站 浏览量
前端面试手册 CSS 篇:高频面试题逐题解析与参考答案(front-end-interview-handbook) 前端面试手册 CSS 篇高频面试题逐题解析与参考答案front-end-interview-handbook【免费下载链接】front-end-interview-handbookFront End interview preparation materials for busy engineers (updated for 2026)项目地址: https://gitcode.com/GitHub_Trending/fr/front-end-interview-handbookCSS 是前端面试中的必考模块覆盖面从选择器优先级、盒模型、浮动清除到层叠上下文、定位体系与响应式策略几乎每一轮技术面都会抽中其中若干题。本文以 front-end-interview-handbook 仓库中 website/i18n/zh-CN/docusaurus-plugin-content-docs/current/css-questions.md 的中文版 CSS 面试问题参考答案为骨架逐题梳理标准作答、原理推导与易错点并对照仓库 packages/quiz 中与每题一一对应的练习题目含英文原文、中文翻译与题目元数据做纵深印证。读完本文你既能按题背诵出可直接用于面试的完整答案也能理解题目背后的渲染机制从而灵活应对追问与变体。这套题目源自业界广为流传的 Front-end Developer Interview Questions 中的 CSS 部分中文版在仓库内由志愿者与自动翻译流程持续维护。每道题在 quiz 包 中都对应一个独立的questions/slug/目录其中en-US.mdx保存英文权威原文、zh-CN.mdx保存中文译文、en-US.langnostic.json记录双语逐段哈希对齐状态如 describe-floats-and-how-they-work/en-US.langnostic.json而 metadata.json 则给出importance重要度、difficulty难度、duration建议作答分钟数、featured/ranking是否精选置顶等标记方便你按星级优先准备。选择器优先级Specificity是如何计算的浏览器在决定同一条规则最终展示哪种样式时依靠的就是 CSS 优先级。优先级从 4 个维度记作a, b, c, d衡量a是否使用了内联样式inline style用了则为 1否则为 0bID 选择器的数量c类选择器、属性选择器、伪类选择器的数量之和d标签类型选择器与伪元素选择器的数量之和。关键误区在于优先级不是把这四维算成一个加权总分而是四个值按列独立比较。权重从左到右依次递减比较时从左往右逐列进行一旦某列分出胜负即可停止。因此只要b列不同后面的c、d再大也无济于事——0,1,0,0一个 ID永远高于0,0,10,10十个类加十个类型。当两条规则优先级完全相同时源码顺序中靠后出现的那条胜出。无论规则写在同一个样式表内部还是分布在多个样式文件中都是文件越靠下越晚加载优先级越高。一份好的作答还会补充两个层次!important 内联样式 选择器优先级这是**级联cascade**的整体顺序优先级只是其中一环工程上建议刻意使用低优先级的写法让样式容易被覆盖。这一点对 UI 组件库尤其重要使用者不应被迫编写复杂的嵌套选择器或依赖!important才能定制组件外观。对应练习见 what-is-css-selector-specificity-and-how-does-it-work其metadata.json标记为 CSS 高频主题。重置Reset与标准化Normalize两种思路的取舍重置Resetting把所有浏览器默认样式抹平。页面上每个元素的margin、padding、font-size等都被统一到同一起点之后你必须为各类元素重新定义样式。标准化Normalizing不去除全部默认样式而是保留其中仍然有用的部分同时修正浏览器实现中的一些常见 bug让默认样式在跨浏览器下趋于一致。作答要点如果要做高度个性化的网页设计因为几乎每个元素都要自定义样式默认样式帮不上忙此时选Reset更省事如果希望保留合理默认、修掉不一致选 Normalize。可进一步追问区分Normalize.css 还会统一 HTML5 元素在不同浏览器中的display行为、修正表单控件字体不继承等细节而 Reset 不关心这些。参考 whats-the-difference-between-resetting-and-normalizing-css-which-would-you-choose-and-why。Float 定位的工作原理与清除浮动浮动float是一种 CSS 定位属性。浮动元素会从网页的正常文档流中部分脱离它不再占据普通流布局的空间却仍保持一定的流动性会影响周围元素的定位——典型表现是文字环绕浮动元素。这与绝对定位不同绝对定位元素是完全脱离文档流的。与之配套的clear属性接受left、right、both作用是把应用了该属性的元素向下推到浮动元素下方清除其上方浮动的影响。一个极易被追问的经典场景如果父元素里只包含浮动子元素父元素高度会塌缩为 0。修复手段是在最后一个浮动子元素之后、父元素闭合标签之前的位置清除浮动。做法包括添加一个空的div styleclear: both;/div会引入无语义的空标签给父元素设置overflow: auto/overflow: hidden这会让子元素形成块格式化上下文BFC父元素随之扩张以包住所有子元素clearfix hack给父元素追加一个.clearfix类利用伪元素在末尾插入一个不可见的块级占位来清除浮动.clearfix::after { content: ; visibility: hidden; display: block; height: 0; clear: both; }对比上文中文版参考答案中使用的精简写法.clearfix::after { content: ; display: block; clear: both; }两者效果等价差异在于是否显式设置visibility: hidden与height: 0来消除占位元素可能带来的空隙。仓库中 describe-floats-and-how-they-work/en-US.mdx 对该题做了完整展开其metadata.json给出importance: medium、difficulty: medium的适中评级。该题还值得补充一句历史背景Bootstrap 2 时代的栅格系统就是靠float实现的而 Flexbox 与 Grid 普及后float已不再是布局首选仅用于文字环绕等少量场景。清除浮动技术的横向对比空 div、clearfix、overflow 三选一见 what-are-the-various-clearing-techniques-and-which-is-appropriate-for-what-context。z-index 与层叠上下文Stacking Contextz-index控制重叠元素在垂直方向面向观察者的 z 轴的叠放顺序且只对position非static的元素生效。基础规则未设置z-index时元素按 DOM 中的出现顺序堆叠越靠后越靠上非静态定位的元素及其子元素永远盖在静态定位元素之上与 HTML 层级无关。进阶要点是层叠上下文层叠上下文是一组参与层叠的图层的容器。在其内部子元素的z-index是相对该上下文解释的而不是相对 document root每个层叠上下文与其兄弟完全独立若元素 B 盖在元素 A 上那么 A 的任何后代 C 即使z-index更高也不可能盖到 B 之上每个层叠上下文是自包含的内容层叠完成后整个上下文作为一个整体再参与父级上下文中的排序少量 CSS 属性会触发新层叠上下文的创建opacity小于 1、filter非none、transform非none此外position: fixed、部分position: absolute/relative配合z-index等也会触发。这正是实际开发中明明 z-index 设得很大却被压住的最常见原因——它被关进了某个祖先的层叠上下文里。详见 describe-z-index-and-how-stacking-context-is-formed该题在metadata.json中被标记为difficulty: hard属于需要理解上下文嵌套关系的高难度题值得重点演练。块格式化上下文BFC及其工作原理块格式化上下文Block Formatting Context, BFC是 Web 页面可视化 CSS 渲染的一部分它是块级盒进行布局的独立区域也是浮动元素与其他元素交互的区域。以下任一条件即可创建一个 BFCfloat的值不是noneposition的值不是static或relativedisplay的值为table-cell、table-caption、inline-block、flex或inline-flexoverflow的值不是visible。BFC 内还有两条重要的布局特性BFC 内每个盒的左外边缘与包含块的左边缘相接相邻块级盒的垂直外边距会发生合并margin collapsing。工程上 BFC 的三大用途刚好串起前几题用overflow: hidden包住浮动子元素以修复父元素塌缩、隔离外边距合并、防止元素被浮动兄弟覆盖。仓库配套题 describe-block-formatting-context-bfc-and-how-it-works 收录了该题的完整英文原文与中文译文。不同清除浮动技术各自的适用场景空 div 方法在浮动容器末尾插入div styleclear: both;/div。简单直白但引入了无语义的空标签适合快速修复、对语义要求不高的场景Clearfix 方法如上文定义.clearfix类并在需要处追加该类。大型项目中的首选因为只需在 HTML 上加类名CSS 集中管理、可复用overflow: auto/overflow: hidden方法给父元素设置 overflow形成 BFC 来包住浮动内容。要注意它的副作用——当子元素高度超过父元素时多余部分会被裁切或出现滚动条可能导致内容显示不完整因此要评估使用前提。CSS 精灵图CSS Sprites是什么、如何实现精灵图Sprite也戏称雪碧图源自碳酸饮料 Sprite 的英文名是把多张小图合并到一张大图上统一输出的技术在大量使用小图标的网站上非常普遍。实现三步走用生成器把多张图片打包为一张精灵图并同步生成对应的 CSS每张小图对应一个 CSS 类该类定义background-image、background-position与background-size把背景定位到该小图在大图中的坐标使用时给元素加上对应类即可。它的收益减少 HTTP 请求多张图只需一次请求不过在 HTTP/2 下多请求不再是瓶颈提前加载资源避免:hover等用到时才下载导致的图片闪烁。本题对应 explain-css-sprites-and-how-you-would-implement-them-on-a-page-or-site建议顺带提及现代替代方案iconfont、内联 SVG、srcset/picture等以展示视野。跨浏览器样式兼容性如何解决定位到问题与目标浏览器后为特定浏览器单独加载一份样式表往往需要服务端判断 UA配合条件加载直接使用已经处理过兼容性的成熟库例如 Bootstrap使用autoprefixer这类工具自动为属性补齐厂商前缀引入 Reset CSS 或 Normalize.css 统一不同浏览器默认样式差异。为功能受限浏览器提供页面优雅降级与渐进式增强优雅降级Graceful Degradation面向现代浏览器构建应用同时保证其在旧浏览器中仍能基本运行体验随能力下降而适度降级渐进式增强Progressive Enhancement以基础可用体验为底线构建当浏览器支持某特性时再逐层叠加增强能力是向上的思路用 caniuse.com 之类的数据源检查特性支持情况使用autoprefixer自动补全属性前缀使用 Modernizr 之类的特性检测库feature detection判断是否加载 polyfill 或增强代码。配套题见 how-do-you-serve-your-pages-for-feature-constrained-browsers-what-techniques-processes-do-you-use相关概念辨析feature detection 与 feature inference、UA string 的差别可参考 whats-the-difference-between-feature-detection-feature-inference-and-using-the-ua-string。隐藏内容并仅供屏幕阅读器访问a11y这些方法与可访问性a11y紧密相关。参考答案给出的手段包括width: 0; height: 0元素不占用任何屏幕空间自然不可见position: absolute; left: -99999px把元素移到屏幕之外text-indent: -9999px只适用于block元素内的文本Metadata如 Schema.org、RDF、JSON-LD 等结构化数据WAI-ARIAW3C 制定的增强网页可访问性规范是正统方案。作答建议虽然 WAI-ARIA 是理想方案但实践中绝对定位移出屏幕的方法注意事项最少、对多数元素通用且实现简单因此常被优先采用。补充现代实践中还有clip-path/ 经典.sr-only类配合position: absolute; width/height: 1px; overflow: hidden; clip: rect(0 0 0 0)等视觉隐藏技术见 what-are-the-different-ways-to-visually-hide-content-and-make-it-available-only-for-screen-readers。栅格系统、媒体查询与移动优先栅格系统偏好经典答案是float-based 栅格理由是其浏览器支持面比 flex/grid 更广且已被 Bootstrap 多年生产环境验证。结合前文可以补充——现代回答通常已转向 Flexbox/Grid见 have-you-ever-used-a-grid-system-and-if-so-what-do-you-prefer。媒体查询使用经验典型例子是根据窗口尺寸切换导航样式例如窄屏收起为汉堡菜单、宽屏展开为水平导航。移动优先Mobile-first策略与响应式的区别请见下文的专项比较。SVG 的着色技巧SVG 可以用三种方式引入样式内联 CSS、嵌入式style或外部 CSS 文件也可在对象上直接设置属性。网上多数 SVG 采用内联 CSS但三种方式各有优劣。基本着色通过fill与stroke完成fill设置图形内部填充颜色stroke设置图形外围描边线条颜色颜色取值复用 HTML 中 CSS 颜色命名方案颜色名如red、RGB 值如rgb(255,0,0)、十六进制、RGBA 等。示例rect x10 y10 width100 height100 strokeblue fillpurple fill-opacity0.5 stroke-opacity0.8 /fill-opacity与stroke-opacity可单独控制填充与描边的透明度。配套题见 are-you-familiar-with-styling-svg。media 的媒体类型不止 screen除screen彩色电脑屏幕外常用的媒体类型all适用于所有设备print为打印输出适配样式需要结合 paged media分页媒体考虑页面尺寸与分页避免网页尺寸与纸张不匹配speech面向语音合成器解析。注意 CSS2 时代已有相似类型auralspeech是其后继者。补充扩展面试加分项现代 CSS 更常讨论媒体特性而非媒体类型如(min-width: 600px)、(prefers-color-scheme: dark)、(hover: hover)、(prefers-reduced-motion: reduce)等见 can-you-give-an-example-of-an-media-property-other-than-screen。编写高效 CSS从选择器匹配到渲染管线浏览器从最右边的选择器关键选择器key selector开始向左匹配先用关键选择器从 DOM 中筛出候选元素再向上遍历候选元素的父元素逐级验证整条链是否命中。由此得出性能原则匹配链越短匹配越快避免把标签选择器与通用选择器*当作关键选择器——它们会命中海量元素迫使浏览器为每个候选元素向上遍历大量祖先工作量极大。命名方法论上BEMBlock Element Modifier主张为独立 CSS 类命名、把层级关系编码进命名中如.card__title、.card--active这天然让选择器保持扁平高效且易于覆盖。另一层面是渲染管线意识要分清哪些属性触发重排reflow/layout、哪些触发重绘repaint/paint、哪些只触发合成compositing写样式时尽量避免触碰重排重绘开销大的属性。参考题库 what-are-some-of-the-gotchas-for-writing-efficient-css 与 explain-how-a-browser-determines-what-elements-match-a-css-selector。后者常以p span为例浏览器先找所有span再逐个向上找p一旦命中即停止因此选择器越长最坏开销越大。CSS 预处理器的优缺点优点提高 CSS 可维护性便于编写嵌套选择器引入变量与主题能力可在不同项目间共享主题文件通过**混合Mixins**复用重复 CSS 段落支持把代码拆分为多个文件——原生 CSS 虽也能拆文件但每个文件都要建立一次 HTTP 请求预处理器可先合并再产出。缺点需要引入额外的预处理工具与构建步骤重新编译可能较慢项目越大越明显。关于具体预处理器的个人评价喜欢的点上述优点大多成立Less 由 JavaScript 实现与 Node.js 生态结合紧密。不喜欢的点通过node-sass使用 Sass 时它底层是 C 实现的 LibSass 绑定切换 Node 版本时常需重新编译体验糟糕这也是 dart-sass 逐渐替代 node-sass 的历史动因Less 变量名以为前缀容易与 CSS 关键字混淆例如media、import、font-face中都有新手极易误读。对应题目为 describe-what-you-like-and-dislike-about-the-css-preprocessors-you-have-used 与 what-are-the-advantages-disadvantages-of-using-css-preprocessors。使用非标准字体font-face使用font-face注册自定义字体并为不同的font-weight分别声明对应的font-family从而让浏览器在加粗/常规字重之间正确切换避免粗体被浏览器强行伪加粗。示例骨架font-face { font-family: MyFont; src: url(MyFont-Regular.woff2) format(woff2); font-weight: 400; } font-face { font-family: MyFont; src: url(MyFont-Bold.woff2) format(woff2); font-weight: 700; }浏览器如何把元素与选择器匹配此机制前文已述自右向左、自底向上。对p span而言浏览器先取全部span再向上遍历其祖先直至根元素寻找p只要发现某个祖先匹配即判定该span命中并停止遍历。理解这一点同时回答了为什么选择器写得越长越慢与为什么 key selector 要尽量精确两个问题。伪元素Pseudo-elements及其用途伪元素是附加在选择器上的关键字用于选取元素的特定部分既可以做装饰:first-line、:first-letter也可以与content配合在标记中插入内容而无需改动 HTML:before、:after。典型场景:first-line、:first-letter用于修饰首行 / 首字母排版.clearfix正是借::afterclear: both插入一个不占空间的清浮元素用::before/::after绘制提示气泡的三角箭头——三角形被视为样式的一部分而非真实 DOM若不借助伪元素仅靠 CSS 而不用额外 HTML 很难绘出。该题强调关注点分离理念详见 describe-pseudo-elements-and-discuss-what-they-are-used-for。盒模型Box Model与 box-sizingCSS 盒模型把文档树中的每个元素描述为按排版模式布局的矩形框内容区content 可选的 padding、border、margin。盒模型负责决定块级元素占用空间、边框/边距合并行为与盒子尺寸。核心规则块级元素尺寸由width、height、padding、border、margin共同决定未指定height时块级元素高度 内容高度 上下padding浮动场景除外未指定width时非浮动块级元素宽度 父元素宽度 − 父元素paddingheight/width默认按内容区计算默认padding与border不计入width/height。由此引出必考题* { box-sizing: border-box; }的效果默认content-box下宽高只约束内容区padding/border会额外撑大盒子border-box改变计算方式把border与padding纳入声明的宽高之内内容区相应收缩height 内容高 垂直方向padding 垂直方向borderwidth 内容宽 水平方向padding 水平方向border。margin在两种取值下都不参与宽高计算。仓库配套题 explain-your-understanding-of-the-box-model-and-how-you-would-tell-the-browser-in-css-to-render-your-layout-in-different-box-models 与该题配套出现其中 box-sizing 题的 mdx 附有 content-box 与 border-box 的换算示例、属性对照表与三栏 33.33% padding 不溢出容器的实践演示metadata.json将其标记为importance: high、featured: true且ranking: 1——在全部 CSS 题中优先级最高。display 的取值体系display的经典取值包括none、block、inline、inline-block、table、table-row、table-cell、list-item现代扩展还有flex、inline-flex、grid、inline-grid等。中文本对应条目在参考答案中标注为 TODO 待补全英文题库中对应题为 what-is-the-css-display-property-and-can-you-give-a-few-examples-of-its-use可对照阅读。inline、inline-block 与 block 的对比blockinline-blockinline大小填满父容器宽度取决于内容取决于内容定位从新行开始旁边不允许其他元素float 除外与其他内容同行流动旁边允许其他元素与其他内容同行流动旁边允许其他元素能否设width/height能能不能设置会被忽略能否用vertical-align不能能能margin/padding四个方向都生效四个方向都生效仅水平方向生效垂直方向被忽略border/padding虽围绕内容但垂直空间由line-height决定浮动float——浮动后表现如block可设垂直 margin/padding对应练习 whats-the-difference-between-inline-and-inline-block。positionstatic / relative / absolute / fixed / sticky定位元素的position取值必然落在relative、absolute、fixed、sticky加上默认static之中static默认值。元素按常规文档流布局此时top、right、bottom、left、z-index全部无效。relative元素先按未定位时的位置摆放再在不改变页面布局的前提下偏移——它原来占据的空间会被保留留白不挤压其他元素。absolute不为元素预留空间以最近的非 static 定位祖先为基准确定偏移。绝对定位元素的外边距margins不会与其他边距合并。fixed不为元素预留空间以**屏幕视口viewport**为基准定位滚动时位置不变打印时出现在每一页的固定位置。fixed会创建新的层叠上下文当祖先存在非none的transform时其包含块会从视口变为该祖先这是一个高频陷阱。sticky盒子先按正常流计算位置因此它仍然占据文档流空间不影响后续元素随后相对其所在 flow rootBFC与 containing block最近的块级祖先进行黏性定位即便元素是table其定位也不影响后续元素且position: sticky作用于table元素时效果等同position: relative。本题对应 whats-the-difference-between-a-relative-fixed-absolute-and-statically-positioned-element建议顺带口头演示一个absolute 参照物例子以证明理解。对主流 CSS 框架的评价与改进建议Bootstrap更新周期慢Bootstrap 4 在 alpha 停留近两年可改进点是补充页面中广泛需要的微调按钮spinner类组件。Semantic UI源码结构使自定义主题难以理解非传统的主题系统使用体验差外部库路径需要硬编码配置变量重赋值设计不如 Bootstrap 清晰。Bulma需要大量非语义的类与多余标记不向后兼容升级会破坏既有应用。该题答案带较强时效性作答时应说明基于当时版本的实际体验。完整题目见 what-existing-css-frameworks-have-you-used-locally-or-in-production-how-would-you-changeimprove-them。Flexbox 与 Grid 的定位差异Flexbox 面向一维布局单行或单列解决了很多常见痛点容器内垂直居中、粘性页脚等。Bootstrap 与 Bulma 新版正是基于 Flexbox 构建它是当前创建常规布局的推荐方式。可能遇到的坑早期在 Safari 上使用flex-grow有兼容问题曾被逼用inline-block 手动计算百分比宽度重写。Grid 面向二维布局基于栅格创建布局是最直观的方式但作答当时浏览器支持仍不广泛面试中可注明这已是历史判断如今 Grid 已获全面支持。见 have-you-played-around-with-the-new-css-flexbox-or-grid-specs。响应式Responsive与移动优先Mobile-first的区别两种策略并不互斥。响应式指网站依据屏幕尺寸自动调整元素尺寸与功能通常借助媒体查询以视口宽度为断点。常规写法先桌面后移动media (min-width: 601px) { .my-class { font-size: 24px; } } media (max-width: 600px) { .my-class { font-size: 12px; } }移动优先同样是响应式但顺序相反默认先编写移动端样式再通过媒体查询为更大屏增量覆盖即只写min-width断点且基础样式即移动样式无需任何媒体查询包裹.my-class { font-size: 12px; } media (min-width: 600px) { .my-class { font-size: 24px; } }移动优先的两大优势移动端性能更好基础规则免于逐条命中媒体查询的判定开销强制编写更干净的响应式 CSS渐进增加而非反复覆盖。本题对应 can-you-explain-the-difference-between-coding-a-website-to-be-responsive-versus-using-a-mobile-first-strategy。响应式设计 vs 自适应设计两者都以提升不同设备上的体验为目标针对视窗大小、分辨率、使用环境与控制方式进行优化。区别在于哲学响应式设计依靠同一份代码适应所有设备通过媒体查询、自适应栅格与响应式图片让网站随多种因素连续变化——如同一个球通过膨胀收缩去适应不同大小的篮圈自适应设计更像渐进式增强的现代解释预先定义好若干套视窗尺寸/布局通过检测设备与特征从中选出最合适的一套含功能取舍——如同准备多个球根据不同篮圈挑最合适的一个。仓库配套题 how-is-responsive-design-different-from-adaptive-design 完整收录此题。追问中常见既然选择自适应何时用响应式可从多套维护成本 vs 连续平滑体验的角度展开。Retina 高分屏图片偏好方案直接使用两倍显示尺寸的高分辨率图2x 图更好的做法借助媒体查询判断像素比并切换background-image例如media only screen and (min-device-pixel-ratio: 2) { ... }图标类资源尽量用SVG 与 iconfont在任何分辨率下都清晰锐利也可在运行时检查window.devicePixelRatio用 JavaScript 把img的src换成更高分辨率版本。补充现代方案srcset/sizes让浏览器按实际 DPR 选择资源相关题目见 why-you-would-use-a-srcset-attribute-in-an-image-tag本题为 have-you-ever-worked-with-retina-graphics-if-so-when-and-what-techniques-did-you-use。动画用 translate() 还是绝对定位translate()是transform的一个取值。改变transform或opacity不会触发重排reflow或重绘repaint只触发合成compositingtransform还能让浏览器为元素创建独立的 GPU 图层从而把合成工作交给 GPU。而改变绝对定位的top/left会触发重排进而级联触发重绘与合成走的是 CPU 布局管线。因此translate()更高效能显著缩短平滑动画的绘制时间。另一个重要差异使用translate()时元素仍占据其原始空间行为类似position: relative而改变绝对定位则完全不留占位。本题出自 is-there-any-reason-youd-want-to-use-translate-instead-of-absolute-positioning-or-vice-versa-and-why。如何系统性使用本仓库备考按题自测先读 中文版 CSS 问答 或仓库根 questions/css-questions.md 的题目列表在不看答案的情况下口头作答对照核对本文及 website/contents/css-questions.md 提供了完整参考答案逐题深挖每个主题在 packages/quiz/questions 下有独立目录*.mdx同时保存中英双语与扩展内容如 box-sizing 题的换算演示、clearfix 的完整写法metadata.json的importance/difficulty/featured帮助你判断优先级——建议从featured/ranking靠前与importance: high的题如* { box-sizing: border-box; }开始押题复盘z-index与层叠上下文difficulty: hard、BFC、优先级比较0,1,0,0vs0,0,10,10、position五兄弟、translate vs 绝对定位属于最容易出追问的高价值题目建议做口头完整演练。CSS 面试回答的通用加分技巧在于概念 原理 实践取舍三段式先说清定义再解释底层机制如自右向左匹配、合成 vs 重排最后落到工程决策何时用 clearfix、为何 UI 库要保持低优先级、为何移动优先性能更好。把本手册各题吃透后面对追问与变体也能从容迁移作答。【免费下载链接】front-end-interview-handbookFront End interview preparation materials for busy engineers (updated for 2026)项目地址: https://gitcode.com/GitHub_Trending/fr/front-end-interview-handbook创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考