詳解HTML編程的標(biāo)記與文檔結(jié)構(gòu)

字號:


    用HTML標(biāo)記內(nèi)容的目的是為了賦予網(wǎng)頁語義(semantic)。換句話說,就是要給你的網(wǎng)頁內(nèi)容賦予某些用戶代理(user agent)能夠理解的含義。
    HTML 規(guī)定了一組標(biāo)簽,用來給內(nèi)容打上不同的標(biāo)記。每個(gè)標(biāo)簽都是對它所包含內(nèi)容的一種描述。最常用的HTML描述的是標(biāo)題、段落、鏈接和圖片。目前,HTML一共有114個(gè)標(biāo)簽,但按照 80/20 原則,使用其中25個(gè)左右的標(biāo)簽就可以滿足80%的標(biāo)記需要。
    HTML 最新的版本 HTML5,又新規(guī)定了一批結(jié)構(gòu)化標(biāo)簽,用于對相關(guān)內(nèi)容的標(biāo)簽進(jìn)行分組,從而更好地規(guī)范網(wǎng)頁的整體結(jié)構(gòu)。這些新標(biāo)簽包括<header>、<nav>(即 navigation,導(dǎo)航)、<article>、<section>、<aside>和<footer>。
    1.標(biāo)簽的閉合
    對于每個(gè)包含內(nèi)容的元素(比如標(biāo)題、段落和圖片),根據(jù)它所包含的內(nèi)容是不是文本,有兩種不同的方式給它們加標(biāo)簽,一種是使用閉合標(biāo)簽,另一種是使用非閉合標(biāo)簽。
    1.1 文本用閉合標(biāo)簽
    示例:<h1>Hello, CSS!</h1>
    1.2 引用內(nèi)容用自閉合標(biāo)簽
    示例:<img src="images/dog.jpg" >
    提示:
    對于自閉合標(biāo)簽,XHTML 要求必須這樣寫:
    XML/HTML Code1.<img src="images/dog.jpg" />  
    而在 HTML5 中,可以省略最后那個(gè)表示關(guān)閉的斜杠,寫成:
    XML/HTML Code1.<img src="images/dog.jpg" >  
    2.屬性
    提示:視障用戶使用的屏幕閱讀器會大聲讀出 alt 屬性的內(nèi)容,因此一定要給標(biāo)簽的這個(gè) alt 屬性添加讓人一聽(或一看)就能明白的內(nèi)容。
    3.標(biāo)題與段落
    4.復(fù)合元素
    HTML 不僅規(guī)定了標(biāo)題、圖片和段落等基本的內(nèi)容標(biāo)記,還規(guī)定了用于創(chuàng)建列表、表格和表單等復(fù)雜用戶界面組件的標(biāo)記,這些就是所謂的復(fù)合元素,即它們是由多個(gè)標(biāo)簽共同構(gòu)成的。
    5.嵌套標(biāo)簽
    簡單地說,就是把一個(gè)標(biāo)簽嵌套在另一個(gè)標(biāo)簽里面。
    6.HTML5 模板
    XML/HTML Code
    1.<!DOCTYPE html>  
    2.<html>  
    3. <head>  
    4. <meta charset="utf-8" />  
    5. <title>An HTML Template</title>  
    6. </head>  
    7. <body>  
    8. <!-- 這里是網(wǎng)頁內(nèi)容 -->  
    9. </body>  
    10.</html>  
    7.塊級元素和行內(nèi)元素
    文檔流效果:HTML 元素會按照它們各自在標(biāo)記中出現(xiàn)的先后順序,依次從頁面上方流向下方。
    幾乎所有HTML 元素的 display 屬性要么為 block,要么為 inline。最明顯的一個(gè)例外是 table 元素,它有自己特俗的 display 值。
    塊級元素(比如標(biāo)題和段落)會相互堆疊在一起沿頁面向下排列,每個(gè)元素分別占一行。而行內(nèi)元素(比如鏈接和圖片)則會相互并列,只有在空間不足以并列的情況下才會折到下一行顯示。
    無論你想了解哪個(gè) HTML 元素,第一個(gè)要問的問題都應(yīng)該是:它是塊級元素,還是行內(nèi)元素?知道了這一點(diǎn)之后,就可以在編寫標(biāo)記的時(shí)候,預(yù)想到某個(gè)元素在初始狀態(tài)下是如何定位的,這樣才能進(jìn)一步想好將來怎么用 CSS 重新定位它。
    有兩點(diǎn)要知道的:
    塊級元素盒子會擴(kuò)展到與父元素同寬。
    行內(nèi)元素盒子會 收縮包裹 其內(nèi)容,并且會盡可能包緊。
    名單
    7.嵌套的元素
    在標(biāo)記中嵌套的是HTML標(biāo)簽,而在屏幕上嵌套的則是一個(gè)個(gè)的盒子。
    8.文檔對象模型
    文檔對象模型(簡稱 DOM)是從瀏覽器的視角來觀察頁面中的元素以及每個(gè)元素的屬性,由此得出這些元素的一個(gè)家族樹。通過DOM,可以確定元素之間的相互關(guān)系。在 CSS 中引用 DOM中特定的位置,就可以選中相應(yīng)的 HTML 元素,并修改其樣式屬性。
    CSS 操作 DOM 的過程是先選擇一個(gè)或一組元素,然后再修改這些元素的屬性。通過 CSS 修改了元素后,比如修改了寬度或者在標(biāo)記里插入了一個(gè)偽元素,這些變化會立即在 DOM 中發(fā)生,并體現(xiàn)在頁面上。
    簡而言之,就是通過 HTML 標(biāo)記來構(gòu)建 DOM,然后在頁面初次加載和用戶與頁面交互時(shí),使用 CSS 來修改 DOM。