此篇會從,以前 HTML 標籤主要的兩種類型(區塊元素、行內元素)來開始介紹,最後會介紹新增的 Content categories。
瀏覽器通常在顯示區塊元素時,在元素前後都有一個換行符號。可以把它們想像成一堆盒子(block box)。
常見的區塊元素有:<div>
、<h1~h6>
、<ul>
、<li>
、<p>
、<hr>
其餘元素請參考 MDN 文件。
Tips
<span class="bg-yellow-200">行內元素</span>
<div class="bg-sky-200">區塊元素</div>
<span class="bg-yellow-200">行內元素</span>
從上方範例來看區塊元素特性
行內元素只會佔據定義元素標籤,本身的空間,而非破壞原本的內容的佈局。
常見的行內元素有:<a>
、<span>
、<br>
其餘元素請參考 MDN 文件。
Tips
<p class="bg-sky-200">
這是一段還有<span class="bg-yellow-200">黃色文字</span>的段落</p>
從上方範例來看行內元素特性
由於行內元素特性較多,此篇幅不會介紹太多,詳細的可以參考前面這篇文章 行內元素特性與常見錯誤用法。
下方從三個方向(包裹彼此、起始位置、結構大小)來討論兩者差異。
可以包
行內元素不能包
區塊元素(雖然不是不能包區塊元素,但不建議
這麼做)因為行內元素只會包含 data 以及其他行內元素,有一個例外就是 a 標籤。
新的一行
開始任意位置
開始比較大
的結構比較小
的結構區塊元素可能包含行內元素和其他區塊元素,這種結構是為了區別出更大的結構,使區塊元素建立比行內元素更大型的結構。
在歷史上元素被歸類為 區塊元素
、行內元素
。由於這是一種特徵的呈現,它現在變為 CSS Flow Layout 來指定。
區塊元素、行內元素主要為 HTML 4.01 之前使用,HTML5 後的元素被更複雜的 Content categories 所取代。
HTML5 後新增了很多語意化標籤(例如:header、footer、article)以及定義了更多不同種類的標籤(例如:canvas、audio、video),為了在使用 HTML 標籤時能夠清楚表達該區塊的用途,如果只靠 區塊元素
、行內元素
來代表元素的種類鐵定是不夠的。
因此才會有新的 Content categories 出現,來依照
不同的用途
,區分出更多元素類別。
Tips
除了上述兩種類別外還有其餘幾種可以參考 MDN 文件(Metadata content、Sectioning content、Heading content、Embedded content、Interactive content、Palpable content、Form-associated content)。