<!DOCTYPE> 標簽的定義與使用

来源:https://www.cnblogs.com/wbyang/archive/2019/09/16/11530636.html
-Advertisement-
Play Games

<!DOCTYPE>標簽的定義 <!DOCTYPE> 聲明位於文檔中最前面的位置,處於<html>標簽之前。<!DOCTYPE> 聲明不是一個HTML標簽,它是告知Web瀏覽器該頁面使用了哪種HTML版本(規範),瀏覽器用此版本(規範)對該文檔進行解析,渲染。 <!DOCTYPE> 可聲明的 DTD ...


<!DOCTYPE>標簽的定義   

    

  <!DOCTYPE> 聲明位於文檔中最前面的位置,處於<html>標簽之前。<!DOCTYPE> 聲明不是一個HTML標簽,它是告知Web瀏覽器該頁面使用了哪種HTML版本(規範),瀏覽器用此版本(規範)對該文檔進行解析,渲染
       <!DOCTYPE> 可聲明的 DTD 有三種:分別是嚴格版本(strict)過渡版本(transitional)、以及基於框架的版本(frameset),若文檔不遵循其DTD規範,則此文檔中的代碼不但不能通過代碼校驗,並且有可能無法正常顯示。

 

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <!--HTML5示例-->
 5         <meta charset="utf-8"> 
 6         <title>文檔標題</title>
 7     </head> 
 8     <body>
 9         文檔內容......
10     </body>
11 </html>

 

 

<!DOCTYPE>標簽的使用

1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

 

  在以上聲明中,此文檔的根元素被聲明為HTML,他在公共標識符被定義為 “-//W3C//DTD HTML 4.01//EN” 的DTD中進行了定義,瀏覽器會明白如何尋找與該公共標識符匹配的DTD,如果找不到,瀏覽器將會使用公共標識符後面的 URL 來尋找DTD的位置。

  -/+:"-“表示組織名稱未註冊,Internet 工程任務組(IETF)和萬維網協會(W3C)並非註冊的 ISO 組織,”+"表示組織名稱已註冊;
  DTD:指公開文本類,即所用的對象類型。預設為DTD;
  HTML:公開文本描述,即對所引用的公開文本的唯一描述性名稱。後面可附帶版本號。預設為HTML;
  URL: 指定所引用對象的位置。
 

 

HTML的文檔類型

HTML4.01 的文檔類型

HTML 4.01 規定了三種文檔類型:StrictTransitional 以及 Frameset

  嚴格版本(strict) 的DTD 包含所有 HTML 元素和屬性,但不包括表象或過時的元素(如 font )。框架集是不允許的。

1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">


  過渡版本(transitional) 的DTD 包含所有 HTML 元素和屬性,包括表象或過時的元素(eg:font ),框架集是不允許的。

1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">


  基於框架的版本(frameset) 的DTD 與 HTML 4.01 Transitional 相同,但是允許使用框架集內容。

1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

 

HTML5 的文檔類型

HTML4.01 中的DOCTYPE需要對 DTD 進行引用,因為 HTML4.01 基於 SGML。而 HTML5 不基於SGML,因此不需要對 DTD 進行引用,但是需要DOCTYPE來規範瀏覽器的行為(讓瀏覽器按照它們應該的方式來運行)。

1 <!DOCTYPE html>

 

XHTML1.0 的文檔類型

XHTML 1.0 規定了三種文檔類型:StrictTransitional 以及 Frameset

  嚴格版本(strict) 的DTD 包含所有 HTML 元素和屬性,但不包括表象或過時的元素(如 font )。框架集是不允許的。結構必須按標準格式的 XML 進行書寫。

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">


  過渡版本(transitional) 的DTD 包含所有 HTML 元素和屬性,包括表象或過時的元素(如 font )。框架集是不允許的。結構必須按標準格式的 XML 進行書寫。

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


  基於框架的版本(frameset) 的DTD 與 XHTML 1.0 Transitional 相同,但是允許使用框架集內容。

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

 

 

XHTML 1.1 的文檔類型

  該DTD 與 XHTML 1.0 Strict 相同,但是允許您添加模塊(例如為東亞語言提供 ruby 支持)。

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

 

 

