代码之家  ›  专栏  ›  技术社区  ›  Dennis G

CSS三列布局,液体中心,没有左边距!

css
  •  0
  • Dennis G  · 技术社区  · 15 年前

    我都赞成基于CSS的布局,但这一个我就是想不出来。有了一张桌子,真是太容易了:

    <html>
    <head><title>Three Column</title></head>
    <body>
    <p>Test</p>
    <table style="width: 100%; border: 1px solid black; min-height: 300px;">
    <tr>
    <td style="border: 1px solid green;" colspan="3">Header</td>
    </tr>
    <tr>
        <td style="border: 1px solid green; width: 150px;" rowspan="2">Left</td>
        <td style="border: 1px solid yellow;">Content</td>
        <td style="border: 1px solid blue; width: 200px;" rowspan="2">Right</td>
    </tr>
    <tr>
        <td style="border: 1px solid fuchsia;">Additional stuff</td>
    </tr>
    <tr><td style="border: 1px solid green;" colspan="3">Footer</td></tr>
    </body>
    <html>
    
    • 左边是固定宽度
    • 右是固定宽度
    • 含量是液体
    • 其他内容位于内容下方

    现在重要的部分是:“左” 可能不存在 . 这对桌子来说也是很容易的。删除列并展开“内容”。美丽的。 我已经浏览了许多基于液体和无表三列CSS布局的例子(以及“圣杯”),但是我没有找到一个不使用中间列(“内容”)的某种左边距的例子。一旦“左”消失,任何剩余的空白都会很糟糕,因为“内容”只会停留在它的位置上。

    我正准备为这个问题切换到旧的基于表的布局,所以我希望有人有一些想法-我不关心多余的标记、包装等,我只是想知道如何用简单的CSS解决这个问题。顺便说一句:看看等高柱子有多简单…

    干杯

    附言:请不要CSS3

    1 回复  |  直到 11 年前
        1
  •  3
  •   antpaw    15 年前
    body {
    width: 600px;
    }
    .left {
    float: left;
    width: 200px;
    }
    .center {
    float: right;
    width: 100%;
    }
    .right {
    float: right;
    width: 200px;
    }
    

    这将使.center在删除左键时扩展为全宽。