HTML可以將元素分類方式分爲行內元素、塊狀元素和行內塊狀元素三種。首先需要說明的是,這三者是可以互相轉換的,使用display屬性能夠將三者任意轉換:
(1)display:inline;轉換爲行內元素
(2)display:block;轉換爲塊狀元素
(3)display:inline-block;轉換爲行內塊狀元素
1.行內元素
行內元素最常使用的就是span,其他的只在特定功能下使用,修飾字體<b>和<i>標籤,還有<sub>和<sup>這兩個標籤可以直接做出平方的效果,而不需要類似移動屬性的幫助,很實用。
行內元素特徵:(1)設置寬高無效
(2)對margin僅設置左右方向有效,上下無效;padding設置上下左右都有效,即會撐大空間,行內元素尺寸 由內含的內容決定,盒模型中 padding, border 與塊級元素並無差異,都是標準的盒模型,但是 margin 卻只有水平方向的值,垂直方向並沒有起作用。行內元素的水平方向的padding-left,padding-right,margin- left,margin-right 都產生邊距效果,但是豎直方向的padding-top,padding-bottom,margin-top,margin-bottom都 不會產生邊距效果。padding設置上下左右都有效,即會撐大空間但是不會產生邊距效果。
(3)不會自動進行換行
2.塊狀元素
塊狀元素代表性的就是div,其他如p、nav、aside、header、footer、section、article、ul-li、address等等,都可以用div來實現。不過爲了可以方便程序員解讀代碼,一般都會使用特定的語義化標籤,使得代碼可讀性強,且便於查錯。
塊狀元素特徵:(1)能夠識別寬高
(2)margin和padding的上下左右均對其有效
(3)可以自動換行
(4)多個塊狀元素標籤寫在一起,默認排列方式爲從上至下
3.行內塊狀元素
行內塊狀元素綜合了行內元素和塊狀元素的特性,但是各有取捨。因此行內塊狀元素在日常的使用中,由於其特性,使用的次數也比較多。
行內塊狀元素特徵:(1)不自動換行
(2)能夠識別寬高
(3)默認排列方式爲從左到右
在HTML5中,程序員可以自定義標籤,在任意定義標籤中,加入display:block;即可,當然也可以是行內或行內塊狀。
元素(block element)
* address - 地址
* blockquote - 塊引用
* center - 舉中對齊塊
* dir - 目錄列表
* div - 常用塊級容易,也是css layout的主要標籤
* dl - 定義列表
* fieldset - form控制組
* form - 交互表單
* h1 - 大標題
* h2 - 副標題
* h3 - 3級標題
* h4 - 4級標題
* h5 - 5級標題
* h6 - 6級標題
* hr - 水平分隔線
* isindex - input prompt
* menu - 菜單列表
* noframes - frames可選內容,(對於不支持frame的瀏覽器顯示此區塊內容
* noscript - 可選腳本內容(對於不支持script的瀏覽器顯示此內容)
* ol - 排序表單
* p - 段落
* pre - 格式化文本
* table - 表格
* ul - 非排序列表
內聯元素(inline element)
* a - 錨點
* abbr - 縮寫
* acronym - 首字
* b - 粗體(不推薦)
* bdo - bidi override
* big - 大字體
* br - 換行
* cite - 引用
* code - 計算機代碼(在引用源碼的時候需要)
* dfn - 定義字段
* em - 強調
* font - 字體設定(不推薦)
* i - 斜體
* img - 圖片
* input - 輸入框
* kbd - 定義鍵盤文本
* label - 表格標籤
* q - 短引用
* s - 中劃線(不推薦)
* samp - 定義範例計算機代碼
* select - 項目選擇
* small - 小字體文本
* span - 常用內聯容器,定義文本內區塊
* strike - 中劃線
* strong - 粗體強調
* sub - 下標
* sup - 上標
* textarea - 多行文本輸入框
* tt - 電傳文本
* u - 下劃線
* var - 定義變量
可變元素
可變元素爲根據上下文語境決定該元素爲塊元素或者內聯元素。
* applet - java applet
* button - 按鈕
* del - 刪除文本
* iframe - inline frame
* ins - 插入的文本
* map - 圖片區塊(map)
* object - object對象
* script - 客戶端腳本