Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有3列的CSS流体布局_Css_Html - Fatal编程技术网

具有3列的CSS流体布局

具有3列的CSS流体布局,css,html,Css,Html,下面布局中的B列出现错误。我成功地使用创建了一个3列布局。但是,这假设固定柱A和B具有相同的高度/相同的垂直起点。在我的例子中,B上面有另一个流体div 我不知道如何制作B栏。有人能帮忙吗 谢谢大家! 更新: 我试图使用display:table和display:table单元格,但在IE8上不起作用。它在Firefox上工作 <html> <head> </head> <body> <div sty

下面布局中的B列出现错误。我成功地使用创建了一个3列布局。但是,这假设固定柱A和B具有相同的高度/相同的垂直起点。在我的例子中,B上面有另一个流体div

我不知道如何制作B栏。有人能帮忙吗

谢谢大家!

更新:

我试图使用display:table和display:table单元格,但在IE8上不起作用。它在Firefox上工作

<html>
    <head>
    </head>
    <body>
        <div style="display: table">
            <div style="display: table-cell">
                Column 1
            </div>
            <div style="display: table-cell">
                Column 2
            </div>
        </div>
    </body>
</html>

第1栏
第2栏
甚至在以后编辑:

为了使上述代码在IE8上工作,您需要添加:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

有4种方法:

  • 。基本上,通过创建一个包装器并给它一个带有分隔符的背景图像,诱使用户认为列会一直到页面的底部。在您的情况下,对于流体布局,您必须执行两次并使用一次左对齐的bg图像,另一次使用右对齐的bg图像

  • 这个。这是一个相当丑陋的黑客,通过指定一个巨大的底部填充以及负的底部边距,然后隐藏溢出。它在实践中运行得相当好,但有很多小问题,例如无法应用底部边界(请参阅链接以获取完整列表)

  • 将包装器与
    display:table
    一起使用,并为列指定一个
    display:table单元格
    。我已经读到这在大多数浏览器中都有效,但我自己还没有尝试过,所以没有保证

  • 回到餐桌上。CSS在语义上非常好,但有时您别无选择,只能牺牲机器语义来获得良好的用户体验


  • 有4种方法可以做到这一点:

  • 。基本上,通过创建一个包装器并给它一个带有分隔符的背景图像,诱使用户认为列会一直到页面的底部。在您的情况下,对于流体布局,您必须执行两次并使用一次左对齐的bg图像,另一次使用右对齐的bg图像

  • 这个。这是一个相当丑陋的黑客,通过指定一个巨大的底部填充以及负的底部边距,然后隐藏溢出。它在实践中运行得相当好,但有很多小问题,例如无法应用底部边界(请参阅链接以获取完整列表)

  • 将包装器与
    display:table
    一起使用,并为列指定一个
    display:table单元格
    。我已经读到这在大多数浏览器中都有效,但我自己还没有尝试过,所以没有保证

  • 回到餐桌上。CSS在语义上非常好,但有时您别无选择,只能牺牲机器语义来获得良好的用户体验


  • 这样做的逻辑过程是从DD模板上的当前位置删除B

    将中央div拉伸以占用创建的额外空间

    在里面有你想要的额外的液体div


    然后在下面有另一个div,在其中有流体div和B.

    这样做的逻辑过程是从DD模板上的当前位置删除B

    将中央div拉伸以占用创建的额外空间

    在里面有你想要的额外的液体div


    然后在下面有另一个div,在这个div和B中,你的流体div和B。

    除非我误解了这个问题,否则我不认为等于一个相等矩形的所有列的高度是他想要的,这意味着不使用上面的方法就可以实现?我可能误解了当时的意图(不清楚),但是从问题和图片上看,上面4个建议中的任何一个听起来都是可行的,因为其中两列(在本例中为中间和右边)通常位于包装器中,可以在不破坏布局其余部分的情况下应用标题。我正在使用解决方案2,最后,我完成了布局,但在IE上看起来很糟糕:(现在尝试3。如果不起作用,我将返回表1。2的IE问题是什么?也许这会更容易解决。3没有太多的事情要做,因为它要么受支持要么不受支持。2.也许你可以在左栏和包装器之间做一个假栏,然后在包装器内对中栏和右栏做一个OTL。我自己,我通常最终会选择人造列;你可以交换一点灵活性,但它可以让代码更干净。我设法修复了3。现在运行良好。解决方案现在在初始问题中。除非我误解了这个问题,否则我不认为所有列的高度等于一个相等的矩形是他想要的,这意味着这可以实现我没有使用上面的内容?我可能误解了当时的意图(不清楚),但从问题和图片上看,上面4个建议中的任何一个都可以,因为这两个栏(在本例中为中间和右边)通常在包装器中,可以在不破坏布局其余部分的情况下应用标题。我正在使用解决方案2,最后,我完成了布局,但在IE上看起来很糟糕:(现在尝试3。如果不起作用,我将返回表1。2的IE问题是什么?也许这会更容易解决。3没有太多的事情要做,因为它要么受支持要么不受支持。2.也许你可以在左栏和包装器之间做一个假栏,然后在包装器内对中栏和右栏做一个OTL。我自己,我通常最终会选择人造列;你可以交换一点灵活性,但它可以让代码更干净。我设法修复了3。现在运行良好。解决方案现在在初始问题中。这就是我正在做的。但是结果不好。现在我设法做了一些事情,但在IE上看起来不好。这就是我正在做的。但是结果不好.现在我想做点什么,但在IE上看起来很糟糕。