美文网首页
圣杯布局和淘宝双飞翼布局

圣杯布局和淘宝双飞翼布局

作者: 技术体验师_萦回 | 来源:发表于2018-09-11 15:40 被阅读28次

圣杯布局和淘宝双飞翼布局的目的都是实现:左右两栏固定宽度,中间部分自适应。
差别:解决遮盖的方式有区别。
废话不多说直接开始撸demo。

圣杯布局

原理:

  • 浮动
  • 盒子模型
  • 相对定位

代码:

<!DOCTYPE html>
<html lang="en">

<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <title>Document</title>
 <style>
   * {
     margin: 0;
     padding: 0;
   }

   .box {
     padding: 0 200px 0 200px;
     overflow: hidden;
   }

   .middle,
   .left,
   .right {
     float: left;
     min-height: 400px;
   }

   .middle {
     width: 100%;
     background: red;
   }

   .left,
   .right {
     width: 200px;
   }

   .left {
     background: yellow;
     margin-left: -100%;
     position: relative;
     left:-200px
   }

   .right {
     background: blue;
     margin-left: -200px;
     position: relative;
     right:-200px
   }
 </style>
</head>

<body>
 <div class='box'>
   <div class="middle">
     <h4>我是middle</h4>
     <p>我是内容部分我是内容部分我是内容部分我是内容部分我是内容部分我是内容部分我是内容部分我是内容部分</p>
   </div>
   <div class="left">
     <h4>我是left</h4>
     <p>我是left的内容</p>
   </div>
   <div class="right">
     <h4>我是right的内容</h4>
     <p>我是right的内容</p>
   </div>
 </div>
</body>
</html>

解释一下:其中我们主要关注样式
我们把实现步骤分为三步:

  1. 使middle,left,right三个元素浮动
    .box {
     padding: 0 200px 0 200px;
    }
    .left,
    .right {
     width: 200px;
    }
    .middle {
     width: 100%;
     background: red;
    }
    .middle,
    .left,
    .right {
      float: left;
      min-height: 400px;  //  设置最小高度
    }
    
  2. middle,left,right 在一行显示
 .left {
   margin-left: -100%;  
 }
 .right {
   margin-left: -200px;
 }
  1. 解决遮盖
  .box {
     padding: 0 200px 0 200px;
     overflow: hidden;
   }
   .left {
     position: relative;
     left:-200px
   }
   .right {
     position: relative;
     right:-200px
   }

淘宝双飞翼布局

原理:

  • 浮动
  • 盒子模型
    代码:
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    .box {
      overflow: hidden;
    }

    .middle,
    .left,
    .right {
      float: left;
      min-height: 400px;
    }

    .middle {
      width: 100%;
      background: red;
    }
    .middle-in{
       margin: 0 200px;
    }

    .left,
    .right {
      width: 200px;
    }

    .left {
      background: yellow;
      margin-left: -100%;
    }

    .right {
      background: blue;
      margin-left: -200px;
    }
  </style>
</head>

<body>
  <!-- https://www.cnblogs.com/imwtr/p/4441741.html -->
  <div class='box'>
    <div class="middle">
      <div class="middle-in">
        <h4>我是middle</h4>
        <p>我是内容部分我是内容部分我是内容部分我是内容部分我是内容部分我是内容部分我是内容部分我是内容部分</p>
      </div>
    </div>
    <div class="left">
      <h4>我是left</h4>
      <p>我是left的内容</p>
    </div>
    <div class="right">
      <h4>我是right的内容</h4>
      <p>我是right的内容</p>
    </div>
  </div>
</body>

</html>

解释一下:双飞翼布局只是在解决遮盖时,与圣杯布局有差别。而且实现很简单:只是在内部元素添加margin即可

  .middle-in{
     margin: 0 200px;
  }

总结:
两种方式皆可实现,个人觉得第二种更简单。😊

相关文章

  • 特殊布局方法

    关于圣杯布局和双飞翼布局:CSS布局之--淘宝双飞翼布局双飞翼布局介绍CSS控制自适应宽度两三栏布局圣杯布局的实现...

  • CSS布局知识点

    双飞翼布局 (淘宝UED对圣杯布局的升级优化) 圣杯布局和双飞翼布局的实现(三栏布局),都是左右两栏固定宽度,中间...

  • CSS-布局4-双飞翼布局

    1、双飞翼布局概述 双飞翼布局同样来源淘宝,可以说是借鉴了圣杯布局,同时也解决了圣杯布局使用相对定位的缺陷。 2、...

  • 实现两边定宽,中间自适应

    标签(空格分隔): css 圣杯布局和双飞翼布局、flex布局 定义 圣杯布局(双飞翼布局):两边定宽,中间宽度自...

  • CSS 经典三列布局之双飞翼布局

    双飞翼布局 双飞翼布局与圣杯布局细微区别 双飞翼布局比圣杯布局多了一个 main-inner标签 双飞翼布局不需要...

  • 经典CSS布局:双飞翼和圣杯布局

    圣杯布局 HTML CSS 双飞翼布局 HTML CSS Flex布局 HTML和圣杯布局一样CSS

  • 圣杯布局和双飞翼布局

    圣杯布局 双飞翼布局

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

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

  • 圣杯布局和双飞翼布局

    实现圣杯布局和双飞翼布局,“负边距”是必不可少的。 了解圣杯布局和双飞翼布局之前,我们先来了解下负边距。一、定义:...

  • CSS布局分类

    两栏布局 三栏布局 双飞翼布局 圣杯布局

网友评论

      本文标题:圣杯布局和淘宝双飞翼布局

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