• 圣杯布局


    意指用最少的代码实现到兼容Ie6的现代布局

    效果如图所示,用到了浮动负边距和相对定位三种知识

    代码如下

    <!DOCTYPE html>
    
    <html>
    
    <head>
    
    <meta charset="utf-8">
    
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    
    <title>圣杯布局</title>
    
     
    
    <style type="text/css">
    
    body {background-color: #ffffff; font-size:14px;}
    
    #hd, #ft {padding:20px 3px; background-color: #cccccc; text-align: center;}
    
    .bd-lft, .bd-rgt, .bd-3-lr, .bd-3-ll, .bd-3-rr {margin:10px 0; min-width:400px;}
    
    .main {background-color: #03a9f4; color:#ffffff;}
    
    .aside, .aside-1, .aside-2 {background-color: #00bcd4; color:#ffffff;}
    
    p {margin:0; padding:20px; text-align: center;}
    
     
    
     
    
    /* 左侧栏固定宽度,右侧自适应 */
    
    .bd-lft {
    
       zoom:1;
    
       overflow:hidden;
    
       padding-left:210px;
    
    }
    
    .bd-lft .aside {
    
       float:left;
    
       width:200px;
    
       margin-left:-100%; /*= -100%*/
    
     
    
       position:relative;
    
       left:-210px; /* = -parantNode.paddingLeft */
    
       _left: 0; /*IE6 hack*/
    
    }
    
    .bd-lft .main {
    
       float:left;
    
       width:100%;
    
    }
    
     
    
     
    
    /* 右侧栏固定宽度,左侧自适应 */
    
    .bd-rgt {
    
       zoom:1;
    
       overflow:hidden;
    
       padding-right:210px;
    
    }
    
    .bd-rgt .aside {
    
       float:left;
    
       width:200px;
    
    margin-left:-200px; /* = -this.width */
    
     
    
       position:relative;
    
       right:-210px; /* = -parantNode.paddingRight */
    
    }
    
    .bd-rgt .main {
    
       float:left;
    
       width:100%;
    
    }
    
     
    
     
    
    /* 左中右 三栏自适应 */
    
    .bd-3-lr {
    
       zoom:1;
    
       overflow:hidden;
    
       padding-left:210px;
    
       padding-right:210px;
    
    }
    
    .bd-3-lr .main {
    
    float:left;
    
       width:100%;
    
    }
    
    .bd-3-lr .aside-1 {
    
    float: left;
    
    width:200px;
    
    margin-left: -100%;
    
     
    
    position:relative;
    
    left: -210px;
    
    _left: 210px; /*IE6 hack*/
    
    }
    
    .bd-3-lr .aside-2 {
    
    float: left;
    
    width:200px;
    
    margin-left: -200px;
    
     
    
    position:relative;
    
    right: -210px;
    
    }
    
     
    
    /* 都在左边,右侧自适应 */
    
    .bd-3-ll {
    
       zoom:1;
    
       overflow:hidden;
    
       padding-left:420px;
    
    }
    
    .bd-3-ll .main {
    
    float:left;
    
       width:100%;
    
    }
    
    .bd-3-ll .aside-1 {
    
    float: left;
    
    width:200px;
    
    margin-left: -100%;
    
     
    
    position:relative;
    
    left: -420px;
    
    _left: 0px; /*IE6 hack*/
    
    }
    
    .bd-3-ll .aside-2 {
    
    float: left;
    
    width:200px;
    
    margin-left: -100%;
    
     
    
    position:relative;
    
    left: -210px;
    
    _left: 210px; /*IE6 hack*/
    
    }
    
     
    
    /* 都在右边,左侧自适应 */
    
    .bd-3-rr {
    
       zoom:1;
    
       overflow:hidden;
    
       padding-right:420px;
    
    }
    
    .bd-3-rr .main {
    
    float:left;
    
       width:100%;
    
    }
    
    .bd-3-rr .aside-1 {
    
    float: left;
    
    width:200px;
    
    margin-left: -200px;
    
     
    
    position:relative;
    
    right: -210px;
    
    }
    
    .bd-3-rr .aside-2 {
    
    float: left;
    
    width:200px;
    
    margin-left: -200px;
    
     
    
    position:relative;
    
    right: -420px;
    
    }
    
     
    
     
    
    </style>
    
     
    
    </head>
    
    <body>
    
     
    
    <div id="hd">头部</div>
    
     
    
    <div class="bd-lft">
    
    <div class="main">
    
    <p>主内容栏自适应宽度</p>
    
    </div>
    
     
    
    <div class="aside">
    
    <p>侧边栏固定宽度</p>
    
    </div>
    
    </div>
    
     
    
    <div class="bd-rgt">
    
    <div class="main">
    
    <p>主内容栏自适应宽度</p>
    
    </div>
    
     
    
    <div class="aside">
    
    <p>侧边栏固定宽度</p>
    
    </div>
    
    </div>
    
     
    
    <div class="bd-3-lr">
    
    <div class="main">
    
    <p>主内容栏自适应宽度</p>
    
    </div>
    
     
    
    <div class="aside-1">
    
    <p>侧边栏1固定宽度</p>
    
    </div>
    
     
    
    <div class="aside-2">
    
    <p>侧边栏2固定宽度</p>
    
    </div>
    
    </div>
    
     
    
    <div class="bd-3-ll">
    
    <div class="main">
    
    <p>主内容栏自适应宽度</p>
    
    </div>
    
     
    
    <div class="aside-1">
    
    <p>侧边栏1固定宽度</p>
    
    </div>
    
     
    
    <div class="aside-2">
    
    <p>侧边栏2固定宽度</p>
    
    </div>
    
    </div>
    
     
    
    <div class="bd-3-rr">
    
    <div class="main">
    
    <p>主内容栏自适应宽度</p>
    
    </div>
    
     
    
    <div class="aside-1">
    
    <p>侧边栏1固定宽度</p>
    
    </div>
    
     
    
    <div class="aside-2">
    
    <p>侧边栏2固定宽度</p>
    
    </div>
    
    </div>
    
     
    
    <div id="ft">底部</div>
    
     
    
    </body>
    
    </html>
  • 相关阅读:
    c# yield关键字原理详解
    Linux环境基于CentOS7 搭建部署Docker容器
    关于c#中委托使用小结
    推荐一本好的c#高级程序设计教程
    WEB网站常见受攻击方式及解决办法
    判断URL是否存在
    提升高并发量服务器性能解决思路
    分享asp.net学习交流社区
    js中对arry数组的各种操作小结
    jQuery动态实现title的修改 失效问题
  • 原文地址:https://www.cnblogs.com/myzsy/p/6148503.html
Copyright © 2020-2023  润新知