【问题标题】:Dynamically sized side-by-side floats动态大小的并排浮动
【发布时间】:2011-11-19 16:29:19
【问题描述】:

我的 HTML 如下:

<div id="list-container"> </div>
<div id="button-container"> </div>

以及这两个 div 的 CSS:

#button-container {
    float: right;
    width: 100px;
    height: 100%;
    background-color: #f5f5f5;
}

#list-container {
    float: left;
    height: 100%;
    background-color: #FAD275;
}

这两个 div 并排并具有相同的高度。 button-container div 位于右侧,并且必须具有固定宽度 100px。但是,名为 list-container 的左侧 div 的宽度需要等于父容器分配的剩余空间。因此,例如,如果我的父 div 的宽度为400px,而button-container div 占据了其中的100px,那么我应该能够为height: 100% 指定类似height: 100% 的内容@ div 并具有等于300px的宽度。

绝对的#1 规则是我不能为list-container div 设置固定宽度。整个事情的父 div 是可动态调整大小的,因此它下面的每个孩子都必须设计为随它调整大小,这就是为什么存在这个问题。

请记住,这一切都是在 Google Chrome 扩展程序中完成的,因此我可以访问 HTML5 和 CSS3。我也不需要担心跨浏览器支持。我只希望它在 Chrome 中工作。

谁能帮我弄清楚如何在不使用固定宽度的情况下让list-container 填充父容器的剩余空间?

【问题讨论】:

    标签: html css google-chrome google-chrome-extension


    【解决方案1】:

    您可以使用 CSS 属性 display: table;display: table-cell;

    这模仿了表格处理其行的方式,但将其应用于 div。

    您需要一个包装器 div,但这就是您需要的所有额外标记。

    HTML

    <div class="wrap">
    <div id="list-container">list container </div>
    <div id="button-container">button container </div>
    </div>
    

    CSS:

    .wrap
    {
        display: table;
        width: 100%;
        height: 100%;
    }
    
    #button-container {
        display: table-cell;
        width: 100px;
        height: 100%;
        background-color: #f5f5f5;
    }
    
    #list-container {
        display: table-cell;
        height: 100%;
        background-color: #FAD275;
    }
    

    看我的例子here

    【讨论】:

    • 我试过这个,但由于某种原因在我的真实代码中它不起作用。我在button-container 中添加了一个按钮,但由于某种原因它被推到了底部。谁能解释一下?这是代码:jsfiddle.net/p4dvU/9
    • 它应该在button-container的顶部。这是正常放置的地方,不用引入display: table
    • 只需将vertical-align: top; 添加到按钮容器中,作为注释&lt;ul&gt; 不是有效的自结束标记。 jsfiddle.net/Kyle_Sevenoaks/p4dvU/11
    • 谢谢凯尔。我不是一个经验丰富的网络开发人员,所以我很欣赏这些提示。为了将来参考,某处是否有有效的自闭合标签列表?
    • Kyle,垂直对齐有助于按钮容器,但由于某种原因,我的列表容器只有 230 像素高而不是 250 像素。当我删除display: table-cell; 时,它会恢复到应有的 250 像素,并且看起来仍然很棒。从我的列表容器中删除表格单元格显示属性是否安全?为什么这个 div 的底部少了 20px?即使在 Chrome 的 web 开发工具中 padding 为 0,它看起来也被视为填充。
    【解决方案2】:

    本网站可能对您有所帮助:

    http://glish.com/css/

    【讨论】:

    • 你能指出我应该对哪篇文章特别感兴趣吗?
    【解决方案3】:

    将左侧容器设置为 100%,并为其赋予 100 像素的右边距。我原来的回答也说填充,但那是错误的。边距为浮动的右 div 创造空间。百分比宽度允许左 div 动态调整大小。

    【讨论】:

    • 我实际上根本无法让它工作。无论我尝试什么,即使列表容器上有 100px 的边距,我的按钮容器也会被推出并挂在我的父 div 下方。我不能让他们并排
    猜你喜欢
    • 1970-01-01
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-25
    • 2011-12-14
    • 1970-01-01
    相关资源
    最近更新 更多