页面布局的一些总结

简单的举例

三个div 左右固定宽度中间宽度自适应 假设高度已知  说出尽可能多的方法  

说的越多在一定程度上说明你对css掌握的越好

布局的五个方法 

所有的div min-height:100px

1 float 布局

  左  float:left   右 float:right    中 不做任何处理 (float 浮动脱离文档流  div 是块元素 有高度的话宽度自动填满(宽度有最大值的情况下))

 而左右有浮动元素 (遮挡物  所以中间元素的内容 从中间的开始部分显示 float的一些特性)

2 绝对定位

   左  position:absolute

   右  position :absolute

   中  position:absolute

         left:300px;

         right:300px

       这两个一定要写否则脱离文档流 div没有最大宽度限制 是不是自动填充满的

3 flex布局 

   这个很简单 

 父级 display:flex

 左300  右 300  中间flex:1 即可 这样 这个元素会自动填充满剩余的空间

4 table 布局

 父级 要先使用table布局  子元素改为单元格即可

     .a {
        width: 100%;
        display: table;
      }
      .a > div {
        height: 200px;
        display: table-cell;
        box-shadow: 1px 1px #ccc;
      }
      .b,.c {
        width: 300px;
      }

  5 网格grid布局

一样的 父级设置为网格布局 然后设置行高  列的宽度

  .a {
        width: 100%;
        display: grid;
        grid-template-rows: 100px;
        grid-template-columns: 300px auto 300px;
      }
      .a>div{
        box-shadow:1px 1px aqua ;
      }

总结 优缺点

float 和position 布局都会脱离文档流 类似于 都需要 解决清除浮动的影响

优点是float 的兼容性非常好 基本是支持所有的浏览器

flex 和table布局不会有这样的问题  但是flex布局不支持ie8以下的版本

同时 table的优点也是缺点 就是单元格的高度会保持一致

所有 如果高度不确定的时候 两侧高度会随中间高度变化的布局(不做其他改变的话  是flex布局和table布局)

盒子模型  分为标准模型和IE模型

IE模型其实就是box-sizing:border-box   默认是标准模型

涉及到盒子就经常有BFC的问题

BFC  

块级格式化上下文  用来解决边距重叠的问题 比如布局中  左元素float 右元素与左元素有重叠且高于左元素

                                                                       比如 兄弟元素 一个上一个下边距(则只会有一个最大的值作为编剧)

BFC的原理或者说规则

1  BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。反之也如此。所以可以解决上下边距重叠的问题  给一个元素加一个父级设计为BFC即可(就不会和外面的margin有冲突了)

2 BFC的区域不会与float box重叠。  解决上面说的布局 即使左边元素是浮动也不会重叠 

3计算BFC的高度时,浮动元素也参与计算。 常用的场景 自动撑开父级高度 而子元素是浮动的

4在同一个BFC 内还是会有重叠问题的

同时也学到了一个新的布局方式 两个元素并列  可以一个浮动一个正常即可 且自动填充满整行了

触发bfc

float不为none
position不为relative和static(position的值为absolute或者fixed)
overflow为auto、scroll和hidden(overflow的值不为visible)
display的值为inline-block、inline-flex、flex、flow-root、table-caption、table-cell。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值