• css中的圣杯布局和双飞翼布局


    圣杯布局

    布局要求:

                  三列布局,中间自适应,两边定宽

                  中间栏要在浏览器优先渲染

                  允许任意列的高度最高

                  用最简单的CSS、最少的HACK语句

    解释说明:

    1.min-700px是为了当页面缩小到指定的700px的时候,页面内容宽度不再随着浏览器缩小。是为了电脑的正常浏览效果

    2.注意到container设置的值0 220px  0 200px,上 右 下 左,所以left 设置widh:200px,right设置220px

    3.设置min-height:300px,是让三列看起来没那么的矮

    4.浮动的情况下,定义负边距会使div向上移动,margin-left:-100%会使移动到最左则,然后再加上left:-200px,正好使left归位。right原理相同。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>圣杯布局</title>
        <style type="text/css">
          *{
              margin: 0;
              padding: 0;
          }
          body{
              min-width: 700px;
          }
          .header,.footer{
           float: left;
           width: 100%;
           background: #f60;
           height: 40px;
           line-height: 40px;
           text-align: center;
          }
          .container{
              padding: 0 220px 0 200px;
          }
          .left,.middle,.right{
              position: relative;
              float: left;
              min-height: 300px;
          }
          .middle{
              width: 100%;
              background: #1a5acd;
          }
          .left{
              width: 200px;
              background: #f00;
              margin-left: -100%;
              left: -200px;
          }
          .right{
              width: 220px;
              background: #0f0;
              margin-left: -220px;
              right:-220px;
          }
    
        </style>
    </head>
    <body>
        <div class="header">
            <h4>头部</h4>
        </div>
        <div class="container">
            <div class="middle">
                <h4>middle</h4>
                <p>这是页面中间内容</p>
            </div>
            <div class="left">
                <h4>left</h4>
                <p>这是页面左侧内容</p>
            </div>
            <div class="right">
                <h4>right</h4>
                <p>这是页面右面的内容</p>
            </div>
        </div>
        <div class="footer">
            <h4>尾部</h4>
        </div>
    </body>
    </html>

    双飞翼布局:

                       经过淘宝工程师针对圣杯布局改良后得出双飞翼布局

                      去掉相对布局,只需要浮动和负边距

    解释说明:双飞翼布局得到的效果试图与圣杯布局一样,只不过是写法不太一样,主要是没有用container包括中间三部分,相对定位也没用到

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>双飞翼布局</title>
        <style type="text/css">
        *{
            margin:0;
            padding:0;
        }
        body{
            min-width:700px; 
        }
        .header,.footer{
            width: 100%;
            float: left;
            height: 40px;
            background: #ddd;
            text-align: center;
            line-height: 40px;
        }
        .left,.right,.middle{
            float: left;
            min-height: 300px;
        }
        .middle{
            width: 100%;
            min-height:300px; 
        }
        .middle-inner{
            margin-left: 200px;
            margin-right: 220px;
            background: red;
            min-height:300px; 
    
        }
        .left{
            width: 200px;
            background: #0F0;
            margin-left: -100%;
        }
        .right{
            width: 220px;
            background: blue;
            margin-left: -220px;
        }
        </style>
    </head>
    <body>
        <div class="header">
            <h4>头部</h4>
        </div>
            <div class="middle">
               <div class="middle-inner">
                <h4>middle</h4>
                <p>这是页面中间内容</p>
               </div>
            </div>
            <div class="left">
                <h4>left</h4>
                <p>这是页面左侧内容</p>
            </div>
            <div class="right">
                <h4>right</h4>
                <p>这是页面右面内容</p>
            </div>
        <div class="footer">
            <h4>尾部</h4>
        </div>
    </body>
    </html>

     

  • 相关阅读:
    C++公有派生
    Android学习笔记(十二)——实战:制作一个聊天界面
    Android学习笔记(十一)——ListView的使用(下)
    Android学习笔记(十)——ListView的使用(上)
    Android学习笔记(九)——布局和控件的自定义
    【Leetcode周赛】从contest-41开始。(一般是10个contest写一篇文章)
    算法群模拟面试记录
    【Leetcode周赛】从contest-51开始。(一般是10个contest写一篇文章)
    【服务端开发-杂】REST 和 Graphql
    【Kickstart】2017 Round (Practice ~ G)
  • 原文地址:https://www.cnblogs.com/yyfyl/p/7788901.html
Copyright © 2020-2023  润新知