常用的几种清除float浮动的方法
生活随笔
收集整理的這篇文章主要介紹了
常用的几种清除float浮动的方法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一、浮動產(chǎn)生原因
簡單地說,浮動是因為使用了float:left或float:right或兩者都有而產(chǎn)生的浮動,導(dǎo)致樣式缺失或者不正確顯示等問題;
二、浮動產(chǎn)生負(fù)作用
1、背景不能顯示
由于浮動產(chǎn)生,如果對父級設(shè)置了(CSS background背景)CSS背景顏色或CSS背景圖片,而父級不能被撐開,所以導(dǎo)致CSS背景不能顯示。
2、邊框不能撐開
如果父級設(shè)置了CSS邊框?qū)傩裕╟ss border),由于子級里使用了float屬性,產(chǎn)生浮動,父級不能被撐開,導(dǎo)致邊框不能隨內(nèi)容而被撐開。
3、margin padding設(shè)置值不能正確顯示
由于浮動導(dǎo)致父級子級之間設(shè)置了css padding、css margin屬性的值不能正確表達(dá)。特別是上下邊的padding和margin不能正確顯示。
三、css解決浮動,清除浮動方法
首先列舉一個小案例:
<style>
.box{margin: 50px auto;border:1px solid #ccc;background: #fc9;color:#fff;}
.red{ 80px;height: 100px;background: red;float:left;}
.sienna{ 80px;height: 100px;background: sienna;float:left;}
.blue{ 80px;height: 100px;background: blue;float:left;}
</style>
<body>
<div class="box">
<div class="red">1</div>
<div class="sienna">2</div>
<div class="blue">3</div>
</div>
</body>
子元素都設(shè)置了float屬性,父元素div高度不能撐開,樣式margin屬性顯示有問題;
方法一:添加新的元素 、應(yīng)用 clear:both;
在浮動的盒子之下再放一個標(biāo)簽,在這個標(biāo)簽中使用clear:both,來清除浮動對頁面的影響.
注意:一般情況下不會使用這一種方式來清除浮動。因為這種清除浮動的方式會增加頁面的標(biāo)簽,造成結(jié)構(gòu)的混亂.
.clear{clear: both;}
<div class="box">
<div class="red">1</div>
<div class="sienna">2</div>
<div class="blue">3</div>
<div class="clear"></div>
</div>
方法二:父級div定義 overflow: auto(注意:是父級div也就是這里的 div.outer)
原理:使用overflow屬性來清除浮動有一點需要注意,overflow屬性共有三個屬性值:hidden,auto,visible。我們可以使用hiddent和auto值來清除浮動,但切記不能使用visible值。
.over-flow{ overflow: auto; zoom: 1;}/*zoom1; 是在處理兼容性問題*/
<body>
<div class="box over-flow">
<div class="red">1</div>
<div class="sienna">2</div>
<div class="blue">3</div>
</div>
</body>
方法三: 使用偽元素來清除浮動(:after,注意:作用于浮動元素的父親)
主要推薦使用這種方法清除浮動
.clearfix:after{
content:"";/*設(shè)置內(nèi)容為空*/
height:0;/*高度為0*/
line-height:0;/*行高為0*/
display:block;/*將文本轉(zhuǎn)為塊級元素*/
visibility:hidden;/*將元素隱藏*/
clear:both;/*清除浮動*/
}
.clearfix{
zoom:1;/*為了兼容IE*/
}
<body>
<div class="box clearfix">
<div class="red">1</div>
<div class="sienna">2</div>
<div class="blue">3</div>
</div>
</body>
方法四:使用雙偽元素清除浮動
.clearfix:before,.clearfix:after {
content: "";
display: block;
clear: both;
}
.clearfix {
zoom: 1;
}
總結(jié)
以上是生活随笔為你收集整理的常用的几种清除float浮动的方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: axios中POST请求变成OPTION
- 下一篇: 如何进行SAP S4CRM和C4C的技术