国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > CSS > 正文

CSS3 清除浮動的方法示例

2024-07-11 08:59:13
字體:
來源:轉載
供稿:網友

一、 目的

通過本文,讓大家可以明白清除浮動的原理和幾種方法,最后得出一種本文認為最好用的方法。

二、 內容簡介

1、 引入,還原浮動本來的意義
2、 說明,實際開發中常用浮動來做什么
3、 提問,為什么要清除浮動
4、 回答,如何清除浮動以及常用的幾種方法
5、 結論,得出本文認為最好用的方法

三、 正文

1、 浮動本來的意義

浮動的意義原本僅是用來讓文字環繞在圖片周圍而已。

通過上圖可以看到,設置圖片左浮動可以將圖片從正常文檔流中抽取出來,后面的元素會忽略浮動元素原來的位置,所以可以看到以塊元素顯示的span標簽插入到了圖片下面,但是,我們發現文字卻不會嵌入到圖片下面,因為這就是浮動最純粹的意義--讓文字環繞在圖片周圍(關于為什么文字不會插入浮動元素下面在網上也有一些討論,大家可以去搜索一下,本文在此就不做更詳細的解釋了)。

PS: 如果想讓文字也插入到浮動元素下面,可以通過設置絕對定位來實現。

// html代碼  <section>    <div class="origin1">      ![img](http://upload-images.jianshu.io/upload_images/2944582-8c9f0eba7dce2e55.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)      <span>想象我是一大段文字</span>    </div>    <div class="float1">      ![img](http://upload-images.jianshu.io/upload_images/2944582-8c9f0eba7dce2e55.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)      <span>想象我是一大段文字</span>          </div>  </section>
// css代碼.origin1 span {  display: block;  width: 250px;  height: 120px;  background-color: #78f182;  }.float1 img{  float: left;}.float1 span {  display: block;  width: 250px;  height: 120px;  background-color: #78f182;}

2、 浮動經常被用來做什么

因為浮動可以讓塊狀元素并排顯示,所以經常用來做導航欄,內容分塊欄等布局。

// html代碼  <section class="section2">    <ul>      <li><a href="#">產品中心</a></li>      <li><a href="#">服務中心</a></li>      <li><a href="#">新聞中心</a></li>      <li><a href="#">客戶見證</a></li>      <li><a href="#">招賢納士</a></li>    </ul>  </section>
// css代碼.section2 li{  list-style: none;  float: left;  padding: 20px;  height: 20px;  background-color: #1249c3;  border-right: 1px solid #a0a2a2;}.section2 li a {  color: #fff;}

3、 為什么要清除浮動

通過上圖可以看到,當三個板塊左浮動以后,因為它們脫離了正常文檔流,所以它們的父元素ul在不設置高度的情況下,無法被子元素撐開(能夠看到背景色是因為我設置了ul的padding為10px),所以當你在后邊新增元素的時候,自然會排在ul后邊,也就是插入到了3個浮動的板塊下面。
這并不是我們想要的,這就是要清除浮動的原因。

// html代碼    <ul>      <li><p>互動板塊 li</p></li>      <li><p>學習板塊 li</p></li>      <li><p>留言板塊 li</p></li>      我是本應該包裹在3個板塊外面的父元素ul    </ul>    <div class="new">我是跟在ul后面的新div</div>
// css代碼ul {  padding: 20px;  background-color: #b7db05;}ul li {  width: 200px;  height: 200px;  background-color: #e3e3e3;  margin-right: 20px;  text-align: center;  float: left;}.new {  height: 50px;  background-color: #1be751;}

4、 如何清除浮動

(1) 在最后一個浮動的 li 元素后邊新增一個空的塊狀元素div,并設置clear:both以清除所有浮動。

// html代碼    <ul>      <li><p>互動板塊 li</p></li>      <li><p>學習板塊 li</p></li>      <li><p>留言板塊 li</p></li>      我是本應該包裹在3個板塊外面的父元素ul      <div style="clear:both;"></div>        // 新增代碼    </ul>    <div class="new">我是跟在ul后面的新div</div>

效果: ul后邊的div元素確實可以在浮動元素下邊排列,并且設置margin、padding等也是針對浮動元素的下邊框。

缺點: 多出了一個冗余標簽,并沒有任何結構意義。

(2) 設置父元素ul的overflow: hidden或者overflow: auto。

// css代碼ul {  padding: 20px;  background-color: #e7a5b8;  overflow: hidden;}

效果: 對于ul后面的元素來說,它們可以在浮動元素下邊依次排列了。
缺點: 采用這種overflow方法時可能會對采用定位position的元素產生影響,因為在ul的范圍內,超出的部分將會被隱藏,所以如果定位元素處在ul超出的范圍內,那么會被隱藏。

(3) 采用偽類方法,在最后一個浮動元素的后邊,添加clear:both。

// css代碼ul:after {  content: "";  clear: both;  display: block;}

效果: 很好的清除了浮動帶來的影響,并且沒有附加作用,也沒有新增無語義的標簽。
缺點: 暫時還沒發現。

四、 結論

綜上所述,本文認為最好用的方法是采用after偽類來清除浮動帶來的影響,歡迎大家前來討論。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 建阳市| 兰坪| 石棉县| 宿松县| 莆田市| 安宁市| 海丰县| 黑河市| 浪卡子县| 奇台县| 元江| 昌邑市| 吉安县| 青浦区| 衡水市| 麦盖提县| 大邑县| 佛山市| 祥云县| 湘潭市| 康马县| 保山市| 遂川县| 井陉县| 石狮市| 龙海市| 金阳县| 克山县| 渝中区| 安泽县| 临洮县| 宣恩县| 金溪县| 汉中市| 博乐市| 汉中市| 东兴市| 永康市| 应城市| 邵东县| 北海市|