一、<div></div>和<span></span>
1.<div></div>標(biāo)簽
<div></div>標(biāo)簽可定義文檔中的分區(qū)或節(jié)(division/section),從而把文檔分割為獨(dú)立的、不同的部分。<div></div>標(biāo)簽可以作為一種嚴(yán)格的組織工具,并且不使用任何格式與其關(guān)聯(lián),這其中包含一種HTML標(biāo)記和表現(xiàn)樣式相分離的思想。在實(shí)際工作中,我們通常為<div></div>標(biāo)簽指定 id 或 class 屬性,使該標(biāo)簽會(huì)變得更加有效。<div></div> 是一個(gè)塊級(jí)元素,這意味著它的內(nèi)容自動(dòng)地開始一個(gè)新行。并且實(shí)際上換行是 <div> 固有的唯一格式表現(xiàn)。
下面這段 HTML 模擬了新聞網(wǎng)站的結(jié)構(gòu)。其中的每對(duì)<div></div>標(biāo)簽 把每條新聞的標(biāo)題和摘要組合在一起,也就是說(shuō),<div></div> 為文檔添加了額外的結(jié)構(gòu)。同時(shí),由于這些 <div></div> 屬于同一類元素,所以可以使用 class="news" 屬性對(duì)這些<div></div>標(biāo)簽進(jìn)行標(biāo)識(shí),這么做不僅為 <div></div> 添加了合適的語(yǔ)義,而且便于進(jìn)一步使用樣式對(duì) <div></div> 進(jìn)行格式化。
<div class="news">
<h2>
News headline 1</h2>
<p>
some text. some text. some text...</p>
...
</div>
<div class="news">
<h2>
News headline 2</h2>
<p>
some text. some text. some text...</p>
...
</div>
2.<span></span>標(biāo)簽
<span> 標(biāo)簽被用來(lái)組合文檔中的行內(nèi)元素(inline elements)。
<span style="color: Red">注意:</span>
二、塊級(jí)元素和行內(nèi)元素
塊級(jí)元素(block element)和行內(nèi)元素/內(nèi)聯(lián)元素(inline element)是css中的概念,像<div></div>和<h1></h1>等元素常常被稱為塊級(jí)元素。這是因?yàn)檫@些元素顯示為一塊內(nèi)容,即“塊框”。與之相反,<span></span> 和 <strong></strong> 等元素稱為“行內(nèi)元素”,這是因?yàn)樗鼈兊膬?nèi)容顯示在一行中,即“行內(nèi)框”。
塊級(jí)元素和行內(nèi)元素的概念并不是固定不變的,而是相對(duì)的。我們可以使用元素的 display 屬性改變生成的框的類型。這意味著,通過(guò)將 display 屬性設(shè)置為 block,可以讓行內(nèi)元素(比如 <a> 元素)表現(xiàn)得像塊級(jí)元素一樣;還可以通過(guò)把 display 設(shè)置為 inline 讓生成的元素成為行內(nèi)元素;甚至,我們可以把display屬性設(shè)置為 none ,使元素根本沒有框,這種情況,該框及其所有內(nèi)容就不再顯示,不占用文檔中的空間。
<div id="dv1" style="display: block">
我是一個(gè)塊級(jí)元素。
</div>
<div id="dv2" style="display: inline">
我是一個(gè)行內(nèi)元素。
</div>
<div id="div3" style="display: none">
我是不可見的
</div>
三、<div></div>和<span></span>的比較
1.相同點(diǎn):<div></div>標(biāo)簽和<span></span>標(biāo)簽都是用來(lái)劃分區(qū)間但是沒有實(shí)際語(yǔ)義的標(biāo)簽;兩者都是主要用于應(yīng)用樣式表。
2.不同點(diǎn):<div></div>標(biāo)簽屬于塊級(jí)元素,瀏覽器在它的前后會(huì)自動(dòng)添加一個(gè)換行標(biāo)簽</br>;<span></span>標(biāo)簽屬于內(nèi)聯(lián)元素,它的前后不會(huì)自動(dòng)添加換行標(biāo)簽。
如果在網(wǎng)頁(yè)布局中要將某兩個(gè)內(nèi)容顯示在同一行內(nèi),最簡(jiǎn)單的方法就是將它們用<span></span>標(biāo)簽包裝起來(lái)。比如,一個(gè)頁(yè)面有相鄰的兩個(gè)元素,一個(gè)是<div></div>,另一個(gè)是<span></span>。要想將它們顯示在同一行,可以將這個(gè)<div></div>改為<span></span>。當(dāng)然,也可以通過(guò)css將<div></div>等標(biāo)簽的display屬性設(shè)置為 inline 來(lái)實(shí)現(xiàn)。