03-行內(nèi)文兑、塊盒刚、空元素的區(qū)別


談?wù)勎覍?duì) 行內(nèi)元素/塊級(jí)元素/空元素 的區(qū)別的認(rèn)識(shí)


之前一直很熟悉 在行內(nèi)元素塊級(jí)元素绿贞,后來(lái)聽(tīng)說(shuō)竟然還有空元素一說(shuō)因块,于是就趕緊總結(jié)一下,增長(zhǎng)一下見(jiàn)識(shí)

先說(shuō)說(shuō)行內(nèi)元素

行內(nèi)元素又叫內(nèi)聯(lián)元素或者行內(nèi)標(biāo)簽.

它的特點(diǎn)有

  • 設(shè)置寬高無(wú)效籍铁,只能由內(nèi)容撐起來(lái)涡上,即行內(nèi)元素設(shè)置width,height屬性無(wú)效.
  • 行內(nèi)元素不會(huì)獨(dú)占一行,相鄰的行內(nèi)元素會(huì)排列在同一行里,直到一行排不下,才會(huì)換行,其寬度隨元素的內(nèi)容而變化.
  • 設(shè)置上下margin無(wú)效,左右margin有效
  • 設(shè)置上下padding無(wú)效拒名,左右padding有效
  • 行內(nèi)元素的margin和padding屬性,水平方向的padding-left,padding-right,margin-left,margin-right都產(chǎn)生邊距效果,但豎直方向的padding-top,padding-bottom,margin-top,margin-bottom卻不會(huì)產(chǎn)生邊距效果.
  • 行內(nèi)元素對(duì)應(yīng)于display:inline

常見(jiàn)的行內(nèi)元素有:

span吩愧、em、i增显、b雁佳、strong、a、img糖权、input堵腹、br、select星澳、textarea疚顷、q、bdo禁偎、sub腿堤、sup...等等

塊級(jí)元素

塊級(jí)元素又叫塊級(jí)標(biāo)簽

它的特點(diǎn)有

  • 能夠設(shè)置寬高,即塊級(jí)元素可以設(shè)置width,height屬性.
  • 塊級(jí)元素會(huì)獨(dú)占一行,默認(rèn)情況下,其寬度自動(dòng)填滿其父元素寬度.
  • 塊級(jí)元素即使設(shè)置了寬度,仍然是獨(dú)占一行
  • 塊級(jí)元素可以設(shè)置margin和padding屬性届垫,即上下左右margin有效释液,上下左右padding有效
  • 塊級(jí)元素對(duì)應(yīng)于display:block

常見(jiàn)的塊級(jí)元素有:

div、p装处、h1~h6误债、
ul、ol妄迁、li寝蹈、
dl、dt登淘、dd箫老、
form、table黔州、hr耍鬓、
blockquote // 瀏覽器以縮進(jìn)方式顯示被引用的文本,通常定義一段長(zhǎng)的文本引用流妻、
address牲蜀、menu、pre.....等等

空元素

這個(gè)我之前不了解绅这,但了解了特性就很簡(jiǎn)單了涣达,大家都看一看記住就行了

什么是 空元素缆镣?

沒(méi)有內(nèi)容的 HTML 元素被稱為空元素帘睦。空元素是在開(kāi)始標(biāo)簽關(guān)閉的暂吉。
<br>就是沒(méi)有關(guān)閉標(biāo)簽的空元素(<br>標(biāo)簽定義換行)浑度。
在 XHTML寇窑、XML 以及未來(lái)版本的 HTML 中,所有元素都必須被關(guān)閉箩张。

由于HTML元素的內(nèi)容是開(kāi)始標(biāo)簽結(jié)束標(biāo)簽之間的內(nèi)容甩骏。
而某些 HTML 元素具有空內(nèi)容完残。那些含有空內(nèi)容的HTML元素,就是空元素横漏。

簡(jiǎn)單的說(shuō)就是:沒(méi)有 HTML 內(nèi)容的元素被稱為空元素∈斓啵空元素是在開(kāi)始標(biāo)簽中關(guān)閉的缎浇。

空元素最顯著的特點(diǎn)?

  • 沒(méi)有HTML內(nèi)容
  • 單標(biāo)簽赴肚,只有開(kāi)始標(biāo)簽素跺,沒(méi)有結(jié)束標(biāo)簽

常見(jiàn)的空元素有哪些?

<br> //換行 
<input> //文本框等
<img>  //圖片
<hr>  //分割線
...等等

空標(biāo)簽注意的地方誉券?

<br />就是沒(méi)有關(guān)閉標(biāo)簽的空元素(<br />標(biāo)簽定義換行)指厌。
在開(kāi)始標(biāo)簽中添加斜杠,比如 <br />踊跟,是關(guān)閉空元素的正確方法踩验,HTML、XHTML 和 XML 都接受這種方式商玫。
即使 <br>在所有瀏覽器中都是有效的箕憾,但使用 <br />其實(shí)是更長(zhǎng)遠(yuǎn)的保障。

HTML 元素語(yǔ)法

  • HTML 元素以開(kāi)始標(biāo)簽起始
  • HTML 元素以結(jié)束標(biāo)簽終止
  • 元素的內(nèi)容是開(kāi)始標(biāo)簽與結(jié)束標(biāo)簽之間的內(nèi)容
  • 某些 HTML 元素具有空內(nèi)容(empty content)
  • 空元素在開(kāi)始標(biāo)簽中進(jìn)行關(guān)閉(以開(kāi)始標(biāo)簽的結(jié)束而結(jié)束)
  • 大多數(shù) HTML 元素可擁有屬性

HTML 提示:使用小寫(xiě)標(biāo)簽

HTML 標(biāo)簽對(duì)大小寫(xiě)不敏感<P> 等同于 <p>拳昌。許多網(wǎng)站都使用大寫(xiě)的 HTML 標(biāo)簽袭异。
W3School 使用的是小寫(xiě)標(biāo)簽,因?yàn)槿f(wàn)維網(wǎng)聯(lián)盟(W3C)在 HTML 4 中推薦使用小寫(xiě)炬藤,而在未來(lái) (X)HTML 版本中強(qiáng)制使用小寫(xiě)御铃。

行內(nèi)元素與塊級(jí)元素的嵌套規(guī)則?

大多數(shù) HTML 元素可以嵌套(可以包含其他 HTML 元素)沈矿。
HTML 文檔由嵌套的 HTML 元素構(gòu)成上真。

  • 塊級(jí)元素可以嵌套內(nèi)聯(lián)元素或者某些塊級(jí)元素
  • 內(nèi)聯(lián)元素只能嵌套內(nèi)聯(lián)元素,不能嵌套塊級(jí)元素

比較典型的特例

  • a無(wú)所不能细睡,但a不能嵌套它本身
  • p標(biāo)簽不能嵌套塊級(jí)元素
  • h1~h6谷羞、p、dt標(biāo)簽:只能包含內(nèi)聯(lián)元素溜徙,不能再包含塊級(jí)元素
  • li很強(qiáng)大湃缎,它可以包含div,甚至可以包含它的父元素ul或者ol

怎么改變?cè)氐呐帕蟹绞酱酪迹ㄟ^(guò)設(shè)置display屬性嗓违?

常見(jiàn)的屬性值有:

diaplay: none 此元素不會(huì)被顯示。
diaplay: block 此元素將顯示為塊級(jí)元素图贸,此元素前后會(huì)帶有換行符蹂季。
diaplay: inline 默認(rèn)冕广。此元素會(huì)被顯示為內(nèi)聯(lián)元素,元素前后沒(méi)有換行符偿洁。
diaplay: inline-block 行內(nèi)塊元素撒汉。(CSS2.1 新增的值)
diaplay: list-item 此元素會(huì)作為列表顯示。
diaplay: inherit 規(guī)定應(yīng)該從父元素繼承 display 屬性的值涕滋。

可做了解睬辐,不做深入:


diaplay: run-in 此元素會(huì)根據(jù)上下文作為塊級(jí)元素或內(nèi)聯(lián)元素顯示。
diaplay: compact    CSS 中有值 compact宾肺,不過(guò)由于缺乏廣泛支持溯饵,已經(jīng)從 CSS2.1 中刪除。
diaplay: marker CSS 中有值 marker锨用,不過(guò)由于缺乏廣泛支持丰刊,已經(jīng)從 CSS2.1 中刪除。
diaplay: table  此元素會(huì)作為塊級(jí)表格來(lái)顯示(類似 <table>)增拥,表格前后帶有換行符啄巧。
diaplay: inline-table   此元素會(huì)作為內(nèi)聯(lián)表格來(lái)顯示(類似 <table>),表格前后沒(méi)有換行符掌栅。
diaplay: table-row-group    此元素會(huì)作為一個(gè)或多個(gè)行的分組來(lái)顯示(類似 <tbody>)棵帽。
diaplay: table-header-group 此元素會(huì)作為一個(gè)或多個(gè)行的分組來(lái)顯示(類似 <thead>)。
diaplay: table-footer-group 此元素會(huì)作為一個(gè)或多個(gè)行的分組來(lái)顯示(類似 <tfoot>)渣玲。
diaplay: table-row  此元素會(huì)作為一個(gè)表格行顯示(類似 <tr>)逗概。
diaplay: table-column-group 此元素會(huì)作為一個(gè)或多個(gè)列的分組來(lái)顯示(類似 <colgroup>)。
diaplay: table-column   此元素會(huì)作為一個(gè)單元格列顯示(類似 <col>)
diaplay: table-cell 此元素會(huì)作為一個(gè)表格單元格顯示(類似 <td> 和 <th>)
diaplay: table-caption  此元素會(huì)作為一個(gè)表格標(biāo)題顯示(類似 <caption>)

display: inline-block行內(nèi)塊元素的兼容性問(wèn)題忘衍?

給元素設(shè)置display: inline-block屬性逾苫,元素將變成行內(nèi)塊元素,結(jié)合盒子模型理解枚钓,該元素整體內(nèi)聯(lián)元素表現(xiàn)铅搓,但它的內(nèi)容塊狀元素表現(xiàn)。

簡(jiǎn)單來(lái)說(shuō)就是將對(duì)象呈遞為內(nèi)聯(lián)對(duì)象搀捷,但是對(duì)象的內(nèi)容作為塊對(duì)象呈遞星掰。旁邊的內(nèi)聯(lián)對(duì)象會(huì)被呈遞在同一行內(nèi),允許空格嫩舟。

但是這個(gè)屬性目前不是所有的瀏覽器都支持氢烘,只有Opera和Safari支持,F(xiàn)ireFox3和IE8據(jù)說(shuō)將會(huì)支持家厌,F(xiàn)irefox2和IE使用特殊辦法可以實(shí)現(xiàn)這種效果播玖,下面就來(lái)探討一下

在火狐瀏覽器上存在的問(wèn)題

在Firefox2中有-moz-inline-stack和-moz-inline-box實(shí)現(xiàn),但是這兩個(gè)私有屬性在某些情況下都會(huì)有異常饭于,具體如下:
1蜀踏、display:-moz-inline-stack
“當(dāng)它所應(yīng)用的外包裝器(wrapper)的display為inline的時(shí)候维蒙,它所包含的a或button將無(wú)法點(diǎn)擊或無(wú)法選取,需要通過(guò)position:relative還hack掉這個(gè)bug”--烏龍茶
2果覆、display:-moz-inline-box
使用這一屬性后颅痊,text-align就會(huì)出問(wèn)題,必須使用Firefox的私有屬性 -moz-box-align來(lái)解決
所以局待,建議不要使用-moz-inline-box八千,還是使用-moz-inline-stack

在IE瀏覽器上怎么實(shí)現(xiàn)的

在IE(以下IE8除外)下,如果對(duì)內(nèi)聯(lián)元素燎猛,比如a或span元素,使用inline-block屬性是有效的照皆,似乎IE是支持的重绷,其實(shí)是觸發(fā)了IE的layout,從而擁有了inline-block屬性的表癥膜毁。這樣我們就有了一種在IE下實(shí)現(xiàn)display:inline-block效果的兩種方法:

