BFC原理、创建和使用场景

<!--  js如何获取盒模型对应的宽高
      dom.style.width/height //内嵌样式
      dom.currentStyle.width/height //只支持IE
      window.getComputedStyle(dom).width/height //兼容性好
      dom.getBoundingClientRect().width/height //元素的大小及其相对于视口的位置 -->


     <!-- BFC 概念块级格式上下文  
          BFC 原理 同一个bfc下外边距方向会发生重叠
                   bfc是一个独立的容器,外面的元素不会影响里面元素
                   bfc可以包含浮动元素(清除浮动)
                   bfc可以阻止元素被浮动元素覆盖
                   bfc计算高度市,浮动元素也会参与计算
          BFC 创建 float的值不为none
                   overflow值不为visible
                   position值不为static/relative
                   display的值为table-cell,table-caption,or inline-block中的任何一个
          BFC 使用场景

     -->
      <section class="box" id="sec">
        <style media="screen">
          #sec{
            background: #f00;
          }
          .child{
            height: 100px;
            margin-top: 10px;
            background: yellow
          }
        </style>
        <article class="child"></article>
      </section>

      <!-- BFC垂直方向边距重叠 -->

      <section id="margin">
        <style>
          #margin{
            background: pink;
            overflow: hidden;
          }
          #margin>p{
            margin: 5px auto 25px;
            background: red;
          }
        </style>
        <p>1</p>
        <div style="overflow:hidden">
          <p>2</p>
        </div>
        <p>3</p>
      </section>

      <!-- BFC不与float重叠 -->
      <section id="layout">
        <style media="screen">
          #layout{
            background: red;
          }
          #layout .left{
            float: left;
            width: 100px;
            height: 100px;
            background: pink;
          }
          #layout .right{
            height: 110px;
            background: #ccc;
            overflow: auto;
          }
        </style>
        <div class="left"></div>
        <div class="right"></div>
      </section>

      <!-- BFC子元素即使是float也会参与计算 -->
      <section id="float">
        <style media="screen">
          #float{
            background: red;
            overflow: auto;
            /*float: left;*/
          }
          #float .float{
            float: left;
            font-size: 30px;
          }
        </style>
        <div class="float">我是浮动元素</div>
      </section>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值