圣杯布局和双飞翼布局

余生颓废 提交于 2019-11-28 18:47:10

区别就是一个采用大包三个小,用了相对布局,另一个大包中间的一个,不需要使用定位,更加简洁,且允许的页面最小宽度通常比圣杯布局更小。

圣杯布局:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>圣杯</title>
    <style>
        #foot{
            clear: both;
        }
        #container{
            padding: 0 150px 0 200px;
        }
        #main{
            width: 100%;
            background-color: red;
        }
        #left{
            width: 200px;
            background-color: yellow;
            margin-left: -100%;
            position: relative;
            left: -200px;
        }
        #right{
            width: 150px;
            background-color: blue;
            margin-right: -150px;
        }
        .ele{
            height: 500px;
            float: left;
        }
    </style>
  </head>
  <body style="padding: 0;">
     <!-- 圣杯布局(float + 负margin + padding + position) -->
    <div></div>
    <div id="container">
        <div id="main" class="ele">1</div>
        <div id="left" class="ele">2</div>
        <div id="right" class="ele">3</div>
    </div>
    <div id="foot"></div>
    <script>
        console.log(...[1, 2, 3], [1, 2, 3]);
    </script>
  </body>
</html>

 

双飞翼:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>双飞翼</title>
    <style>
        #foot{
            clear: both;
        }
        #container{
            width: 100%;
        }
        #main{
            height: 100%;
            margin-left: 200px;
            margin-right: 150px;
            background-color: red;
        }
        #left{
            width: 200px;
            background-color: yellow;
            margin-left: -100%;
        }
        #right{
            background-color: blue;
            width: 150px; 
            margin-left: -150px;
        }
        .ele{
            height: 500px;
            float: left;
        }
    </style>
  </head>
  <body style="padding: 0;">
    <div></div>
    <div id="container" class="ele">
        <div id="main">1</div>
    </div>
    <div id="left" class="ele">2</div>
    <div id="right" class="ele">3</div>
    <div id="foot"></div>
    <script>
        console.log(...[1, 2, 3], [1, 2, 3]);
    </script>
  </body>
</html>

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!