前端面试必备:CSS特性、PostCSS与重绘重排解析
需积分: 5 9 浏览量
更新于2024-08-05
收藏 28KB MD 举报
"这是一份面试题总结,涵盖了CSS、PostCSS和页面渲染优化的相关知识点。"
### CSS 知识点
1. **行内元素与块级元素的区别**
- **块级元素**(如`div`, `p`, `h1`等)占据整行空间,宽度默认填充其父元素宽度,可以设置`width`和`height`,并应用`margin`和`padding`。
- **行内元素**(如`span`, `a`, `em`等)不独占一行,相邻的行内元素会并排显示,宽度由内容决定。行内元素的水平`padding`和`margin`有效,但垂直方向的`padding`和`margin`通常无效。
2. **PostCSS**
- PostCSS 是一个使用 JavaScript 插件来转换CSS的工具,它通过解析CSS的抽象语法树(AST)进行操作。
- 主要用途包括:
- 配合 **stylelint** 进行CSS语法校验。
- 自动添加 **浏览器前缀**(如`autoprefixer`)。
- 支持 **CSS下一代语法**(如cssnext)的编译。
### 页面渲染优化知识点
3. **重绘(Reflow)和重排(Repaint)**
- **重绘** 指元素外观改变,如颜色、透明度等,只影响视觉效果,不影响布局。
- **重排** 涉及元素布局的更改,如尺寸、位置变化,会触发整个或部分页面的重新布局。
**触发重绘重排的常见操作**
- 初始页面加载
- 添加/删除DOM元素
- 改变元素位置、字体大小
- 更改尺寸、边距、填充、边框
- 改变内容
- 改变浏览器窗口尺寸
- 激活CSS伪类
- 修改`style`属性
- 查询某些属性(如`offsetWidth`、`offsetHeight`)或调用计算方法
### 减少重绘次数的策略
- **样式集中改变**:一次性修改多个相关样式,而不是逐个修改。
- **分离读写操作**:先读取样式,再进行一系列修改,避免中间引起不必要的重排。
- **将DOM离线**:如使用`display:none`,元素将不再参与渲染,避免后续操作触发重排重绘。
这些面试题总结涵盖了CSS的基本概念、工具的使用以及前端性能优化的关键点,对于理解和准备面试都是非常有帮助的。
2023-08-11 上传
天上肥猫
- 粉丝: 0
- 资源: 1
最新资源
- 单片机串口通信仿真与代码实现详解
- LVGL GUI-Guider工具:设计并仿真LVGL界面
- Unity3D魔幻风格游戏UI界面与按钮图标素材详解
- MFC VC++实现串口温度数据显示源代码分析
- JEE培训项目:jee-todolist深度解析
- 74LS138译码器在单片机应用中的实现方法
- Android平台的动物象棋游戏应用开发
- C++系统测试项目:毕业设计与课程实践指南
- WZYAVPlayer:一个适用于iOS的视频播放控件
- ASP实现校园学生信息在线管理系统设计与实践
- 使用node-webkit和AngularJS打造跨平台桌面应用
- C#实现递归绘制圆形的探索
- C++语言项目开发:烟花效果动画实现
- 高效子网掩码计算器:网络工具中的必备应用
- 用Django构建个人博客网站的学习之旅
- SpringBoot微服务搭建与Spring Cloud实践