一些日常前端的面试题
rem单位如何转换为像素值,是否所有的IE版本都支持
答:取决于页根元素的字体大小,即html元素的字体大小, 所得的像素值=根元素html font-size(默认是16)*rem值, 例如,根元素的字体大小16px,10rem将等同于160px,即10 x 16 = 160。除了IE8及更早版本外,所有浏览器均已支持rem。
什么是外边距重叠margin-collapse?俩个相邻的外边距都是正数,负数或一正一负时的结果是什么?
在CSS当中,相邻的两个盒子(可能是兄弟关系也可能是祖先关系)的外边距可以结合成一个单独的外边距。这种合并外边距的方式被称为折叠,并且因而所结合成的外边距称为折叠外边距。
折叠结果遵循下列计算规则:
两个相邻的外边距都是正数时,折叠结果是它们两者之间较大的值。
两个相邻的外边距都是负数时,折叠结果是两者绝对值的较大值。
两个外边距一正一负时,折叠结果是两者的相加的和。
如何在编写css的时候就尽量避免渲染计算
1.dom深度尽量浅。
2.减少inline javascript、css的数量。
3.使用现代合法的css属性。
4.不要为id选择器指定类名或是标签,因为id可以唯一确定一个元素。
5.不要给类选择器指定标签,类,代表具有一类属性的标签,不仅是一个,虽然可以实现,但是降低了效率。
6.避免后代选择符,尽量使用子选择符。原因:子元素匹配符的概率要大于后代元素匹配符。后代选择符;#tp p{} 子选择符:#tp>p{}
7.避免使用通配符,举一个例子,.mod .hd *{font-size:14px;} 根据匹配顺序,将首先匹配通配符,也就是说先匹配出通配符,然后匹配.hd(就是要对dom树上的所有节点进行遍历他的父级元素),然后匹配.mod,这样的性能耗费可想而知)
你做的页面在哪些浏览器测试过?这些浏览器的内核分别是什么?
a、 IE(IE浏览器) : trident 内核 -ms-
b、 Firefox(火狐浏览器) : gecko 内核 -moz-
c、 Safari(苹果浏览器) :webkit 内核 -webkit-
d、 Opera(欧朋浏览器):以前是 presto 内核, Opera 现已改用 Google Chrome 的 Blink 内核 -o-
e、 Chrome(谷歌浏览器):Blink(基于 webkit , Google 与 Opera Software 共同开发 ) -webkit-
=== 和 == 的区别
== 表示相等 (值相等)
===表示恒等(类型和值都要相等)
js在比较的时候如果是 == 会先做类型转换,再判断值得大小,如果是===类型和值必须都相等。
有想了解更多的朋友可以去https://www.jianshu.com/p/86bb74768d12 看一下。