html - CSS:在不放置 100% 或导致换行的情况下使列尽可能宽。

标签 html css

我有一个三列的 div,我希望它适合页面而不溢出第三列到其他两列下方。

前两列不能超过 200 像素,第三列必须至少为 280 像素。导致第三列变宽的原因是一个表格,其中 td 标签内有一些长句。如果将文本换行到另一行,则表格有适合的空间。

如果我将表格宽度设置为 100%,第 3 列会溢出到第 1 列和第 2 列下方,因此我必须为表格设置一个固定宽度。这违背了我正在尝试做的事情,即让页面自行调整大小。但我不能两者兼得。有什么我可以做的吗?

<div class="column1">
</div>
<div class="column2">
</div>
<div class="column3">
    <table width="300px"> <!- would like to put 100% -->
    </table>
</div>

CSS

div.column1, div.column2 {
    float: left;
    max-width:280px;
    padding: 5px;
}

div.column3 {
    float: left;
    min-width:280px;
    padding: 5px;
}

.column3 table {
    table-layout:fixed;
    word-wrap:break-word;
}

.column3 td {
    white-space: normal;
    word-wrap:break-word;
}

最佳答案

您需要使用 calc , 如果你不想要你的 <div> s 包装然后你需要一个溢出容器。

HTML:

<div class="overflow">
<div class="column1">
    text and text and text and text
</div>
<div class="column2">
    cakes and cakes and cakes and cakes
</div>
<div class="column3">
    <table width="300px">
        <tr><td>pie</td><td>foo</td><td>bar</td></tr>
        <tr><td>left</td><td>center</td><td>right</td></tr>
    </table>
</div>
</div>

CSS:

*{
    padding:0;
    margin:0;
}
div.overflow{
    min-width:700px;
}
div.column1, div.column2 {
    float: left;
    max-width:200px;
    padding: 5px;
    background-color:red;
}

div.column3 {
    float: left;
    min-width:280px;
    padding: 5px;
    background-color:blue;
    width:calc(100% - 410px);
}

.column3 table {
    table-layout:fixed;
    word-wrap:break-word;
    width:100%;
}

.column3 td {
    white-space: normal;
    word-wrap:break-word;
}

http://jsfiddle.net/BbJW9/

关于html - CSS:在不放置 100% 或导致换行的情况下使列尽可能宽。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24353288/

相关文章:

html - 试图将一个 div 居中,但没有任何东西可以工作

html - 元素周围的虚线边框,左边框的顶部倾斜/成 Angular

javascript - CSS水平子菜单

html - 通过CSS中的位置从图像文件中获取背景图像

html - 如何防止桌面浏览器(Chrome、Safari)缩放网页

html - 用自己的垂直滚动条分隔屏幕的 2 个区域

javascript - Node.js 在本地返回 JS 文件

.net - 如何从 WatiN 链接对象获取原始 href 属性?

html - bootstrap输入框填不满col,只显示很短的一个

html - CSS Div 100% 带 float :left