zoukankan      html  css  js  c++  java
  • css的float,浮动

    之前页面布局经常使用的是float+position,但是有个问题就是,给元素设置float会脱离文档流,就相当于是在页面中不再占有位置,只是飘在该位置上面。

    原理与position类似。

    页面效果:

    期望效果:

    实现代码:

    1.html:

    <div class="contrainer">
      <div class="div1">
        <div class="left">Left</div>
        <div class="right">Right</div>
      </div>
      <div class="div2">
        div2
      </div>
    </div>
    

    2.css:

    .contrainer{
      .div1{
        background:#000080;
        border:1px solid #ff0000;
        // height:200px;
      }
      .div2{
        background:#800080;
        border:1px solid red;
        height:100px;
        margin-top:10px
      }
      .left{
        float:left;
        20%;
        height:200px;
        background:#DDD
      }
      .right{
        float:right;
        30%;
        height:80px;
        background:#DDD
      }
    }
    

    正常页面应该是下面这个样子,

    原因:

    想要div1和div2垂直显示,div1下的两个div是并列显示的,因此设置了浮动,但是设置之后由于脱离了文档流,div2直接跳到上面了,div1及div1下的两个div撑不起来。

    所以需要对其他元素设置清除浮动,取消设置的浮动所对其他元素带来的影响。

    清除浮动原理:

    就是需要实现虽然元素设置了浮动,但是还是需要占有自己的位置,不能脱离文档流。

    清除浮动有哪些方式?比较好的方式是哪一种?

    (1)父级div定义height
    (2)结尾处加空div标签clear:both
    (3)父级div定义伪类:afterzoom
    (4)父级div定义overflow:hidden
    (5)父级div定义overflow:auto
    (6)父级div也浮动,需要定义宽度。
    (7)父级div定义display:table
    (8)结尾处加br标签clear:both
    (Q2) 比较好的是第3种方式,好多网站都这么用。

  • 相关阅读:
    filter()函数
    递归算法
    日志模块nb_log
    sys.argv[]简单阐述
    DB2中字符、数字和日期类型之间的转换
    Java 连接 Hive的样例程序及解析
    对hadoop namenode -format执行过程的探究
    想要成为牛人、大佬,那请至少拥有这12项技能!
    形象决定你的收入,别问为什么!
    年轻人,能用钱解决的,绝不要花时间(转)
  • 原文地址:https://www.cnblogs.com/5201314m/p/13026619.html
Copyright © 2011-2022 走看看