css筆試題摘錄(一)

 1.  Doctype? 嚴格模式與混雜模式-如何觸發這兩種模式,區分它們有何意義?

Doctype聲明位於文檔中的最前面的位置,處於標籤之前。此標籤可告知瀏覽器文檔使用哪種 HTML XHTML 規範。該標籤可聲明三種DTD 類型,分別表示嚴格版本、過渡版本以及基於框架的 HTML 文檔。

當瀏覽器廠商開始創建與標準兼容的瀏覽器時,他們希望確保向後兼容性。爲了實現這一點,他們創建了兩種呈現模式:標準模式和混雜模式(quirks mode)。在標準模式中,瀏覽器根據規範呈現頁面;在混雜模式中,頁面以一種比較寬鬆的向後兼容的方式顯示。混雜模式通常模擬老式瀏覽器(比如Microsoft IE 4Netscape Navigator 4)的行爲以防止老站點無法工作。

瀏覽器根據DOCTYPE是否存在以及使用的哪種DTD來選擇要使用的呈現方法。如果XHTML文檔包含形式完整的DOCTYPE,那麼它一般以標準模式呈現。對於HTML 4.01文檔,包含嚴格DTDDOCTYPE常常導致頁面以標準模式呈現。包含過渡DTDURIDOCTYPE也導致頁面以標準模式呈現,但是有過渡DTD而沒有URI會導致頁面以混雜模式呈現。DOCTYPE不存在或形式不正確會導致HTMLXHTML文檔以混雜模式呈現。

2.  行內元素有哪些?塊級元素有哪些?CSS的盒模型?

行內元素有:a b span I b em img input select strong

塊級元素有:div ul ol li dl dt dd h1 h2 h3 h4…p

盒模型:margin border padding width

3.  CSS引入的方式有哪些? link@import的區別是?

1.  使用 LINK標籤

將樣式規則寫在.css的樣式文件中,再以<link>標籤引入。

<link rel=stylesheet type="text/css" href="example.css">

2.  使用@import引入

link方法很像,但必須放在<STYLE>...</STYLE>

<STYLE TYPE="text/css">

<!--

  @import url(css/example.css);

-->

</STYLE>

3.  使用STYLE標籤

將樣式規則寫在<STYLE>...</STYLE>標籤之中。

<STYLE TYPE="text/css">

<!--

body {color: #666;background: #f0f0f0;font-size: 12px;}

td,p {color:#c00;font-size: 12px;}

-->

</STYLE>

4.  使用STYLE屬性

STYLE屬性直接加在個別的元件標籤裏,<元件(標籤) STYLE="性質(屬性)1: 設定值1; 性質(屬性)2: 設定值2; ...}

5.  使用<span></span>標記引入樣式

<span style="font:12px/20px  #000000;">cnwebshow.com</span>

 

兩者區別:加載順序的差別。當一個頁面被加載的時候,link引用的CSS會同時被加載,而@import引用的CSS會等到頁面全部被下載完再被加載。@import可以在css中再次引入其他樣式表,比如可以創建一個主樣式表,在主樣式表中再引入其他的樣式表,如:

 

main.css

———————-

@import “sub1.css”;

@import “sub2.css”;

這樣做有一個缺點,會對網站服務器產生過多的HTTP請求,以前是一個文件,而現在卻是兩個或更多文件了,服務器的壓力增大,瀏覽量大的網站還是謹慎使用。

 

4.  CSS選擇符有哪些?哪些屬性可以繼承?優先級算法如何計算?內聯和important哪個優先級高?

l  通配選擇符* { sRules }

l  類型選擇符E { sRules }
td { font-size:14px; width:120px; }

l  屬性選擇符
E [ attr ] { sRules }//
所有具有該屬性的元素
E [ attr = value ] { sRules }//
屬性與屬性值必須完全匹配
E [ attr ~= value ] { sRules }//
部分匹配屬性選擇器
E [ attr |= value ] { sRules }//
匹配valuevalue-開頭的元素

l  ^= //xxx開頭的元素

l  $= //xxx結尾的元素

l  *= //包含xxx的元素

l  包含選擇符E1 E2 { sRules }
table td { font-size:14px; }

l  子對象選擇符E1 > E2 { sRules }
div ul>li p { font-size:14px; }

l  ID選擇符 #ID { sRules }

l  類選擇符E.className { sRules }

l  選擇符分組
E1 , E2 , E3 { sRules }

l  僞類及僞對象選擇符
E : Pseudo-Classes { sRules }
( Pseudo-Classes )[:link :hover :active :visited :focus :first-child :first :left :right :lang]
E : Pseudo-Elements { sRules }
( Pseudo-Elements )[:first-letter :first-line :before :after]

可以繼承的有:font-size font-family color

不可繼承的一般有:border padding margin background-color width height
============================

關於CSS specificity

CSS specificity 特性或稱非凡性,它是衡量一個衡量CSS值優先級的一個標準

既然作爲標準,就具有一套相關的判定規定及計算方式,specificity用一個四位的數 字串(CSS2是三位)來表示,更像四個級別,值從左到右,左面的最大,一級大於一級,數位之間沒有進制,級別之間不可超越。

 

算法:

當遇到多個選擇符同時出現時候

按選擇符得到的Specificity值逐位相加,

{數位之間沒有進制 比如說: 0,0,0,5 + 0,0,0,5 =0,0,0,10 而不是 0,0, 1, 0}

就得到最終計算得的specificity

然後在比較取捨時按照從左到右的順序逐位比較。

 

主要的選擇器Specificity值:

!important最高

行內style 1000

Id選擇器  0100

Class及屬性選擇器 0,0,1,0

標籤選擇器 0,0,0,1

其他選擇符 0,0,0,0

Specificity值一樣的情況下,按CSS代碼中出現的順序決定,後者CSS樣式居上;

由繼續而得到的樣式沒有specificity的計算,它低於一切其他規則(比如全局選擇符*定義的規則)

實例分析:

1.html > body div [id=”totals”] ul li > p {color:red;}

分析:

6個元素{ html body div ul li p}  Specificity值爲0,0,0,6

1個屬性選擇符{ [id=totals] }      Specificity值爲0,0,1,0

2個其他選擇符{ >  > }            Specificity值爲0,0,0,0

最終:Specificity值爲 0,0,1,6

 

使用!important可以改變優先級別爲最高,其次是style對象,然後是id > class >tag ,另外在同級樣式按照申明的順序後出現的樣式具有高優先級。

5.  前端頁面由哪三層構成,分別是什麼?作用是什麼?
網頁分成三個層次,即:結構層(htmlxhtml)、表示層(css)、行爲層(js)。
網頁的結構層(structural layer)由 HTML XHTML 之類的標記語言負責創建。標籤,也就是那些出現在尖括號裏的單詞,對網頁內容的語義含義做出了描述,但這些標籤不包含任何關於如何顯示有關內容的信息。例如,P 標籤表達了這樣一種語義:“這是一個文本段。”
網頁的表示層(presentation layer) 由 CSS 負責創建。 CSS 對“如何顯示有關內容”的問題做出了回答。
網頁的行爲層(behavior layer)負責回答“內容應該如何對事件做出反應”這一問題。這是 Javascript 語言和 DOM 主宰的領域。

6.  css的基本語句構成是?
選擇器{屬性1:1;屬性2:2;……}

如 如何居中一個浮動元素?

   設置容器的浮動方式爲相對定位,然後確定容器的寬高,比如寬500 300 的層,然後設置層的外邊距。
div{Width:500px;height:300px;Margin: -150px 0 0 -250px;position:relative;left:50%;top:50%;}

如何用CSS分別單獨定義IE678width屬性。

所有瀏覽器 通用
height: 100px;
IE6
專用
_height: 100px;
IE6
專用
*height: 100px;
IE7
專用
*+height: 100px;
IE7
FF 共用
height: 100px !important;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章