• 清除浮动的原理和方法


    问题的由来:

    在CSS规范中,浮动定位是脱离元素正常流的。所以,只要含有浮动元素的父容器,在显示时不考虑子元素的位置,就当它们不存在一样。这就造成了显示出来,父容器好像空容器一样。

    比如下面代码:

    1 <div class="box">
    2     <div style="float:left;100px;height:100px;"></div>
    3     <div style="float:right;100px;height:100px"></div>
    4 </div>

    在浏览器中一运行,实际视图是子元素显示在父容器的外部。


    解决方法一:添加空元素

    在浮动元素下面添加一个非浮动的元素

    代码如下:

     1 <div class="box">
     2   <div style="float:left;100px;height:100px;"></div>
     3   <div style="float:right;100px;height:100px;"></div>
     4   <div class="clearfix"></div>
     5 </div>
     6 
     7 <style>
     8 .clearfix{
     9     clear:both;
    10 }
    11 </style>

    解决方法二:浮动的父容器

    将父容器也改成浮动定位,这样它就可以带着子元素一起浮动了

    代码如下:

     1 <div class="box">
     2     <div style="float:left;100px;height:100px;"></div>
     3     <div style="float:right;100px;height:100px;"></div>
     4 </div>
     5 
     6 <style>
     7 .box{
     8     float:left;
     9 }
    10 </style>

    解决方法三:浮动元素的自动clearing

    让父容器变得可以自动"清理"(clearing)子元素的浮动,从而能够识别出浮动子元素的位置,不会出现显示上的差错。

    代码如下:

     1 <div class="box">
     2   <div style="float:left;100px;height:100px;"></div>
     3   <div style="float:right;100px;height:100px;"></div>
     4 </div>
     5 
     6 <style>
     7 .box{
     8     overflow:hidden;
     9 }
    10 </style>

    解决方法四:通过CSS语句添加子元素,这样就不用修改HTML代码

    就是用after伪元素的方法在容器尾部自动创建一个元素的方法

    代码如下:

     1 <div class="box">
     2   <div style="float:left;100px;height:100px;"></div>
     3   <div style="float:right;100px;height:100px;"></div>
     4 </div>
     5 
     6 <style>
     7 .box:after {
     8     content: "020";
     9     display: block;
    10     height: 0;
    11     clear: both;
    12     zoom:1;
    13 }
    14 </style>
  • 相关阅读:
    英语词汇——day 1
    英语词汇——day 2
    PHP的流程控制语句(上)
    思维导图——四级词汇1
    PHP语句块中使用date()函数时需注意wampserver的设置
    (转)Linux服务器调优
    (转)linux服务器安全配置攻略
    mysql 创建[序列],功能类似于oracle的序列
    计算服务器最大并发量http协议请求以webSphere服务器为例考虑线程池
    Spring中ApplicationContextAware接口的说明
  • 原文地址:https://www.cnblogs.com/zywaf/p/7251692.html
Copyright © 2020-2023  润新知