CSS display:inline和float:left兩者區(qū)別
本文和大家重點(diǎn)討論一下CSS display:inline和float:left兩者的區(qū)別,CSS display是指顯示狀態(tài),inline表示內(nèi)聯(lián),特點(diǎn)是緊貼著前一個(gè)內(nèi)聯(lián)元素,通常默認(rèn)的內(nèi)聯(lián)元素有span,a,em,strong等。而float表示的是浮動(dòng),float:left,是針對(duì)塊級(jí)元素的浮動(dòng)形式,是不同形式的兩種狀態(tài)。
CSS display:inline和float:left兩者的區(qū)別
CSS display是指顯示狀態(tài),inline表示內(nèi)聯(lián),特點(diǎn)是緊貼著前一個(gè)內(nèi)聯(lián)元素,通常默認(rèn)的內(nèi)聯(lián)元素有span,a,em,strong等。而float表示的是浮動(dòng),float:left,是針對(duì)塊級(jí)元素的浮動(dòng)形式,是不同形式的兩種狀態(tài)。
首先我們要明確,CSS display:inline;與float:left;正確含義。CSS display:inline;(內(nèi)聯(lián))《CSS權(quán)威指南》中文字顯示:任何不是塊級(jí)元素的可見元素都是內(nèi)聯(lián)元素。其表現(xiàn)的特性是“行布局”形式,這里的“行布局”的意思就是說其表現(xiàn)形式始終以行進(jìn)行顯示。比如,我們?cè)O(shè)定一個(gè)內(nèi)聯(lián)元素border-bottom:1pxsolid#000;時(shí)其表現(xiàn)是以每行進(jìn)行重復(fù),每一行下方都會(huì)有一條黑色的細(xì)線。如果是塊級(jí)元素那么所顯示的的黑線只會(huì)在塊的下方出現(xiàn)。
當(dāng)然這看起來不像是CSS display:inline;與float:left;的區(qū)別所在,但是當(dāng)理解了float:left;的特性那么我們就清楚到底是怎么回事了。float:left;(左浮動(dòng))他使得指定元素脫離普通的文檔流而產(chǎn)生的特別的布局特性。并且FLOAT必需應(yīng)用在塊級(jí)元素之上,也就是說浮動(dòng)并不應(yīng)用于內(nèi)聯(lián)標(biāo)簽?;蛘邠Q句話來說當(dāng)應(yīng)用了FLOAT那么這個(gè)元素將被指定為塊級(jí)元素。
那么我們很清楚了,內(nèi)聯(lián)(CSS display:inline;)元素不能設(shè)置寬高,因?yàn)閮?nèi)聯(lián)屬于行布局,其特性是在一行里進(jìn)行布局,所以不能被設(shè)定寬高。
運(yùn)行代碼:
- <html>
- <head>
- <metahttp-equivmetahttp-equiv="Content-Type"
- content="text/html;charset=gb2312"/>
- <title>float&inline</title>
- <style>
- *{text-align:center;padding:4px;}
- div,p{text-align:left;}
- span{background:#f5f5f5;border-left:1px#eeesolid;
- border-top:1px#eeesolid;border-right:1px#cccsolid;
- border-bottom:1px#cccsolid;}
- ul#inlineli{display:inline;list-style:none;
- border-left:1px#cccsolid;width:300px;background:#f5f5f5;;}
- ul#floatli{float:left;display:inline;list-style:none;
- border-left:1px#666solid;width:300px;background:#f5f5f5;}
- </style>
- </head>
- <body>
- <spanstylespanstyle="width:300px;">
- span為內(nèi)聯(lián)/inline元素,給他寬度賦值是沒有效果的。</span>
- <spanstylespanstyle="width:100px;float:right;">span為內(nèi)聯(lián)/inline元素,
- 給他寬度賦值100px+float:right;可以看到有了寬度。</span>
- <div>
- <p>這個(gè)li被定義為內(nèi)聯(lián)/inline,設(shè)置寬度沒有效果</p>
- <ulidulid="inline">
- <li>test</li>
- <li>test</li>
- </ul>
- </div>
- <div>
- <p>這個(gè)li被定義為內(nèi)聯(lián)/inline+float:left,設(shè)置寬度有效果</p>
- <ulidulid="float">
- <li>test</li>
- <li>test</li>
- </ul>
- </div>
- </body>
- </html>
【編輯推薦】
- CSS display屬性基本特性和語法
- 探究CSS hack使用原理 規(guī)則及弊端
- CSS display屬性定義和用法
- CSS屬性display:inline-block使用揭秘
- CSS hack:實(shí)現(xiàn)IE6、IE7、Firefox兼容