首頁  >  文章  >  web前端  >  清除浮動的css寫法有哪些

清除浮動的css寫法有哪些

步履不停
步履不停原創
2019-06-13 11:34:486819瀏覽

清除浮動的css寫法有哪些

本文透過圖文並茂的形式向大家介紹了CSS浮動與清除浮動的實例代碼,非常不錯,具有一定的參考借鑒價值,,需要的朋友可以參考下

 一、float(浮動)是什麼

float 屬性定義元素在哪個方向浮動。

float:left 元素向左浮動。

float:right 元素向右浮動。

float:none 預設值。元素不浮動,並會顯示在文字中出現的位置。

float:inherit 規定應該從父元素繼承 float 屬性的值。

看一段簡單的程式碼:
 

<div class="child1">左浮动</div>
<div class="child2">右浮动</div>
<div class="child3">喵</div>
  .child1 {
    float: left;
    height: 500px;
    width: 70%;
    background: #aa0;//黄
  }
  .child2 {
    float: right;
    height: 300px;
    width: 30%;
    background: #0aa;//青
  }
  .child3 {
    background: #a0a;//紫
  }

清除浮動的css寫法有哪些

#二、clear是什麼

clear 屬性指定段落的左側或右側不允許浮動的元素。

clear:left 在左側不允許浮動元素。

clear:right 在右邊不允許浮動元素。

clear:both 在左右兩側均不允許浮動元素。

clear:none 預設值。允許浮動元素出現在兩側。

clear:inherit 規定應該從父元素繼承 clear 屬性的值。

例如上面的例子,我們為 child3 加上 clear: both; ,便可清除浮動。 (child3的左右兩側都不允許浮動元素,自然而然不會再跟在倆浮動元素的屁股後面了~)

清除浮動的css寫法有哪些

那麼,只在一側不允許浮動是怎樣的呢?

原本是醬紫的:
 

那么,只在一侧不允许浮动是怎样的呢?
本来是酱紫的:
 
<div class="child1">child1右浮动</div>
<div class="child2">child2右浮动</div>
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈...

  .child1 {
    float: right;
    background: #aa0;//黄
  }
  .child2 {
    float: right;
    background: #0aa;//青
  }

清除浮動的css寫法有哪些

然後,為child2 加上clear: right; ,在child2的右邊不允許浮動元素,所以child2就飄到了下一行。

清除浮動的css寫法有哪些

那麼,為 child1 加上 clear: left; 的時候,為什麼不起效果呢?在這留個小彩蛋,歡迎大家留言討論~

三、浮動帶來的影響

浮動帶來的最大影響就是,當父元素只包含浮動的子元素的時候,父元素的高度就會塌陷( height 變成0 )。

像酱紫:(parent高度为0,无法显示粉色背景)
<div class="parent">
    <div class="child1">child1右浮动</div>
    <div class="child2">child2右浮动</div>
</div>
  .parent {
    background: #FBC;//粉
  }

清除浮動的css寫法有哪些

四、清除浮動的方式
 

1. 在父元素中的結尾加上一個空div 
 

div

<div class="parent">
  <div class="child1">child1右浮动</div>
  <div class="child2">child2右浮动</div>
  <div style="clear: both;"></div>
</div>

  .child1 {
    float: right;
    background: #aa0;
  }
  .child2 {
    float: right;
    background: #0aa;
  }

清除浮動的css寫法有哪些

可見,空div 高度為0,位於父盒子的最下面,使父盒子重新撐起了應有的高度。

為什麼最後要加?倘若你在中間加,效果會是醬紫:

清除浮動的css寫法有哪些

由於空div 的左右都不允許浮動元素,那麼它就會另起一段,導致盒子位置的效果就像child2 清除右側浮動一樣, child2 跑到了child1 下方。

2. 在父元素設定overflow 屬性 
 

#• 原則:設定overflow:hidden 或overflow:auto ,瀏覽器會自動檢查浮動區域高度(才能知道父框的內容有無溢位) 
• 優點:瀏覽器支援好
• 缺點:子元素若超出父親元素尺寸會被隱藏,或父親元素出現捲軸

<div class="parent" style="overflow:hidden;">
  <div class="child1">child1右浮动</div>
  <div class="child2" style="position:relative;top:10px;">child2右浮动</div>
</div>

清除浮動的css寫法有哪些

 當設定overflow:auto; 時,父元素會出現捲軸: 

清除浮動的css寫法有哪些

3.偽元素
 

##• 原理:類似設定clear屬性

• 優點:瀏覽器支援好,普遍

<div class="parent clearfix">
  <div class="child1">child1右浮动</div>
  <div class="child2">child2右浮动</div>
</div>
  .clearfix{
    zoom: 1;    //zoom(IE专有属性)可解决ie6,ie7浮动问题
    display: block;
  }
  .clearfix:after {
    content: ".";    //content: "";也可
    visibility: hidden;
    display: block;
    height: 0;
    clear: both;
  }

更多CSS问题的相关技术文章,请访问CSS问题教程栏目进行学习!

以上是清除浮動的css寫法有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn