CSS display:inline和float:left兩者區別
本文和大家重點討論一下CSS display:inline和float:left兩者的區別,CSS display是指顯示狀態,inline表示內聯,特點是緊貼著前一個內聯元素,通常默認的內聯元素有span,a,em,strong等。而float表示的是浮動,float:left,是針對塊級元素的浮動形式,是不同形式的兩種狀態。
CSS display:inline和float:left兩者的區別
CSS display是指顯示狀態,inline表示內聯,特點是緊貼著前一個內聯元素,通常默認的內聯元素有span,a,em,strong等。而float表示的是浮動,float:left,是針對塊級元素的浮動形式,是不同形式的兩種狀態。
首先我們要明確,CSS display:inline;與float:left;正確含義。CSS display:inline;(內聯)《CSS權威指南》中文字顯示:任何不是塊級元素的可見元素都是內聯元素。其表現的特性是“行布局”形式,這里的“行布局”的意思就是說其表現形式始終以行進行顯示。比如,我們設定一個內聯元素border-bottom:1pxsolid#000;時其表現是以每行進行重復,每一行下方都會有一條黑色的細線。如果是塊級元素那么所顯示的的黑線只會在塊的下方出現。
當然這看起來不像是CSS display:inline;與float:left;的區別所在,但是當理解了float:left;的特性那么我們就清楚到底是怎么回事了。float:left;(左浮動)他使得指定元素脫離普通的文檔流而產生的特別的布局特性。并且FLOAT必需應用在塊級元素之上,也就是說浮動并不應用于內聯標簽。或者換句話來說當應用了FLOAT那么這個元素將被指定為塊級元素。
那么我們很清楚了,內聯(CSS display:inline;)元素不能設置寬高,因為內聯屬于行布局,其特性是在一行里進行布局,所以不能被設定寬高。
運行代碼:
- <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為內聯/inline元素,給他寬度賦值是沒有效果的。</span>
- <spanstylespanstyle="width:100px;float:right;">span為內聯/inline元素,
- 給他寬度賦值100px+float:right;可以看到有了寬度。</span>
- <div>
- <p>這個li被定義為內聯/inline,設置寬度沒有效果</p>
- <ulidulid="inline">
- <li>test</li>
- <li>test</li>
- </ul>
- </div>
- <div>
- <p>這個li被定義為內聯/inline+float:left,設置寬度有效果</p>
- <ulidulid="float">
- <li>test</li>
- <li>test</li>
- </ul>
- </div>
- </body>
- </html>
【編輯推薦】
- CSS display屬性基本特性和語法
- 探究CSS hack使用原理 規則及弊端
- CSS display屬性定義和用法
- CSS屬性display:inline-block使用揭秘
- CSS hack:實現IE6、IE7、Firefox兼容