平常前端面試題

1. rem單位如何轉換爲像素值,是否全部的IE版本都支持

答:取決於頁根元素的字體大小,即html元素的字體大小,所得的像素值=根元素html font-size(默認是16)*rem值,例如,根元素的字體大小16px,10rem將等同於160px,即10 x 16 = 160。除了IE8及更早版本外,全部瀏覽器均已支持rem。javascript

2. 什麼是外邊距重疊margin-collapse?倆個相鄰的外邊距都是正數,負數或一正一負時的結果是什麼?

在CSS當中,相鄰的兩個盒子(多是兄弟關係也多是祖先關係)的外邊距能夠結合成一個單獨的外邊距。這種合併外邊距的方式被稱爲摺疊,而且於是所結合成的外邊距稱爲摺疊外邊距。css

摺疊結果遵循下列計算規則:html

兩個相鄰的外邊距都是正數時,摺疊結果是它們二者之間較大的值。java

兩個相鄰的外邊距都是負數時,摺疊結果是二者絕對值的較大值。web

兩個外邊距一正一負時,摺疊結果是二者的相加的和。瀏覽器

3. 如何在編寫css的時候就儘可能避免渲染計算

1.dom深度儘可能淺。dom

2.減小inline javascript、css的數量。ide

3.使用現代合法的css屬性。性能

4.不要爲id選擇器指定類名或是標籤,由於id能夠惟一肯定一個元素。測試

5.不要給類選擇器指定標籤,類,表明具備一類屬性的標籤,不只是一個,雖然能夠實現,可是下降了效率。

6.避免後代選擇符,儘可能使用子選擇符。緣由:子元素匹配符的機率要大於後代元素匹配符。後代選擇符;#tp p{} 子選擇符:#tp>p{}

7.避免使用通配符,舉一個例子,.mod .hd *{font-size:14px;} 根據匹配順序,將首先匹配通配符,也就是說先匹配出通配符,而後匹配.hd(就是要對dom樹上的全部節點進行遍歷他的父級元素),而後匹配.mod,這樣的性能耗費可想而知)

4. 你作的頁面在哪些瀏覽器測試過?這些瀏覽器的內核分別是什麼?

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-

5. === 和 == 的區別

== 表示相等 (值相等)

===表示恆等(類型和值都要相等)

js在比較的時候若是是 == 會先作類型轉換,再判斷值得大小,若是是===類型和值必須都相等。

相關文章
相關標籤/搜索