Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.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
Html CSS等高列-啊!再一次?_Html_Css_Cross Browser_Web Standards_Standards Compliance - Fatal编程技术网

Html CSS等高列-啊!再一次?

Html CSS等高列-啊!再一次?,html,css,cross-browser,web-standards,standards-compliance,Html,Css,Cross Browser,Web Standards,Standards Compliance,没错,这是网页设计史上最糟糕的问题。谁在乎,就选一个吧。所以我的问题是这样的 符合标准和(向后)兼容浏览器的最佳答案是什么 用于为css和html保留的布局 或 ,或其他的黑客或膨胀 已经在这方面花费了太多的时间,但正在寻找“专业”的方法 编辑:这里有一个使用Alexander方法的例子。成功的方法有很多,我认为最简单的方法是将它们全部包装在一个通用的父容器中,将他的显示设置为表或表行完全不需要父容器。并将原始s设置为显示:表格单元格 .为了兼容性,我建议使用jQuery。正如您所说,黑客和额外

没错,这是网页设计史上最糟糕的问题。谁在乎,就选一个吧。所以我的问题是这样的

符合标准和(向后)兼容浏览器的最佳答案是什么

用于为css和html保留的布局

,或其他的黑客或膨胀

已经在这方面花费了太多的时间,但正在寻找“专业”的方法


编辑:这里有一个使用Alexander方法的例子。

成功的方法有很多,我认为最简单的方法是将它们全部包装在一个通用的父容器中,将他的
显示设置为
表行
完全不需要父容器。并将原始
s设置为
显示:表格单元格


.

为了兼容性,我建议使用jQuery。正如您所说,黑客和额外的容器会使您的代码变得臃肿,如果需要进行更改,最终会使编辑变得更加困难。不管怎样,HTML是页面的布局。

通常我使用纯css/HTML解决方案,在99%的情况下都有效:

我有一个背景在Y轴上重复的父div。总体结构如下所示:

html:

<div id="container" class="clearfix">

    <div class="LeftPane"></div>
    <div class="CenterPane"></div>
    <div class="RightPane"></div>

</div>

对于背景图像,您可以将图像应用于边框,或其他任何可能让用户认为所有3个块都具有相同高度的内容

我提出了一种革命性的等高列新方法。这是一个纯CSS/HTML解决方案,在最新的Chrome和Firefox以及IE7-9上进行了测试。这是一个有点棘手的设置,但一旦完成,它的工作非常漂亮。我以前看到的每个解决方案的问题是,它实际上并没有创建单独的并排div,这些div可以有自己的边框、边距等。其他解决方案总是有一些列重叠,这意味着您只能通过更改背景来对比不同的列。与某些方法不同,此方法允许任何列具有任何高度。它成功的秘诀是使用
float:right
而不是left。如果它被向左浮动,则会出现右侧额外空间的问题,从而导致滚动条。也许这种方法唯一的缺点是很难让你的头绕过去

看看这里。

非javascript解决方案将是最好的,因为不会有未定型的内容闪现,这取决于他需要与之兼容的时间。由于IE7不支持
表格单元格
或(我相信)
表格行
。也许这在我心中太根深蒂固了,但我觉得这类似于使用表格进行布局,因为显示表格告诉项目否,此布局和基于表格的布局之间的区别是大约2-3个额外元素(特别是对于此布局而言),这里,你正在一个接一个地使用3个div,这是合法的。不管你如何设计你的CSS,你的标记仍然是干净的。这是一个很好的修正。即使它引起了服务器请求,它也会。我没想到它会用一个“空”的图像来验证?好吧,我不能让它工作。。。你是在建议还是使用只包含imagePath的“空”url?我在CSS中添加了一些说明,用于在处理边距时管理维度,但没有边距时,数字非常简单。另一方面,CSS假定列的宽度相等。对于不同宽度的列,您必须更仔细地思考。
#container{
    background:url(imagePath) 0% repeat y;
}