塊元素一般都從新行開始,它可以容納內(nèi)聯(lián)元素和其他塊元素,常見塊元素是段落標(biāo)簽P
。form
這個(gè)塊元素比較特殊,它只能用來(lái)容納其他塊元素。
如果沒有css
的作用,塊元素會(huì)順序以每次另起一行的方式一直往下排。而有了css
以后,我們可以改變這種html
的默認(rèn)布局模式,把塊元素?cái)[放到你想要 的位置上去。而不是每次都愚蠢的另起一行。需要指出的是,table
標(biāo)簽也是塊元素的一種,table based layout
和css based layout
從一般使用者(不包括視力障礙者、盲人等)的角度來(lái)看這兩種布局,除了頁(yè)面載入速度的差別外,沒有其他的差別。但是如果普通使用者不經(jīng)意點(diǎn)了 查看頁(yè)面源代碼按鈕后,兩者所表現(xiàn)出來(lái)的差異就非常大了。基于良好重構(gòu)理念設(shè)計(jì)的css
布局頁(yè)面源碼,至少也能讓沒有web
開發(fā)經(jīng)驗(yàn)的普通使用者把內(nèi)容快 速的讀懂。從這個(gè)角度來(lái)說(shuō),css layout code
應(yīng)該有更好的美學(xué)體驗(yàn)吧。
你能夠把塊容器元素div
想象成一個(gè)個(gè)box
,或者如果你玩過(guò)剪貼文載的話,那就更加容易理解了。我們先把需要的文章從各種報(bào)紙、雜志總剪 下來(lái)。每塊剪下來(lái)的內(nèi)容就是一個(gè)block
。然后我們把這些紙塊按照自己的排版意圖,用膠水重新貼到一張空白的新紙上。這樣就形成了你自己獨(dú)特的文摘快報(bào) 了。作為一種技術(shù)的延伸,網(wǎng)頁(yè)布局設(shè)計(jì)也遵循了同樣的模式。.
內(nèi)聯(lián)元素inline element
一般都是基于語(yǔ)義級(jí)semantic
的基本元素。內(nèi)聯(lián)元素只能容納文本或者其他內(nèi)聯(lián)元素,常見內(nèi)聯(lián)元素 a
。
塊元素block element
和內(nèi)聯(lián)元素inline element
都是html
規(guī)范中的概念。塊元素和內(nèi)聯(lián)元素的基本差異是塊元素一般都從新行開始。而當(dāng)加入了css
控制以后,塊元素和內(nèi)聯(lián)元素的這種屬 性差異就不成為差異了。比如,我們完全可以把內(nèi)聯(lián)元素cite
加上display:block
這樣的屬性,讓他也有每次都從新行開始的屬性。
可變?cè)氐幕靖拍罹褪撬枰鶕?jù)上下文關(guān)系確定該元素是塊元素或者內(nèi)聯(lián)元素。可變?cè)剡€是屬于上述兩種元素類別,一旦上下文關(guān)系確定了他的類別,他就要遵循塊元素或者內(nèi)聯(lián)元素的規(guī)則限制。大致的元素分類見全文。
關(guān)于inline element
的中文叫法,有多種內(nèi)聯(lián)元素、內(nèi)嵌元素、行內(nèi)元素、直進(jìn)式元素。基本上沒有統(tǒng)一的翻譯,愛怎么叫怎么叫吧。另外提到內(nèi)聯(lián)元素,我們會(huì)想到有個(gè)display
的屬性是display:inline
;這個(gè)屬性能夠修復(fù)著名的IE雙倍浮動(dòng)邊界問(wèn)題。
關(guān)于行內(nèi)元素和塊狀元素的說(shuō)明
根據(jù)
CSS
規(guī)范的規(guī)定,每一個(gè)網(wǎng)頁(yè)元素都有一個(gè)display
屬性,用于確定該元素的類型,每一個(gè)元素都有默認(rèn)的display
屬性值,比如div
元素,它的默認(rèn)display
屬性值為block
,成為“塊級(jí)”元素block-level
;而span
元素的默認(rèn)display
屬性值為inline
,稱為“行內(nèi)”元素。div
這樣的塊級(jí)元素,就會(huì)自動(dòng)占據(jù)一定矩形空間,可以通過(guò)設(shè)置高度、寬度、內(nèi)外邊距等屬性,來(lái)調(diào)整的這個(gè)矩形的樣子;與之相反,像span
、a
這樣的行內(nèi)元素,則沒有自己的獨(dú)立空間,它是依附于其他塊級(jí)元素存在的,因此,對(duì)行內(nèi)元素設(shè)置高度、寬度、內(nèi)外邊距等屬性,都是無(wú)效的。
行內(nèi)、塊狀元素區(qū)別:
- 塊級(jí)元素會(huì)獨(dú)占一行,其寬度自動(dòng)填滿其父元素寬度
行內(nèi)元素不會(huì)獨(dú)占一行,相鄰的行內(nèi)元素會(huì)排列在同一行里,知道一行排不下,才會(huì)換行,其寬度隨元素的內(nèi)容而變化 - 一般情況下,塊級(jí)元素可以設(shè)置 width, height屬性,行內(nèi)元素設(shè)置width, height無(wú)效 (注意:塊級(jí)元素即使設(shè)置了寬度,仍然是獨(dú)占一行的)
- 塊級(jí)元素可以設(shè)置
margin
和padding
. 行內(nèi)元素的水平方向的padding-left
,padding-right
,margin-left
,margin-right
都產(chǎn)生邊距效果,但是豎直方向的padding-top
,padding-bottom
,margin-top
,margin-bottom
都不會(huì)產(chǎn)生邊距效果。(水平方向有效,豎直方向無(wú)效)
塊元素block element
- address
- 地址
- blockquote
- 塊引用
- center
- 舉中對(duì)齊塊
- dir
- 目錄列表
- div
- 常用塊級(jí)容易,也是css layout的主要標(biāo)簽
- dl
- 定義列表
- ieldset - form
控制組
- form
- 交互表單
- h1
- 大標(biāo)題
- h2
- 副標(biāo)題
- h3
- 3級(jí)標(biāo)題
- h4
- 4級(jí)標(biāo)題
- h5
- 5級(jí)標(biāo)題
- h6
- 6級(jí)標(biāo)題
- hr
- 水平分隔線
- isindex
- 提示用戶輸入單行文本
- menu
- 菜單列表
- noframes - frames
可選內(nèi)容,(對(duì)于不支持frame的瀏覽器顯示此區(qū)塊內(nèi)容)
- noscript
- 可選腳本內(nèi)容(對(duì)于不支持script的瀏覽器顯示此內(nèi)容)
- ol
- 排序表單
- p
- 段落
- pre
- 格式化文本
- table
- 表格
- ul
- 非排序列表
內(nèi)聯(lián)元素(inline element)
- a
- 錨點(diǎn)
- abbr
- 縮寫
- acronym
- 首字
- b
- 粗體(不推薦)
- bdo
- 右向左輸出
- big
- 大字體
- br
- 換行
- cite
- 引用
- code
- 計(jì)算機(jī)代碼(在引用源碼的時(shí)候需要)
- dfn
- 定義字段
- em
- 強(qiáng)調(diào)
- font
- 字體設(shè)定(不推薦)
- i
- 斜體
- img
- 圖片
- input
- 輸入框
- kbd
- 定義鍵盤文本
- label
- 表格標(biāo)簽
- q
- 短引用
- s
- 中劃線(不推薦)
- samp
- 定義范例計(jì)算機(jī)代碼
- select
- 項(xiàng)目選擇
- small
- 小字體文本
- span
- 常用內(nèi)聯(lián)容器,定義文本內(nèi)區(qū)塊
- strike
- 中劃線
- strong
- 粗體強(qiáng)調(diào)
- sub
- 下標(biāo)
- sup
- 上標(biāo)
- textarea
- 多行文本輸入框
- tt
- 電傳文本
- u
- 下劃線
- var
- 定義變量
可變?cè)?/h4>
可變?cè)貫楦鶕?jù)上下文語(yǔ)境決定該元素為塊元素或者內(nèi)聯(lián)元素。
- applet
- java applet
- button
- 按鈕
- del
- 刪除文本
- iframe
- 元素會(huì)創(chuàng)建包含另外一個(gè)文檔的內(nèi)聯(lián)框架(即行內(nèi)框架)。
- ins
- 插入的文本
- map
- 圖片區(qū)塊(map)
- object
- object對(duì)象
- script
- 客戶端腳本