1昭卓、先用display:inline-block屬性觸發(fā)塊元素,然后再定義display:inline瘟滨,讓塊元素呈遞為內(nèi)聯(lián)對(duì)象(原理:這是IE的一個(gè)經(jīng)典bug候醒,如果先定義了display:inline-block,然后再設(shè)置display為inline或block杂瘸,layout不會(huì)消失)倒淫,代碼如下:


div {display:inline-block;}
div {display:inline;}

2、直接讓塊元素設(shè)置為內(nèi)聯(lián)對(duì)象(display:inline)败玉,然后通過(guò)zoom:1觸發(fā)塊元素的layout敌土,代碼如下:
div {display:inline; zoom:1;}

怎么兼容所有瀏覽器?

那么為了能夠讓所有瀏覽器支持display:inline-block运翼,綜合一下返干,最終的實(shí)現(xiàn)代碼如下(參考懌飛:模擬兼容性的 inline-block 屬性):

display:inline-block; /*一方面Firefox3 beta、IE8 beta血淌、Opera矩欠、Safari 支持,另一方面下觸發(fā)IE下inline 元素的 hasLayout*/

display:-moz-inline-stack; /* Firefox 的私有屬性悠夯,需要時(shí)還必須用到position:relative解決上面提到的bug */

zoom:1; /*同樣是IE 下觸發(fā) hasLayout*/
*display:inline; /*一旦IE 下觸發(fā)了 hasLayout癌淮,設(shè)置 block 元素為 inline 會(huì)使 display:inline 效果與 display:inline-block 相似*/

/*擴(kuò)展一下一些其他可能用到的屬性*/
text-indent:-9999px;
*text-indent:0;
font-size:0;
line-height:0; /* 如需隱藏文字,可用這四個(gè)屬性 */
/*另外上面隱藏文字沦补,還可以用更簡(jiǎn)化的方法:line-height:超級(jí)大值;font-size:0; */

overflow:hidden; /* 隱藏溢出的內(nèi)容 */

vertical-align:middle; /* 行內(nèi)垂直居中该默,針對(duì) Opera 比較大的偏離 */

width:?px; /*策彤?為任意非auto值*/
height:栓袖?px; /*匣摘?為任意非auto值*/
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市裹刮,隨后出現(xiàn)的幾起案子音榜,更是在濱河造成了極大的恐慌,老刑警劉巖捧弃,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赠叼,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡违霞,警方通過(guò)查閱死者的電腦和手機(jī)嘴办,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)买鸽,“玉大人涧郊,你說(shuō)我怎么就攤上這事⊙畚澹” “怎么了妆艘?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)看幼。 經(jīng)常有香客問(wèn)我批旺,道長(zhǎng),這世上最難降的妖魔是什么诵姜? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任汽煮,我火速辦了婚禮,結(jié)果婚禮上棚唆,老公的妹妹穿的比我還像新娘逗物。我一直安慰自己,他們只是感情好瑟俭,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布翎卓。 她就那樣靜靜地躺著,像睡著了一般摆寄。 火紅的嫁衣襯著肌膚如雪失暴。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,730評(píng)論 1 289
  • 那天微饥,我揣著相機(jī)與錄音逗扒,去河邊找鬼。 笑死欠橘,一個(gè)胖子當(dāng)著我的面吹牛矩肩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播肃续,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼黍檩,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼叉袍!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起刽酱,我...
    開(kāi)封第一講書(shū)人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤喳逛,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后棵里,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體润文,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年殿怜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了典蝌。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡头谜,死狀恐怖骏掀,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情乔夯,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布款侵,位于F島的核電站末荐,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏新锈。R本人自食惡果不足惜甲脏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望妹笆。 院中可真熱鬧块请,春花似錦、人聲如沸拳缠。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)窟坐。三九已至海渊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間哲鸳,已是汗流浹背臣疑。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留徙菠,地道東北人讯沈。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像婿奔,于是被迫代替她去往敵國(guó)和親缺狠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子问慎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容