騰訊筆試題2

來源:互聯網
上載者:User

HTML && CSS
1.Doctype? strict 模式與混雜模式-如何觸發這兩種模式,區分它們有何意義? 行內元素有哪些?區塊層級元素有哪些?CSS的盒模型?

  答:<!DOCTYPE> 聲明位於文檔中的最前面的位置,處於 <html> 標籤之前。此標籤可告知瀏覽器文檔使用哪種 HTML 或 XHTML 規範。

   該標籤可聲明三種 DTD 類型,分別表示嚴格版本、過渡版本以及基於架構的 HTML 文檔。

      http://www.w3school.com.cn/tags/tag_doctype.asp

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

 

Mozilla和Safari還有第三種模式,稱為”幾乎標準的模式(almost standards mode)”,除了在處理表格的方式上有一些細微的差異之外,這種模式與標準模式相同。

 

在Firefox中,可以使用Web Developer Extension查看頁面的呈現模式。如果網站以標準模式呈現,工具列上會顯示一個綠色的鉤;若以混雜模式呈現,則顯於紅色的叉。IE 8中的開發工具也顯示瀏覽器使用的模式。

 

差異:

 

對於這兩種模式之間的差異,最顯著的一個例子與Windows上IE專有的盒模型有關。在IE 6出現時,在標準模式中使用的是正確的盒模型,在混雜模式中使用的則是老式的專有盒模型。為了維持對IE 5和更低版本的向後相容性,Opera 7和更高版本也在混雜模式中使用有缺點的IE盒模型。

 

呈現方面的其他差異比較小,而且是與特定瀏覽器相關的,包括對於十六進位顏色值不需要#號、假設CSS中沒有指定單位的長度的單位是像素,以及在使用關鍵字時將字型大小增加一級。

 

如何觸發這兩種模式:

 

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

 

根據DOCTYPE是否存在選擇呈現模式,被稱為DOCTYPE切換或DOCTYPE偵測。並非所有瀏覽器都採用這些規則,但是這些規則很好地說明了DOCTYPE切換的工作方式。要瞭解更全面的內容,可查閱網站http://hsivonen.iki.fi/doctype/,這裡的圖表說明了不同瀏覽器如何根據DOCTYPE聲明來選擇呈現方法。

 

DOCTYPE切換是瀏覽器用來區分遺留文檔和符合標準的文檔的手段。無論是否編寫了有效CSS,如果選擇了錯誤的DOCTYPE,那麼頁面就將以混雜模式呈現,其行為就可能會有錯誤或不可預測。因此,一定要在網站的每個頁面上包含形式完整的DOCTYPE聲明,並且在使用HTML時選擇嚴格的DTD。

 

<pre> <ol> <li>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"</li> <li>    "http://www.w3.org/TR/html4/strict.dtd"&gt;</li> <li>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"</li> <li>    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;</li> <li>&lt;!DOCTYPE html&gt;</li> </ol> </pre> 

 

 

 

 

 

許多HTML編輯器會自動添加DOCTYPE聲明。如果建立XHTML文檔,一些老的編輯器還可能在DOCTYPE聲明前面添加XML聲明:

<?xml version="1.0" encoding="utf-8"?>

XML聲明是XML檔案使用的可選聲明,它定義使用的XML版本和字元編碼類型等設定。不幸的是,如果DOCTYPE聲明不是頁面上的第一個元素,那麼IE 6會自動切換到混雜模式。這個問題在IE 7中已經糾正了,但是除非要將頁面用做XML文檔,否則最好避免使用XML聲明。

2.CSS引入的方式有哪些? link和@import的區別?
3.CSS選擇符有哪些?哪些屬性可以繼承?優先順序?內聯和important哪個優先順序高?
4.經常遇到的瀏覽器的相容性有哪些?怎麼會出現?解決方案是什嗎?
5.如何置中一個浮動元素?
6.HTML5和CSS3的瞭解情況

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.