三栏布局

作者: 老虎爱吃母鸡 | 来源:发表于2016-08-03 01:12 被阅读0次
  • 负边距在让元素产生偏移时和position: relative有什么区别?
    • 负边距让元素产生偏移会影响后面的元素,因为它不占有原来的位置


      原本的位置
.div:nth-child(2) {
    margin-top: -30px;
    margin-left: -20px;
}
margin-left
很明显看出当第二个div移动的时候,后面的元素跟随着一起移动,说明它不占有原来的位置
- position: relative;还占有原来的位置,相对原来的位置定位
.div:nth-child(2) {
    position: relative:
    top: 30px;
    left: 50px;
}
position: relative;
  • 使用负 margin 形成三栏布局有什么条件?
    假设三栏布局中的中间一栏为main,左边栏为left,右边栏为right
    1. 在html结构中,必须main在前面
    <div class="contain">
        <div class="main"></div>
        <div class="left"></div>
        <div class="right"></div>
    </div>
    
    1. 三栏布局中的三个块必须先浮动,因为div的默认是垂直一个接一个放置的,必须让left和right跟随在main的后面
    2. 中间块必须width: 100%;因为:
      1. float之后div的宽度是内容宽度
      2. 因为三栏布局中的中间一栏需要自适应
      3. 必须把left和right顶到下一行
    3. left的margin-left: -100%;,right的margin-left的值为本身宽度的负数
  • 圣杯布局的原理是怎样的? 简述实现圣杯布局的步骤
    圣杯布局的目的是使中间栏的内容得以先渲染,原理是利用浮动加负margin来实现三栏布局,然后在#contain上加padding,再把两个边栏用相对定位移到正确的位置
    1. 先写好html的结构,注意中间栏要在两个边栏的前面
    <div id="header"></div>
    <div id="contain">
        <div class="main"></div>
        <div class="sub"></div>
        <div class="extra"></div>
    </div>
    <div id="footer"></div>
    
    1. 设置main的宽度100%,三个div左浮动
    #contain>div {
        height: 300px;
        float: left;
    }
    
    .main {
        width: 100%;
        background-color: #e65454;
    }
    
    .sub,.extra {
        width: 200px;
    }
    
2016-08-03_005106.png
3. 把两个边栏移动到正确的位置
```
.sub {
    background-color: #03A9F4;
    margin-left: -100%;
}

.extra {
    background-color: #4CAF50;
    margin-left: -200px;
}
```
2016-08-03_005929.png
4. 让内容能正确显示不被两个边栏覆盖
```
#contain {
    overflow: hidden;
    padding: 0 200px;
}
.sub {
    background-color: #03A9F4;
    margin-left: -100%;
    position: relative;
    left: -200px;
}

.extra {
    background-color: #4CAF50;
    margin-left: -200px;
    position: relative;
    left: 200px;
}
```
2016-08-03_005902.png
  • 双飞翼布局的原理? 实现步骤?
    双飞翼布局的目的是使中间栏的内容得以先渲染,原理是利用浮动加负margin来实现三栏布局,相比圣杯布局,双飞翼布局的区别在于最后正确显示内容的方式
    • 写html结构,注意双飞翼布局在main下还有一个显示内容的div
    <div id="header"></div>
    <div id="contain">
        <div class="main">
            <div class="content"></div>
        </div>
        <div class="sub"></div>
        <div class="extra"></div>
    </div>
    <div id="footer"></div>
    
    • 和圣杯布局一样利用浮动+负外边距得到三栏布局


      2016-08-03_005623.png
    • 让内容能正确显示不被两个边栏覆盖,这里是圣杯布局和双飞翼布局的区别,双飞翼布局不适用main来显示内容,而是在main下新建一个div,设置属性margin-left和margin-right来达到正确显示内容的目的
    .content {
        margin-left: 200px;
        margin-right: 200px;
    }
    
2016-08-03_010935.png

相关文章

  • css经典布局总结

    布局类型 浮动布局 流式布局 定位布局 flex布局 grid布局 布局详解 1.浮动布局。 浮动布局是利用flo...

  • 布局小结

    布局方式 静态布局 浮动布局 定位布局 自适应布局 流式布局(百分比布局) 响应式布局 弹性布局 悬挂布局 圣杯布...

  • 常用的五大布局

    常用的五大布局(线性布局,相对布局,帧布局,表格布局,绝对布局) 1,线性布局 LinearLayout ...

  • 实现三栏布局的六种方式

    六种布局方式总结:圣杯布局、双飞翼布局、Flex布局、绝对定位布局、表格布局、网格布局。 圣杯布局 圣杯布局是指布...

  • CSS3开发常用核心技能

    基础网页布局 布局分类 一列布局 两列布局 三列布局 多列布局 一列布局: 二列布局: 三列布局: ⚠️ midd...

  • 移动端页面布局

    七大布局:流线布局、等比缩放拓展布局、分栏布局、流动布局、重复布局、固定布局1.流线布局流线布局指在界面中的内容元...

  • 前端网站5种布局

    前端基本布局分大致5种,table布局,float 布局,absolute布局,flexbox布局,grid布局。...

  • 2019-08-25

    布局 说法一 浮动布局 绝对定位布局 Flex布局 Table-cell表格布局 网格布局 说法二 静态布局 流式...

  • flex布局的几种典型布局方式

    flex布局的典型布局方式有哪些? 网格布局 固定底栏布局 圣杯布局 输入框布局 悬挂布局 网格布局 最简单的网格...

  • css3设计模式,常用布局

    1.css3常用的布局有多栏布局、多列布局、弹性布局、流式布局、瀑布流布局和响应式布局。2.float浮动布局,a...

网友评论

    本文标题:三栏布局

    本文链接:https://www.haomeiwen.com/subject/qcrqsttx.html