【日更】前端面试题

112 阅读3分钟

十一、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 新特性?

1h5新语义元素
2、新增表单功能
3、本地存储
4、SVG
5canvas
6、地理定位

十五、CSS3 新特性?

新增表单,属性,相邻兄弟等选择器
新增背景渐变、盒阴影、边框、过渡、平移、旋转、动画、3d等

十六、什么是页面的回流和重绘?如何避免页面重排和重绘带来的性能问题?

1、回流:当前元素改变了自身的宽高,布局,显示或者隐藏,或者元素内容结构发生了变化,需要重新构建构建页面的时候就是回流;重绘:重绘是在一个元素的外观被改变,但是没有改变页面的布局的情况下,比如改变了背景颜色,visibilit。
2、解决措施:
    ①、尽量减少对 DOM 的操作,特别是对频繁操作的元素。
    ②、避免使用递归,尽量使用循环。
    ③、使用缓存,尽量避免重复计算。
    ④、使用 CSS3 的动画和过渡,避免使用 JavaScript 来控制动画。
    ⑤、尽量使用相对定位,避免使用绝对定位。
    ⑥、尽量使用轻量级的元素,如 divspan,避免使用重量级的元素,如 tableform。
    ⑦、当你要在 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