三種類型文檔的區別

       嚴格版本:
              它將文檔結構與表現形式實現了更高的分離,所以,頁面的外觀要用CSS來控制。

       過渡版本:
              它包含了HTML4.01版本的全部標記,方便網頁開發者順利地從HTML的使用過渡到XHTML

       基於框架的版本:
              它使用<frameset>以框架的形式將網頁分為多個文檔。W3C是推薦使用XHTML的,而且使用XHTML的話可以更順利地通過W3C對網頁頁面的驗證

 

 

註意

       1. 頁面引用哪種規範就要用那種規範允許或推薦使用的標簽。

       2. 如果沒有指定有效的DOCTYPE聲明,大多數瀏覽器都會使用一個內建的預設dtd。在這種情況下, 瀏覽器會用內建的dtd來試著顯示你所指定的標記,這將違背HTML規範的意義,不建議使用這種方式。

       3. 當doctype申明缺失或者格式不正確時,文檔會以相容模式呈現。
           標準模式:排版以及js運行模式都是以瀏覽器支持的最高標準運行;
           相容模式:頁面以寬鬆的向後相容(向老版本相容)方式顯示,模擬老瀏覽器的行為防止(老)站點無法正常工作。

 

 

其他

       <!DOCTYPE html> 是 HTML5 中唯一的 DOCTYPE,也被視作將網頁 “升級” 到 HTML5 的第一步。很多國外網站的<!DOCTYPE><head>之間都會有一段註釋,如:

1 <!—[if IE 6 ]><html class="ie ielt9 ielt8 ielt7 ie6" lang="en-US"><![endif]—>
2 <!—[if IE 7 ]><html class="ie ielt9 ielt8 ie7" lang="en-US"><![endif]—>
3 <!—[if IE 8 ]><html class="ie ielt9 ie8" lang="en-US"><![endif]—>
4 <!—[if IE 9 ]><html class="ie ie9" lang="en-US"><![endif]—>
5 <!—[if (gt IE 9)|!(IE)]><!—><html lang="en-US"><!—<![endif]—>

 

       該代碼作用於 css,來寫一些針對IE各版本的樣式差異。先判斷用戶用的哪個 IE 版本,然後在標簽上加上該版本的 class,這樣可以方便 hack。
css 文件是這樣寫的:

1 .ie6 xxx {};
2 .ie7 xxx {};

       這是目前最好的 hack 方式之一。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 修改前 修改後 6.0 Recovery 模式橫屏修改方法 修改相關文件 bootable\recovery\minui\Android.mk bootable\recovery\minui\mt_graphic_rotate.cpp bootable\recovery\minui\mt_graph ...
  • 最近一直在學習uni-app開發,由於uniapp是基於vue.js技術開發的,只要你熟悉vue,基本上很快就能上手了。 在開發中發現uni-app原生導航欄也能實現一些頂部自定義按鈕+搜索框,只需在page.json裡面做一些配置即可。設置app-plus,配置編譯到App平臺的特定樣式。dclo ...
  • 一、邊框屬性 1.連寫(分別設置四條邊的邊框) 註意點: (1)這三個屬性是按照順時針來賦值的,也就是說按照上右下左來賦值,而不是按照日常生活中的上下左右 (2)關於省略 i.三個(省略左)左右一樣,上下按照咱們寫的 ii.兩個(省略左、下)左右一樣,上下一樣 ii.一個(省略右、左、下)這四個全都 ...
  • 動態原型模型 組合使用構造函數模型和原型模型,使得OO語言程式員在看到獨立的構造函數和原型時很困惑。動態原型模型致力於解決該問題,它把所有的信息封裝在構造函數中,通過在構造函數中初始化原型(僅在必要情況下),同時又使用構造函數和原型的優點。 實例代碼如下: 寄生構造函數模型 基本思想:創建一個函數, ...
  • 該模型為創建自定義類型最常用的方式。 部分摘自《JavaScript高級程式設計(第3版)》 ...
  • 今天在學習查閱代碼的時候,發現了一個不認識的CSS代碼,於是進行學習。 效果圖 使圖片在對應的元素內以不同的方式進行垂直對齊 ...
  • 工廠模型抽象了創建具體對象的過程,以下示例代碼說明工廠類型: 部分摘自《JavaScript高級程式設計(第3版)》 ...
  • JavaScript 基礎入門 JavaScript 的組成 JS 由三部分組成,它們分別是:ECMAScript、DOM、BOM. ECMAScript 因為網景開發了JavaScript,一年後微軟又模仿JavaScript開發了JScript,為了讓JavaScript成為全球標準,幾個公司聯 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...