├── README.md ├── 「2021」高频前端面试题汇总之React篇(上) ├── 1.png ├── 2.png ├── 3.png ├── 4.png ├── 5.png ├── 6.png ├── 7.png ├── 8.png ├── 9.png └── index.md ├── 「2021」高频前端面试题汇总之React篇(下) ├── 1.png ├── 2.png ├── 3.jpg ├── 4.jpg ├── 5.jpg ├── 6.jpg ├── 7.jpg ├── 8.jpg └── index.md ├── 「2022」高频前端面试题汇总之CSS篇 ├── 1.png ├── 10.png ├── 11.png ├── 12.png ├── 13.png ├── 14.png ├── 15.png ├── 16.png ├── 17.png ├── 18.png ├── 19.png ├── 2.png ├── 20.png ├── 3.png ├── 4.jpg ├── 5.png ├── 6.png ├── 7.png ├── 8.png ├── 9.png └── index.md ├── 「2022」高频前端面试题汇总之HTML篇 ├── 1.png ├── 2.png └── index.md ├── 「2022」高频前端面试题汇总之JavaScript篇(上) ├── 1.png ├── 2.png ├── 3.png ├── 4.png ├── 5.png ├── 6.png ├── 7.png ├── 8.jpg └── index.md ├── 「2022」高频前端面试题汇总之JavaScript篇(下) ├── 1.png ├── 2.png ├── 3.png └── index.md ├── 「2022」高频前端面试题汇总之Vue篇 (上) ├── 1.png ├── 2.png ├── 3.png ├── 4.png ├── 5.png ├── 6.png ├── 7.jpg ├── 8.jpg └── index.md ├── 「2022」高频前端面试题汇总之Vue篇(下) ├── 1.png ├── 2.png └── index.md ├── 「2022」高频前端面试题汇总之代码输出结果篇 ├── 1.png └── index.md ├── 「2022」高频前端面试题汇总之前端性能优化篇 ├── 1.png ├── 2.png ├── 3.png └── index.md ├── 「2022」高频前端面试题汇总之手写代码篇 ├── 1.png └── index.md ├── 「2022」高频前端面试题汇总之浏览器原理篇 ├── 1.png ├── 10.gif ├── 11.png ├── 12.png ├── 13.png ├── 14.png ├── 2.png ├── 3.png ├── 4.png ├── 5.png ├── 6.png ├── 7.png ├── 8.png ├── 9.png └── index.md ├── 「2022」高频前端面试题汇总之计算机网络篇 ├── 1.png ├── 10.png ├── 11.png ├── 12.webp ├── 13.png ├── 14.webp ├── 15.webp ├── 16.png ├── 17.png ├── 18.png ├── 19.png ├── 2.png ├── 20.png ├── 21.png ├── 3.png ├── 4.png ├── 5.png ├── 6.webp ├── 7.webp ├── 8.png ├── 9.png └── index.md └── 公司面试真题 ├── index.md ├── 二线城市某公司面试题.md ├── 互联网大厂面试题.md ├── 互联网大厂面试题2.md ├── 外包公司面试题.md ├── 杭氧科技面试题.md ├── 某大厂子公司面试题.md └── 绿盟科技面试题(react方向).md /README.md: -------------------------------------------------------------------------------- 1 | # 2022face 2 | 3 | #### 介绍 4 | 最新面试题 5 | 6 | #### 目录 7 | 8 | - 高频前端面试题汇总之HTML篇 9 | - 高频前端面试题汇总之CSS篇 10 | - 高频前端面试题汇总之JavaScript篇 11 | - 高频前端面试题汇总之Vue篇 12 | - 高频前端面试题汇总之React篇 13 | - 高频前端面试题汇总之计算机网络篇 14 | - 高频前端面试题汇总之浏览器原理篇 15 | - 高频前端面试题汇总之性能优化篇 16 | - 高频前端面试题汇总之手写代码篇 17 | - 高频前端面试题汇总之代码输出结果篇 18 | - 力扣(LeetCode)https://leetcode-cn.com/ 50-100道 19 | -------------------------------------------------------------------------------- /「2021」高频前端面试题汇总之React篇(上)/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2021」高频前端面试题汇总之React篇(上)/1.png -------------------------------------------------------------------------------- /「2021」高频前端面试题汇总之React篇(上)/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2021」高频前端面试题汇总之React篇(上)/2.png -------------------------------------------------------------------------------- /「2021」高频前端面试题汇总之React篇(上)/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2021」高频前端面试题汇总之React篇(上)/3.png -------------------------------------------------------------------------------- /「2021」高频前端面试题汇总之React篇(上)/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2021」高频前端面试题汇总之React篇(上)/4.png -------------------------------------------------------------------------------- /「2021」高频前端面试题汇总之React篇(上)/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2021」高频前端面试题汇总之React篇(上)/5.png -------------------------------------------------------------------------------- /「2021」高频前端面试题汇总之React篇(上)/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2021」高频前端面试题汇总之React篇(上)/6.png -------------------------------------------------------------------------------- /「2021」高频前端面试题汇总之React篇(上)/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2021」高频前端面试题汇总之React篇(上)/7.png -------------------------------------------------------------------------------- /「2021」高频前端面试题汇总之React篇(上)/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2021」高频前端面试题汇总之React篇(上)/8.png -------------------------------------------------------------------------------- /「2021」高频前端面试题汇总之React篇(上)/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2021」高频前端面试题汇总之React篇(上)/9.png -------------------------------------------------------------------------------- /「2021」高频前端面试题汇总之React篇(下)/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2021」高频前端面试题汇总之React篇(下)/1.png -------------------------------------------------------------------------------- /「2021」高频前端面试题汇总之React篇(下)/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2021」高频前端面试题汇总之React篇(下)/2.png -------------------------------------------------------------------------------- /「2021」高频前端面试题汇总之React篇(下)/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2021」高频前端面试题汇总之React篇(下)/3.jpg -------------------------------------------------------------------------------- /「2021」高频前端面试题汇总之React篇(下)/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2021」高频前端面试题汇总之React篇(下)/4.jpg -------------------------------------------------------------------------------- /「2021」高频前端面试题汇总之React篇(下)/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2021」高频前端面试题汇总之React篇(下)/5.jpg -------------------------------------------------------------------------------- /「2021」高频前端面试题汇总之React篇(下)/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2021」高频前端面试题汇总之React篇(下)/6.jpg -------------------------------------------------------------------------------- /「2021」高频前端面试题汇总之React篇(下)/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2021」高频前端面试题汇总之React篇(下)/7.jpg -------------------------------------------------------------------------------- /「2021」高频前端面试题汇总之React篇(下)/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2021」高频前端面试题汇总之React篇(下)/8.jpg -------------------------------------------------------------------------------- /「2022」高频前端面试题汇总之CSS篇/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2022」高频前端面试题汇总之CSS篇/1.png -------------------------------------------------------------------------------- /「2022」高频前端面试题汇总之CSS篇/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2022」高频前端面试题汇总之CSS篇/10.png -------------------------------------------------------------------------------- /「2022」高频前端面试题汇总之CSS篇/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2022」高频前端面试题汇总之CSS篇/11.png -------------------------------------------------------------------------------- /「2022」高频前端面试题汇总之CSS篇/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2022」高频前端面试题汇总之CSS篇/12.png -------------------------------------------------------------------------------- /「2022」高频前端面试题汇总之CSS篇/13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2022」高频前端面试题汇总之CSS篇/13.png -------------------------------------------------------------------------------- /「2022」高频前端面试题汇总之CSS篇/14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2022」高频前端面试题汇总之CSS篇/14.png -------------------------------------------------------------------------------- /「2022」高频前端面试题汇总之CSS篇/15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2022」高频前端面试题汇总之CSS篇/15.png -------------------------------------------------------------------------------- /「2022」高频前端面试题汇总之CSS篇/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2022」高频前端面试题汇总之CSS篇/16.png -------------------------------------------------------------------------------- /「2022」高频前端面试题汇总之CSS篇/17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2022」高频前端面试题汇总之CSS篇/17.png -------------------------------------------------------------------------------- /「2022」高频前端面试题汇总之CSS篇/18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2022」高频前端面试题汇总之CSS篇/18.png -------------------------------------------------------------------------------- /「2022」高频前端面试题汇总之CSS篇/19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2022」高频前端面试题汇总之CSS篇/19.png -------------------------------------------------------------------------------- /「2022」高频前端面试题汇总之CSS篇/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2022」高频前端面试题汇总之CSS篇/2.png -------------------------------------------------------------------------------- /「2022」高频前端面试题汇总之CSS篇/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2022」高频前端面试题汇总之CSS篇/20.png -------------------------------------------------------------------------------- /「2022」高频前端面试题汇总之CSS篇/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2022」高频前端面试题汇总之CSS篇/3.png -------------------------------------------------------------------------------- /「2022」高频前端面试题汇总之CSS篇/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2022」高频前端面试题汇总之CSS篇/4.jpg -------------------------------------------------------------------------------- /「2022」高频前端面试题汇总之CSS篇/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2022」高频前端面试题汇总之CSS篇/5.png -------------------------------------------------------------------------------- /「2022」高频前端面试题汇总之CSS篇/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2022」高频前端面试题汇总之CSS篇/6.png -------------------------------------------------------------------------------- /「2022」高频前端面试题汇总之CSS篇/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2022」高频前端面试题汇总之CSS篇/7.png -------------------------------------------------------------------------------- /「2022」高频前端面试题汇总之CSS篇/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2022」高频前端面试题汇总之CSS篇/8.png -------------------------------------------------------------------------------- /「2022」高频前端面试题汇总之CSS篇/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sohucw/face-new/166173b5bccff828e0bfed9bfa1048305efed049/「2022」高频前端面试题汇总之CSS篇/9.png -------------------------------------------------------------------------------- /「2022」高频前端面试题汇总之CSS篇/index.md: -------------------------------------------------------------------------------- 1 | ![](1.png) 2 | 3 | ## 一、CSS基础 4 | 5 | ### 1. CSS选择器及其优先级 6 | 7 | | **选择器** | **格式** | **优先级权重** | 8 | | -------------- | ------------- | -------------- | 9 | | id选择器 | #id | 100 | 10 | | 类选择器 | #classname | 10 | 11 | | 属性选择器 | a[ref=“eee”] | 10 | 12 | | 伪类选择器 | li:last-child | 10 | 13 | | 标签选择器 | div | 1 | 14 | | 伪元素选择器 | li:after | 1 | 15 | | 相邻兄弟选择器 | h1+p | 0 | 16 | | 子选择器 | ul>li | 0 | 17 | | 后代选择器 | li a | 0 | 18 | | 通配符选择器 | * | 0 | 19 | 20 | 对于选择器的**优先级**: 21 | 22 | - 标签选择器、伪元素选择器:1 23 | - 类选择器、伪类选择器、属性选择器:10 24 | - id 选择器:100 25 | - 内联样式:1000 26 | 27 | 28 | 29 | **注意事项:** 30 | 31 | - !important声明的样式的优先级最高; 32 | - 如果优先级相同,则最后出现的样式生效; 33 | - 继承得到的样式的优先级最低; 34 | - 通用选择器(*)、子选择器(>)和相邻同胞选择器(+)并不在这四个等级中,所以它们的权值都为 0 ; 35 | - 样式表的来源不同时,优先级顺序为:内联样式 > 内部样式 > 外部样式 > 浏览器用户自定义样式 > 浏览器默认样式。 36 | 37 | ### 2. CSS中可继承与不可继承属性有哪些 38 | 39 | **一、无继承性的属性** 40 | 41 | 1. **display**:规定元素应该生成的框的类型 42 | 1. **文本属性**: 43 | 44 | - vertical-align:垂直文本对齐 45 | - text-decoration:规定添加到文本的装饰 46 | - text-shadow:文本阴影效果 47 | - white-space:空白符的处理 48 | - unicode-bidi:设置文本的方向 49 | 50 | 3. **盒子模型的属性**:width、height、margin、border、padding 51 | 3. **背景属性**:background、background-color、background-image、background-repeat、background-position、background-attachment 52 | 3. **定位属性**:float、clear、position、top、right、bottom、left、min-width、min-height、max-width、max-height、overflow、clip、z-index 53 | 3. **生成内容属性**:content、counter-reset、counter-increment 54 | 3. **轮廓样式属性**:outline-style、outline-width、outline-color、outline 55 | 3. **页面样式属性**:size、page-break-before、page-break-after 56 | 3. **声音样式属性**:pause-before、pause-after、pause、cue-before、cue-after、cue、play-during 57 | 58 | 59 | 60 | **二、有继承性的属性** 61 | 62 | 1. **字体系列属性** 63 | 64 | - font-family:字体系列 65 | - font-weight:字体的粗细 66 | - font-size:字体的大小 67 | - font-style:字体的风格 68 | 69 | 2. **文本系列属性** 70 | 71 | - text-indent:文本缩进 72 | - text-align:文本水平对齐 73 | - line-height:行高 74 | - word-spacing:单词之间的间距 75 | - letter-spacing:中文或者字母之间的间距 76 | - text-transform:控制文本大小写(就是uppercase、lowercase、capitalize这三个) 77 | - color:文本颜色 78 | 79 | 3. **元素可见性** 80 | 81 | - visibility:控制元素显示隐藏 82 | 83 | 4. **列表布局属性** 84 | 85 | - list-style:列表风格,包括list-style-type、list-style-image等 86 | 87 | 5. **光标属性** 88 | 89 | - cursor:光标显示为何种形态 90 | 91 | ### 3. display的属性值及其作用 92 | 93 | | **属性值** | **作用** | 94 | | ------------ | ---------------------------------------------------------- | 95 | | none | 元素不显示,并且会从文档流中移除。 | 96 | | block | 块类型。默认宽度为父元素宽度,可设置宽高,换行显示。 | 97 | | inline | 行内元素类型。默认宽度为内容宽度,不可设置宽高,同行显示。 | 98 | | inline-block | 默认宽度为内容宽度,可以设置宽高,同行显示。 | 99 | | list-item | 像块类型元素一样显示,并添加样式列表标记。 | 100 | | table | 此元素会作为块级表格来显示。 | 101 | | inherit | 规定应该从父元素继承display属性的值。 | 102 | 103 | ### 4. display的block、inline和inline-block的区别 104 | 105 | (1)**block:** 会独占一行,多个元素会另起一行,可以设置width、height、margin和padding属性; 106 | 107 | (2)**inline:** 元素不会独占一行,设置width、height属性无效。但可以设置水平方向的margin和padding属性,不能设置垂直方向的padding和margin; 108 | 109 | (3)**inline-block:** 将对象设置为inline对象,但对象的内容作为block对象呈现,之后的内联对象会被排列在同一行内。 110 | 111 | 112 | 对于行内元素和块级元素,其特点如下: 113 | 114 | **(1)行内元素** 115 | 116 | - 设置宽高无效; 117 | - 可以设置水平方向的margin和padding属性,不能设置垂直方向的padding和margin; 118 | - 不会自动换行; 119 | 120 | **(2)块级元素** 121 | 122 | - 可以设置宽高; 123 | - 设置margin和padding都有效; 124 | - 可以自动换行; 125 | - 多个块状,默认排列从上到下。 126 | 127 | ### 5. 隐藏元素的方法有哪些 128 | 129 | - **display: none**:渲染树不会包含该渲染对象,因此该元素不会在页面中占据位置,也不会响应绑定的监听事件。 130 | - **visibility: hidden**:元素在页面中仍占据空间,但是不会响应绑定的监听事件。 131 | - **opacity: 0**:将元素的透明度设置为 0,以此来实现元素的隐藏。元素在页面中仍然占据空间,并且能够响应元素绑定的监听事件。 132 | - **position: absolute**:通过使用绝对定位将元素移除可视区域内,以此来实现元素的隐藏。 133 | - **z-index: 负值**:来使其他元素遮盖住该元素,以此来实现隐藏。 134 | - **clip/clip-path** :使用元素裁剪的方法来实现元素的隐藏,这种方法下,元素仍在页面中占据位置,但是不会响应绑定的监听事件。 135 | - **transform: scale(0,0)**:将元素缩放为 0,来实现元素的隐藏。这种方法下,元素仍在页面中占据位置,但是不会响应绑定的监听事件。 136 | 137 | ### 6. link和@import的区别 138 | 139 | 两者都是外部引用CSS的方式,它们的区别如下: 140 | 141 | - link是XHTML标签,除了加载CSS外,还可以定义RSS等其他事务;@import属于CSS范畴,只能加载CSS。 142 | - link引用CSS时,在页面载入时同时加载;@import需要页面网页完全载入以后加载。 143 | - link是XHTML标签,无兼容问题;@import是在CSS2.1提出的,低版本的浏览器不支持。 144 | - link支持使用Javascript控制DOM去改变样式;而@import不支持。 145 | 146 | ### 7. transition和animation的区别 147 | 148 | - **transition是过度属性**,强调过度,它的实现需要触发一个事件(比如鼠标移动上去,焦点,点击等)才执行动画。它类似于flash的补间动画,设置一个开始关键帧,一个结束关键帧。 149 | - **animation是动画属性**,它的实现不需要触发事件,设定好时间之后可以自己执行,且可以循环一个动画。它也类似于flash的补间动画,但是它可以设置多个关键帧(用@keyframe定义)完成动画。 150 | 151 | ### 8. display:none与visibility:hidden的区别 152 | 153 | 这两个属性都是让元素隐藏,不可见。**两者区别如下:** 154 | 155 | (1)**在渲染树中** 156 | 157 | - `display:none`会让元素完全从渲染树中消失,渲染时不会占据任何空间; 158 | - `visibility:hidden`不会让元素从渲染树中消失,渲染的元素还会占据相应的空间,只是内容不可见。 159 | 160 | (2)**是否是继承属性** 161 | 162 | - `display:none`是非继承属性,子孙节点会随着父节点从渲染树消失,通过修改子孙节点的属性也无法显示; 163 | - `visibility:hidden`是继承属性,子孙节点消失是由于继承了`hidden`,通过设置`visibility:visible`可以让子孙节点显示; 164 | (3)修改常规文档流中元素的 `display` 通常会造成文档的重排,但是修改`visibility`属性只会造成本元素的重绘; 165 | 166 | (4)如果使用读屏器,设置为`display:none`的内容不会被读取,设置为`visibility:hidden`的内容会被读取。 167 | 168 | ### 9. **伪元素和伪类的区别和作用?** 169 | 170 | - 伪元素:在内容元素的前后插入额外的元素或样式,但是这些元素实际上并不在文档中生成。它们只在外部显示可见,但不会在文档的源代码中找到它们,因此,称为“伪”元素。例如: 171 | 172 | ```css 173 | p::before {content:"第一章:";} 174 | p::after {content:"Hot!";} 175 | p::first-line {background:red;} 176 | p::first-letter {font-size:30px;} 177 | ``` 178 | 179 | - 伪类:将特殊的效果添加到特定选择器上。它是已有元素上添加类别的,不会产生新的元素。例如: 180 | 181 | ```css 182 | a:hover {color: #FF00FF} 183 | p:first-child {color: red} 184 | ``` 185 | 186 | **总结:** 伪类是通过在元素选择器上加⼊伪类改变元素状态,⽽伪元素通过对元素的操作进⾏对元素的改变。 187 | 188 | ### 10. 对requestAnimationframe的理解 189 | 190 | 实现动画效果的方法比较多,Javascript 中可以通过定时器 setTimeout 来实现,CSS3 中可以使用 transition 和 animation 来实现,HTML5 中的 canvas 也可以实现。除此之外,HTML5 提供一个专门用于请求动画的API,那就是 requestAnimationFrame,顾名思义就是**请求动画帧**。 191 | 192 | 193 | MDN对该方法的描述: 194 | 195 | > window.requestAnimationFrame() 告诉浏览器——你希望执行一个动画,并且要求浏览器在下次重绘之前调用指定的回调函数更新动画。该方法需要传入一个回调函数作为参数,该回调函数会在浏览器下一次重绘之前执行。 196 | 197 | 198 | 199 | **语法:** `window.requestAnimationFrame(callback);` 其中,callback是**下一次重绘之前更新动画帧所调用的函数**(即上面所说的回调函数)。该回调函数会被传入DOMHighResTimeStamp参数,它表示requestAnimationFrame() 开始去执行回调函数的时刻。该方法属于**宏任务**,所以会在执行完微任务之后再去执行。 200 | 201 | 202 | **取消动画:** 使用cancelAnimationFrame()来取消执行动画,该方法接收一个参数——requestAnimationFrame默认返回的id,只需要传入这个id就可以取消动画了。 203 | 204 | 205 | **优势:** 206 | 207 | - **CPU节能**:使用SetTinterval 实现的动画,当页面被隐藏或最小化时,SetTinterval 仍然在后台执行动画任务,由于此时页面处于不可见或不可用状态,刷新动画是没有意义的,完全是浪费CPU资源。而RequestAnimationFrame则完全不同,当页面处理未激活的状态下,该页面的屏幕刷新任务也会被系统暂停,因此跟着系统走的RequestAnimationFrame也会停止渲染,当页面被激活时,动画就从上次停留的地方继续执行,有效节省了CPU开销。 208 | - **函数节流**:在高频率事件( resize, scroll 等)中,为了防止在一个刷新间隔内发生多次函数执行,RequestAnimationFrame可保证每个刷新间隔内,函数只被执行一次,这样既能保证流畅性,也能更好的节省函数执行的开销,一个刷新间隔内函数执行多次时没有意义的,因为多数显示器每16.7ms刷新一次,多次绘制并不会在屏幕上体现出来。 209 | - **减少DOM操作**:requestAnimationFrame 会把每一帧中的所有DOM操作集中起来,在一次重绘或回流中就完成,并且重绘或回流的时间间隔紧紧跟随浏览器的刷新频率,一般来说,这个频率为每秒60帧。 210 | 211 | 212 | 213 | **setTimeout执行动画的缺点**:它通过设定间隔时间来不断改变图像位置,达到动画效果。但是容易出现卡顿、抖动的现象;原因是: 214 | 215 | - settimeout任务被放入异步队列,只有当主线程任务执行完后才会执行队列中的任务,因此实际执行时间总是比设定时间要晚; 216 | - settimeout的固定时间间隔不一定与屏幕刷新间隔时间相同,会引起丢帧。 217 | 218 | ### 11. 对盒模型的理解 219 | 220 | CSS3中的盒模型有以下两种:标准盒子模型、IE盒子模型 221 | ![](2.png) 222 | ![](3.png) 223 | 盒模型都是由四个部分组成的,分别是margin、border、padding和content。 224 | 225 | 226 | 标准盒模型和IE盒模型的区别在于设置width和height时,所对应的范围不同: 227 | 228 | - 标准盒模型的width和height属性的范围只包含了content, 229 | - IE盒模型的width和height属性的范围包含了border、padding和content。 230 | 231 | 232 | 233 | 可以通过修改元素的box-sizing属性来改变元素的盒模型: 234 | 235 | - `box-sizeing: content-box`表示标准盒模型(默认值) 236 | - `box-sizeing: border-box`表示IE盒模型(怪异盒模型) 237 | 238 | ### 12. 为什么有时候⽤**translate**来改变位置⽽不是定位? 239 | 240 | translate 是 transform 属性的⼀个值。改变transform或opacity不会触发浏览器重新布局(reflow)或重绘(repaint),只会触发复合(compositions)。⽽改变绝对定位会触发重新布局,进⽽触发重绘和复合。transform使浏览器为元素创建⼀个 GPU 图层,但改变绝对定位会使⽤到 CPU。 因此translate()更⾼效,可以缩短平滑动画的绘制时间。 ⽽translate改变位置时,元素依然会占据其原始空间,绝对定位就不会发⽣这种情况。 241 | 242 | ### 13. li 与 li 之间有看不见的空白间隔是什么原因引起的?如何解决? 243 | 244 | 浏览器会把inline内联元素间的空白字符(空格、换行、Tab等)渲染成一个空格。为了美观,通常是一个`
  • `放在一行,这导致`
  • `换行后产生换行字符,它变成一个空格,占用了一个字符的宽度。 245 | 246 | 247 | **解决办法:** 248 | 249 | (1)为`
  • `设置float:left。不足:有些容器是不能设置浮动,如左右切换的焦点图等。 250 | 251 | (2)将所有`
  • `写在同一行。不足:代码不美观。 252 | 253 | (3)将`