代码之家  ›  专栏  ›  技术社区  ›  Q_Mlilo

100% div高度

  •  5
  • Q_Mlilo  · 技术社区  · 15 年前

    每个人

    我正在设计一个布局流畅的网页。我想保持100%的宽度和100%的高度。 问题是,我不知道如何保持div“左”和“右”,在它们的父div“wrapper”中有100%的高度。

    <div id="container" style="width:100%; height:100%">  
         <div id="header" style="width:100%; height:100px">
         </div>
    
         <div id="wrapper" style="width:100%; height:(100% - 100px)">
               <div id="left" style="width:250px; height:(100% - 100px)">
               </div>
    
               <div id="right" style="width:(100% - 250px); height:(100% - 100px)">
               </div>           
         </div>          
    </div>
    

    请帮忙。

    来自doctype.com的答案

    CSS

    html, body{
        height: 100%;
        margin: 0;
        padding: 0;
    }
    

    HTML

    <body>
    <div id="container" style="width:100%; height:100%; position: absolute;">  
      <div id="header" style="width:100%; height:100px;">
    header
      </div>
      <div id="wrapper" style="width:100%; height:auto; position: absolute; top: 100px; bottom: 0;">
        <div id="left" style="width:250px; height:100%; float:left;">
        left
        </div>
        <div id="right" style="width: 250px; height:100%; float:right; ">
        right
        </div>           
        main content
      </div>          
    </div>
    </body>
    
    4 回复  |  直到 15 年前
        1
  •  10
  •   Tom    15 年前

    如果我理解正确,您希望在包装分区中左右浮动分隔符,但在屏幕中保留包装分区的完整高度?

    如果是这样的话,那么左右两个分区就进入包装器,然后使用……浮动:左;位置:相对;和…浮动:右;位置:相对;浮动到侧面。

    现在,因为您已经浮动了这两个div,它们是wrapper div内容的一部分,所以wrapper本身的高度可能为零。这是因为里面的两个潜水器“浮起来”。要使您的包装与内两个沙发床的高度相同,您可以:

    • 将此作为第三个分区放入包装器中: <div style="clear: both;"></div>
    • 将任何元素放在包装器的两个div之后(比如一个跨度),并给它一个的css属性。清除:两个;

    现在,您已经“清除了浮点数”,并且您的包装器具有内部两个div的完整高度。

    另一方面,如果你希望所有的内容都能延伸到屏幕的整个高度,而不管你在屏幕上放了什么,你需要做一些CSS魔术,它会变得过于复杂,无法解释而看不到你的代码。从这里开始: http://ryanfait.com/sticky-footer/

    希望有帮助。

        2
  •  3
  •   Spoike Otávio Décio    15 年前

    如果将同一级别中的所有元素的宽度和高度设置为100%,则浏览器之间会出现意外行为。以你所举的例子来说 header wrapper 父级中的所有空间。

    100% container
    +----------------------------+
    | 100% header  100% wrapper  |
    | +----------+ +-----------+ |
    | |         errr...?       | |
    | +----------+ +-----------+ |
    +----------------------------+
    

    这真的是怎么可能的?有几种方法可以做到这一点:

    • 第一个元素得到所有空间,或者,
    • 两者必须重叠,或者,
    • 他们都共享空间

    所以在给出百分比时,你需要更具体一些。


    顺便问一下,你试过了吗 float 你的元素?

    position: relative; // or absolute
    float: left;
    
        3
  •  2
  •   poke    15 年前

    要使DIV具有浏览器100%的高度,父级也需要具有100%的高度。尝试添加以下CSS:

    html, body { height: 100%; margin: 0; padding: 0; }
    
        4
  •  0
  •   ant    15 年前

    尝试添加

    最小高度:100%;对于您的CSS,chk out this 例子