CSS 相关的面试题一般围绕基础知识、布局、性能优化、兼容性、深入原理等几个方向。以下是一些常见的面试题总结:
- CSS 基础知识
盒模型(Box Model)是什么?有哪些类型?
px、em、rem、vw、vh、% 的区别?
CSS 选择器的优先级规则是什么?如何提高/降低权重?
伪类(:hover、:nth-child())和伪元素(::before、::after)的区别?
visibility: hidden、display: none 和 opacity: 0 的区别?
- CSS 布局相关
Flex 布局有哪些常见属性?如何实现垂直水平居中?
Grid 布局的核心概念?与 Flex 的区别?
如何实现两栏、三栏布局?(圣杯布局、双飞翼布局)
position: relative、absolute、fixed 和 sticky 的区别?
BFC(Block Formatting Context,块级格式化上下文)是什么?作用是什么?
- CSS 动画与过渡
如何使用 CSS 实现动画效果?(transition 和 animation 的区别)
will-change 有什么作用?使用时有哪些注意事项?
如何优化 CSS 动画的性能?
- CSS 性能优化
如何减少 CSS 选择器的性能消耗?
为什么不建议使用 @import 引入 CSS?
如何利用 contain 提高渲染性能?
哪些 CSS 属性会触发回流(Reflow)和重绘(Repaint)?如何优化?
GPU 加速 是什么?如何开启?(transform: translateZ(0))
- CSS 兼容性 & 实践
CSS 如何实现 1px 像素的效果?
不同浏览器的 CSS 兼容性问题如何解决?(如 flex 在 Safari 的 min-height 处理)
如何实现响应式设计?(媒体查询、rem、vw/vh)
如何使用 CSS 预处理器(SASS/LESS)提升开发效率?
如何使用 CSS 变量(var())提高样式的可维护性?
- CSS 深入原理
为什么 margin 会发生塌陷?如何解决?
为什么 z-index 失效?如何解决?
CSS 如何实现字体抗锯齿优化?(font-smooth、-webkit-font-smoothing)
层叠上下文(Stacking Context)是如何形成的?如何影响 z-index?
如何自定义滚动条样式?(::-webkit-scrollbar)
这些题目涉及 CSS 的多个方面,适用于不同级别的前端开发者。你在面试时可以根据实际情况准备相应的回答和实践案例。
如果你想针对某些方向深入讲解或提供示例代码,我可以进一步补充。