①、塊狀元素: 如div -------- display:block
②、內聯元素: 如span ------ display:inline
③、內聯塊元素:如input ---- display:inline-block
在標準流中,三種類型的元素呈現的方式不一樣
*display:block
元素會獨佔一行,多個block元素會各自新起一行
*inline 和 inline-block
元素不會獨佔一行,多個相鄰的行內元素會排列在同一行裏,直到一行排列不下,纔會新換一行 css
若是想block元素像inline元素那些不會自動換行,能夠用css的float屬性(浮動)
left --------- 元素向左浮動。
right ------- 元素向右浮動。
none ------ 默認值。元素不浮動,並會顯示在其在文本中出現的位置。
inherit ---- 規定應該從父元素繼承 float 屬性的值。html
雖然浮動很方便,可是也帶來了必定的負面影響spa
咱們先來看一下正常的浮動效果code
<div class="parent"> <div class="child child1"></div> <div class="child child2"></div> </div>
.parent{ width: 300px; border: 3px solid black; background-color: yellow; } .child{ width: 50px; height: 50px; } .child1{ background-color: red; float: left; } .child2{ background-color: blue; float: right; }
正常的效果如上圖所示:
咱們能夠看到父元素原本是設置的屬性htm
background-color: yellow border: 3px solid black
都沒有顯示出來,就是由於浮動形成的高度坍塌!繼承
解決後的效果圖
圖片
.parent{ height: 50px; }
.parent{ overflow: hidden; }
.parent{ overflow: auto; }
.parent{ display: table; }
<div class="parent"> <div class="child child1"></div> <div class="child child2"></div> <div style="clear:both;"></div> </div>
.parent:after{ content:""; display:block; clear:both; }
在實際開發中推薦使用第六種開發