各大互聯(lián)網(wǎng)公司前端面試題集錦

學(xué)人智庫 時(shí)間:2018-02-10 我要投稿
【m.clearvueentertainment.com - 學(xué)人智庫】

  1

  有哪項(xiàng)方式可以對(duì)一個(gè)DOM設(shè)置它的CSS樣式?

  答案:外部樣式表,引入一個(gè)外部css文件

  內(nèi)部樣式表,將css代碼放在 標(biāo)簽內(nèi)部

  內(nèi)聯(lián)樣式,將css樣式直接定義在 HTML 元素內(nèi)部

  2

  CSS都有哪些選擇器?

  答案:

  派生選擇器(用HTML標(biāo)簽申明)

  id選擇器(用DOM的ID申明)

  類選擇器(用一個(gè)樣式類名申明)

  屬性選擇器(用DOM的屬性申明,屬于CSS2,IE6不支持,不常用,不知道就算了)

  除了前3種基本選擇器,還有一些擴(kuò)展選擇器,包括

  后代選擇器(利用空格間隔,比如div .a{ })

  群組選擇器(利用逗號(hào)間隔,比如p,div,#a{ })

  那么問題來了,CSS選擇器的優(yōu)先級(jí)是怎么樣定義的?

  基本原則:

  一般而言,選擇器越特殊,它的優(yōu)先級(jí)越高。也就是選擇器指向的越準(zhǔn)確,它的優(yōu)先級(jí)就越高。

  復(fù)雜的計(jì)算方法:

  用1表示派生選擇器的優(yōu)先級(jí)

  用10表示類選擇器的優(yōu)先級(jí)

  用100標(biāo)示ID選擇器的優(yōu)先級(jí)

  div.test1 .span var 優(yōu)先級(jí) 1+10 +10 +1

  span#xxx .songs li 優(yōu)先級(jí)1+100 + 10 + 1

  #xxx li 優(yōu)先級(jí) 100 +1

  那么問題來了,看下列代碼,

  標(biāo)簽內(nèi)的文字是什么顏色的?

  123

  答案:red。與樣式定義在文件中的先后順序有關(guān),即是后面的覆蓋前面的,與在

  中的先后關(guān)系無關(guān)。

  3

  CSS中可以通過哪些屬性定義,使得一個(gè)DOM元素不顯示在瀏覽器可視范圍內(nèi)?

  答案:

  最基本的:

  設(shè)置display屬性為none,或者設(shè)置visibility屬性為hidden

  技巧性:

  設(shè)置寬高為0,設(shè)置透明度為0,設(shè)置z-index位置在-1000

  4

  超鏈接訪問過后hover樣式就不出現(xiàn)的問題是什么?如何解決?

  答案:被點(diǎn)擊訪問過的超鏈接樣式不在具有hover和active了,解決方法是改變CSS屬性的排列順序: L-V-H-A(link,visited,hover,active)

  5

  什么是Css Hack?ie6,7,8的hack分別是什么?

  答案:針對(duì)不同的瀏覽器寫不同的CSS code的過程,就是CSS hack。

  示例如下:

  #test {

  width:300px;

  height:300px;

  background-color:blue; /*firefox*/

  background-color:red\9; /*all ie*/

  background-color:yellow\0; /*ie8*/