美文网首页
双飞翼布局

双飞翼布局

作者: HuFan_JS | 来源:发表于2020-05-28 00:40 被阅读0次

    最近在刷面试题,复习了一些css相关的内容,第一次听到双飞翼和圣杯布局这两个个概念(我之前css是怎么学的???)

    双飞翼布局

    双飞翼是float布局和负边距结合使用实现的一个两端固定宽度,中间自适应的效果
    且中间


    这个盒子里left和right的宽度是固定的,不会随着父盒子的改变而改变的,而中间蓝色的这款是可以随着父盒子的宽度的改变和改变的。

    上代码
    html
    <body>
      <div class="container">
        <div class="main">
          <div class="main-inner">i am main</div>
        </div>
        <div class="left">i am left</div>
        <div class="right">i am right</div>
      </div>
    </body>
    

    双飞翼布局还有一个特点就是main优先加载主要内容main部分,因为浏览器会按照html文档中的顺序渲染,所以只需要把中间的main盒子写在前边就可以了(main盒子里面嵌套main-inner我们等下再讲)


    style

    首先我们给最外层container 一个width:100%,一个固定的高度300px
    然后内部三个子盒子main、left、right都添加一个float:left
    给main的宽度设置为100%,left的宽度和right的宽度设置一个具体的值

    结果是这样的



    由于父盒子的宽度不够,left和right被挤到父盒子下面了,这个时候,是时候让负边距展现真正的技术了
    left盒子添加一个margin-left:-100%(让他向右移动一个父盒子那么宽)
    right盒子添加一个margin-left:-300px(让他向右移动-300px)

    效果如下



    嗯!就是这么神奇,具体是为什么呢?可以移步了解下负边距
    接下来我们要让中间主体部分的内容居中显示,不然他左边和右边的内容会被left和right这两个盒子挡住。
    所以这就是main-inner这个盒子的作用了,我们给这个盒子一个左右边距,让他远离左右盒子,然后把主体内容写在这个mian-inner盒子里面就可以了

    效果如下



    这就是双飞翼布局了

    完整css
    <style>
        .container {
          width: 100%;
          height: 300px;
          margin: 200px auto;
          border: 1px solid pink;
          overflow: hidden;
        }
    
        .main {
          float: left;
          width: 100%;
          height: 300px;
          background-color: black;
        }
    
        .main-inner {
          margin: 0 200px 0 100px;
          color: white;
          background: blue;
        }
    
        .left {
          width: 100px;
          float: left;
          height: 300px;
          margin-left: -100%;
          background-color: red;
        }
    
        .right {
          width: 200px;
          float: left;
          height: 300px;
          margin-left: -200px;
          background-color: purple;
        }
      </style>
    

    相关文章

      网友评论

          本文标题:双飞翼布局

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