作者:gcbeen

日期:2013年09月25日

一、三列的结构

两个两列布局结构组合成三列。

    <div class="header">头部信息</div>
    <div class="container">
      <div class="wrap">
        <div class="mainBox">主要内容区域</div>
        <div class="subMainBox">次要内容区域</div>
      </div>
      <div class="sideBox">侧边栏</div>
    </div>
    <div class="footer">底部信息</div>

单独的三列布局结构。

    <div class="header">头部信息</div>
    <div class="container">
      <div class="mainBox">主要内容区域</div>
      <div class="subMainBox">次要内容区域</div>
      <div class="sideBox">侧边栏</div>
    </div>
    <div class="footer">底部信息</div>

二、单独三列两列定宽,中间自适应结构。

宽度auto与浮动的关系。

  • 宽度auto占据浏览器框口一行中所有位置。
  • 浮动 + 宽度auto 根据容器内容确定占据浏览器窗口的大小。
    * {
      margin: 0;
      padding: 0;
    }
    .header,
    footer {
      height: 30px;
      line-height: 30px;
      text-align: center;
      color: #FFF;
      background-color: #AAA;
    }
    .container {
      text-align: center;
      color: #FFF;
    }
    .mainBox {
      float: left;
      width: 100%; //站满一行
      background-color: #FFF;
    }
    .mainBox .content {
      margin: 0 210px 0 310px;
      background-color: #000;
    }
    .subMainBox {
      float: left;
      width: 300px;
      margin-left: -100%; 
      background-color: #666;
    }
    .sideBox {
      float: left;
      width: 200px;
      margin-left: -200px;
      background-color: #666;
    }
    .footer {
      clear: both;
    }

ps:float

三、左侧定宽右侧及中间自适应结构

右侧定宽左侧及中间自适应

    .mainBox .content {
      margin: 0 210px 0 41%;
      background-color: #000;
    }
    .subMainBox {
      float: left;
      width: 40%;
      margin-left: -100%;
      background-color: #666;
    }

交换左右侧

    .mainBox .content {
      margin: 0 41% 0 210px;
      background-color: #000;
    }
    .subMainBox {
      float: left;
      width: 40%;
      margin-left: -40%;
      background-color: #666;
    }
    .sideBox {
      float: left;
      width: 200px;
      margin-left: -100%
      background-color: #666;
    }

四、三列宽度自适应结构

    .mainBox .content {
      margin: 0 21% 0 41%;
      background-color: #000;
    }
    .subMainBox {
      float: left;
      width: 40%;
      margin-left: -100%;
      background-color: #666;
    }
    .sideBox {
      float: left;
      width: 20%;
      margin-left: -20%;
      background-color: #666;
    }

四、三列等高

背景模拟

    .container {
      float: left;
      width: 960px;
      text-align: center;
      color: #FFF;
      background: url(images/bg.png) repeat-y 0 0;
    }

负边距实现

    .container {
      float: left;
      width: 960px;
      text-align: center;
      overflow: hidden;
      color: #FFF;
    }
    
    margin-bottom: -9999px;
    padding-bottom: 9999px;

边框模拟

    .container {
      position: relative;
      width: 960px;
      color: #FFF;
    }

    .mainBox .content {
      border-left: 310px solid #999;
      border-right: 210px solid #333;
      background-color: #000;
    }
    .subMainBox {
      position: absolute;
      top: 0;
      left: 0;
      width: 300px;
    }
    sideBox {
      position: absolute;
      top: 0;
      right: 0;
      width: 200px;
    }

其他 javascript 实现

    <body onload="equalColumns('subMainBox', 'm_content', 'sideBox');">
      ...
    </body>


blog comments powered by Disqus