html頁面基本結構
什麼是HTML?
超文字標記語言(Hypertext Markup Language)"超文字"指的就是頁面內可以包含圖片,連結,甚至音樂,程式等非文字元素。
HTML發展歷史
超文字標記語言(第一版)–在1993年6月作文網際網路工程工作小組(IETF)工作草案發布(並非標準)。
HTML2.0 --1995年11月作為RFC 1866釋出,在RFC2854於2000年6月釋出之後被宣佈已經過時。
HTML3.0 --1997年1月14日,W3C推薦標準。
HTML4.0 --1997年12月18日,W3C推薦標準。
HTML4.01(微小改進) --1999年12月24日,W3C推薦標準。
HTML5.0 --2014年10月28日,W3C推薦標準。
本文簡要介紹HTML中的各種元素及其相關屬性,讀者需要有一個概念: HTML頁面都是由基本元素及屬性組成的。HTML頁面的結構如下。
<!DOCTYPE html> //瀏覽器得知自己需要處理的內容是html <html lang="en"> //文件中html開始的部分,lang ="en“ 表示內容為英文, 可以省略寫為 <html> <head> //提供有關內檔內容和標註資訊的內容 </head> <body> //內部的內容即為網頁中顯示的內容</body> </html>
HTML 文件主要分為Head部分 和Body部分 兩個部分
doctype 宣告
HTML 原始檔中, 首先出現的是doctype宣告。 該宣告告訴瀏覽器, 本頁面使用何種標記語言編寫, 這會影響到瀏覽器渲染內容的方式。雖然看起來有點複雜,但大部分所見即所得(WYSIWYG)的web編輯器都能自動建立 doctype。如果不使用視覺化編輯工具,那也可以從其他網頁中拷貝 doctype, 或者參考下面的 doctype 列表。
doctype 是HTML檔案中最頂部的那一行, 說明文件是什麼型別。在HTML檔案中,指的是HTML版本號以及展示風格。以前版本的 doctype 宣告看起來很醜,並且也不好記。
例如 XHTML 1.0 Strict 宣告:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
再看HTML4過渡式的寫法:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
程式碼編輯器的HTML模板中自動包含了doctype,一般也提供了自動插入的方式。
儘管文件頂部的這一串長長的文字也不礙什麼事, 但 HTML5 去除了這些可讀性差的寫法, 統一使用下面的宣告:
<!doctype html>
簡單、而且直接。可以看到,宣告中並沒有出現版本號 “5”。雖然當前版本被稱為 HTML5, 但實際上它只是對HTML之前標準的一個演進。因為瀏覽器必須支援Web上各種現有的內容, 所以實際上並不需要 doctype 來說明依賴哪些特性。
在HTML 4.01頁面中, doctype 看起來是這樣的:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"> <html><head><title>Page title</title></head><body></body></html>
在這個示例中,doctype與HTML 4.01 Strict相關。在下文中,您將看到 HTML 4.01 以及 XHTfML 1.0 , XHTfML 1.1 的示例。雖然很多元素和屬性具有相同的名稱,但在不同版本的HTML和xhtml中還是存在一些明顯的語法差異。詳情請參考HTML Versus XHTML以及HTML and XHTML Syntax.
Document 樹結構
web頁面可以看成是包含任意數量枝幹的文件樹。每個枝幹可以包含哪些元素,有一定的規則(這些內容在每個元素的參考手冊中, “Contains”和““Contained by”部分詳細的說明)。要理解文件樹的概念,可以參考一個簡單的web頁面,看看其中包含的內容特性, 以及對應的樹檢視,如圖1所示:
圖1. 一個簡單頁面的 Document 樹結構
可以看到,html
元素實際上包含兩個元素:head
和body
。head
有兩個子元素:meta
和title
。body
元素可以包含多個 標題(headings)、段落(paragraphs)和block quote
。
注意,標籤的開啟和關閉有對稱性。例如,“It has lots of lovely content …”這一段包含三個文字節點,第二個節點被包在em
元素中(em
,強調元素)。 內容結束後段落被關閉,在下一個元素開始之前(本例中是一個blockquote
); 如果將</p>
標籤寫在blockquote
之後, 則會破壞樹結構。
html
元素
doctype 之後緊接著出現了 [html
] ()元素,這是文件的根元素,接下來的所有內容都是根元素的後代。
如果文件型別為XHTML,那麼根元素(root element)html
需要指定 xmlns屬性(XML名稱空間, html則不需要):
<html xmlns="http://www.w3.org/1999/xhtml">
下面是一個XHTML過渡式頁面的示例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><title>Page title</title></head> <body></body> </html>
head
元素
head
元素包含描述文件本身的 metadata 資訊,以及相關的資源,比如 JS 指令碼和 CSS樣式。
下面的簡單示例包含了title
元素, 它表示文件的標題或名稱,標識該文件是什麼。title
的內容在瀏覽器的標題欄上展示,或者是收藏夾中的名稱。對於搜尋引擎來說, 這也是一個非常重要的資訊項,因為這是一段有意義的摘要,下面是示例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><title>Page title</title></head> <body></body> </html>
除了title
元素之外,head
還可以包含:
-
base
定義了頁面上的連結或資源的 baseURL, 開啟連結內容所對應的基地址。 -
link
指向某種型別的資源, 通常是CSS樣式表, 提供瞭如何展示網頁上各種元素的說明。 -
meta
提供了額外的資訊; 例如, 字元編碼, 頁面的內容摘要, 指示搜尋引擎是否應該索引內容, 等等。 -
object
代表一個通用的、多功能的媒體物件容器 -
script
用於嵌入指令碼, 或者引入外部指令碼. -
style
用於嵌入樣式(頁面內).
這些元素都是可選的, 可以是任意順序。注意, 這裡的元素不會展示在頁面內, 但他們可以影響頁面上展示的內容, 這些內容都在body
元素內定義。
body
元素
頁面中的大部分內容都在 body 內。在瀏覽器視窗(或viewport)中, 可以看到這個元素中包含的所有內容,包括 paragraphs, lists, links, images, tables 等等。body
元素有一些獨有的屬性,但現在這些屬性都被廢棄了,除此之外,這個元素幾乎沒有什麼可說的。 頁面的外觀將完全取決於填充的內容; 參考HTML元素列表,以確定可以包含哪些內容。
原文連結:https://www.sitepoint.com/web-foundations/basic-structure-of-a-web-page/