【问题标题】:How to make a dynamic layout only by CSS如何仅通过 CSS 制作动态布局
【发布时间】:2012-07-06 13:30:51
【问题描述】:

我想创建一个这样的布局:

  1. 左栏(黄色):宽度150px 常量 - 高度动态
  2. 中间列(天蓝色):宽度动态 - 高度动态
  3. 右栏(绿色):宽度150px 常量 - 高度动态
  4. 页脚(红色):宽度动态 - 高度恒定

我正在寻找纯 CSS 的解决方案。

jsFiddle here.

【问题讨论】:

    标签: html css


    【解决方案1】:

    二手 现在你忘记了 position 在你的 CSS 中定义 position value

    像这样

    #blue{
    position: absolute;
    }
    

    【讨论】:

    • 我之前在这里问的时候试过了,对我没有帮助。我需要用任何大小分辨率的 div #blue 填充中间的方格,以便 #blue 与该区域准确匹配。谢谢
    【解决方案2】:

    不确定这是否是您想要的,但我摆脱了#Blue 的所有高度规则,只是添加了height: 100%,然后给了#Red 更高的z-index(例如55)。

    现在中心方块似乎总是蓝色的。

    http://jsfiddle.net/qXKZh/38/

    希望对你有帮助

    【讨论】:

    • 在我问之前我可以这样做,这不是解决方案
    【解决方案3】:

    我真的不确定你想要完成什么。它应该看起来像 MusikAnimal 的 jsfiddle 的样子吗?

    如果是这样,我会选择不同的结构(具有正确的高度和宽度......):

    <div id="for3columns" style="height: 500px;">
      <div id="yellow_column" style="float: left; width: 20%; height: 100%"></div>
      <div id="blue_column" style="float: left; width: 60%; height: 100%"></div>
      <div id="green_column" style="float: left; width: 20%; height: 100%"></div>
    </div>
    <div id="lower_red" style="clear:both; width: 100%; height: 100px;"></div>
    

    【讨论】:

    • 是的,但是当你说 yellow_column,green_column width20% 它是 150px 的常数 .blue_column 它不是常数 它需要匹配任何分辨率宽度,这就是动态宽度和动态高度问题。
    • 和 lower_red 它的高度是 150px 不变但宽度是动态的。
    【解决方案4】:

    有点难以理解你的问题是什么,但根据我收集到的信息,我能够得到这个解决方案:Fiddle

    HTML

    <div class='container'>
        <div class='col col-left'></div>
        <div class='col col-mid'></div>
        <div class='col col-right'></div>
        <div class='col col-bottom'></div>
    </div>​
    

    CSS

    .container {
        width: 960px;
        margin: 0 auto;
    }
    
    .col {
        margin: 0;
        padding: 0;
        float: left;
    }
    
    .col-left {
        width: 25%;
        height: 200px;
        background: #f90a7b;
    }
    
    .col-mid {
        width: 50%;
        height: 200px;
        background: #e3f606;
    }
    
    .col-right {
        width: 25%;
        height: 200px;     
        background: #46c704;
    }
    
    .col-bottom {
        width: 100%;
        height: 200px;
        background: #0654e0;
    }​
    

    【讨论】:

    • 是的,但是当你说 yellow_column,green_column width25% 它是 150px 的常数 .blue_column 它不是常数 它需要匹配任何分辨率宽度 它是动态宽度和动态高度问题,lower_red 是高度 150px 不变但宽度是动态的。
    【解决方案5】:

    http://fiddle.jshell.net/2bSaP/show/

    HTML:

    <div id="container">
        <div id="yellow"></div>
        <div id="blue"></div>
        <div id="green"></div>
        <div id="red"></div>
    </div>
    

    CSS:

    body {
        margin: 0;
    }
    
    #yellow {
        background: yellow;
        position: absolute;
        width: 150px;
        top: 0;
        left: 0;
        bottom: 155px;
    }
    
    #blue {
        background: rgb(98, 196, 255);
        position: absolute;
        top: 0;
        right: 155px;
        left: 155px;
        bottom: 155px;
    }
    
    #green {
        background: green;
        position: absolute;
        width: 150px;
        top: 0;
        right: 0;
        bottom: 155px;
    }
    
    #red {
        background: brown;
        position: absolute;
        height: 150px;
        left: 0;
        right: 0;
        bottom: 0;
    }
    

    【讨论】:

      猜你喜欢
      • 2011-08-21
      • 1970-01-01
      • 1970-01-01
      • 2015-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多