十一、CSS 画一个三角形?
代码:
width: 0;
height: 0;
border: 20px solid;
border-color:rgba(0,0,0,0) rgba(0,0,0,0) pink rgba(0,0,0,0);
实现方式:
设置宽高为0,然后设置边框为20px,边框类型为solid;上右下左四个边框的颜色,设置其中三个为透明,一个不透明,即可实现三角形
十二、说说你对行高的理解 line-height?
行高是指行与行之间的距离
主要作用单行文本居中:把高度的值设置为line-height值,可以实现单行文本居中,其实也可以把高度删掉。多行文本居中:需要配合padding使用
十三、你是怎么处理浏览器的兼容性?
1、书写样式的时候加上浏览器的前缀
-moz- 火狐的前缀
-webkit- 谷歌的前缀
-o- opera
-ms- ie浏览器
2、降级处理(当前写法不支持,那就换一个相对来说比较low的写法)
3、用js逻辑处理
十四、h5 新特性?
1、h5新语义元素
2、新增表单功能
3、本地存储
4、SVG
5、canvas
6、地理定位
十五、CSS3 新特性?
新增表单,属性,相邻兄弟等选择器
新增背景渐变、盒阴影、边框、过渡、平移、旋转、动画、3d等
十六、什么是页面的回流和重绘?如何避免页面重排和重绘带来的性能问题?
1、回流:当前元素改变了自身的宽高,布局,显示或者隐藏,或者元素内容结构发生了变化,需要重新构建构建页面的时候就是回流;重绘:重绘是在一个元素的外观被改变,但是没有改变页面的布局的情况下,比如改变了背景颜色,visibilit。
2、解决措施:
①、尽量减少对 DOM 的操作,特别是对频繁操作的元素。
②、避免使用递归,尽量使用循环。
③、使用缓存,尽量避免重复计算。
④、使用 CSS3 的动画和过渡,避免使用 JavaScript 来控制动画。
⑤、尽量使用相对定位,避免使用绝对定位。
⑥、尽量使用轻量级的元素,如 div 和 span,避免使用重量级的元素,如 table 和 form。
⑦、当你要在 JavaScript 中操作 DOM 时,应该尽量避免使用过多的 DOM 操作,特别是对频繁操作的元素。这是因为,每次 DOM 操作都会导致浏览器进行重排和重绘,这会消耗大量的 CPU 资源,导致页面性能下降。
十七、移动端点击事件会有多少秒的延时?什么原因造成的?如何解决?
为了对早期普通网页更好的体验,iphone设计了双击放大显示的功能--这就是300ms延迟的来源:如果用户一次点击后300ms内没有其他操作,则认为是个单击行为;否则为双击放大行为。
设置不能缩放:user-scalable=no, 不能缩放就不会有双击缩放操作。
设置显示宽度:width=device-width。
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
十八、移动端 0.5 像素如何实现?
1、给目标元素添加一个伪元素before或者after,并设置绝对定位,给伪元素添上1px的边框。设置伪元素的宽高为目标元素的2倍,缩小0.5倍,使用border-box把border包进来
2、给元素添加背景渐变,设置元素的50%为颜色,50%为透明,高度为1px