zoukankan      html  css  js  c++  java
  • 圣杯布局

    意指用最少的代码实现到兼容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>
  • 相关阅读:
    最全面的iOS和Mac开源项目和第三方库汇总
    15 个 Android 通用流行框架大全
    Android中常用的优秀开源框架
    iOS中拉伸图片的几种方式
    iOS View自定义窍门——UIButton实现上显示图片,下显示文字
    Java Queue的使用
    java用volatile或AtomicBoolean实现高效并发处理 (只初始化一次的功能要求)
    android开发音乐播放器--Genres和Art album的获取
    一个神奇的控件——Android CoordinatorLayout与Behavior使用指南
    在CodeBlocks 开发环境中配置使用OpenCV (ubuntu系统)
  • 原文地址:https://www.cnblogs.com/myzsy/p/6148503.html
Copyright © 2011-2022 走看看