不需要以下内容:
我无法在CSS中找到不依赖于上述其中一种的3列布局。并且依赖于上述之一似乎否定了使用CSS而不是表的许多优点。每次我想改变左栏的宽度时,我都不想扯掉Photoshop并调整图像大小。而且我不想拉出计算器来计算我的DIV必须在屏幕一侧有多少像素。
我应该提一下,我正在寻找一种等高的布局。
任何?
编辑:我正在寻找100%的宽度,中心柱是液体。
编辑:我也希望以像素为单位指定左右列的宽度。
编辑:背景可以是透明的,但我希望列之间有一条分界线,它们一直向上和向下运行。
答案 0 :(得分:16)
当你谈论CSS时,没有“简单”这样的东西。
但是有一个简单的解决方案是跨浏览器,优雅地降级并且完全符合HTML和CSS:使用包含三列的表。
推理:DIV并不意味着具有相同的动态高度。因此,CSS不支持这一点。如果你需要一个块元素来确保它的子节点具有相同的高度,那么这就是表的用途。
[编辑]很抱歉冒犯了所有的CSS狂热者,但是,坦率地说,当某些东西不是为了做某事并且你滥用它而且它不起作用时,请停止抱怨,好吗? DIV不是一个TABLE,不能在不依赖黑客的情况下使用它。
[EDIT2]正如various places中已经说过的那样,不使用表格进行布局的原因是,在早期,表格是唯一的设计元素,并且导致HTML它有几十个嵌套表。那很糟。但这并不意味着你必须使用单个表来放置所有内容然后依靠CSS来使内部的东西看起来正确。
大脑就像一个降落伞:它很高兴但只有当它打开时才有用。
答案 1 :(得分:6)
答案 2 :(得分:1)
我同意罗伯特的观点。由于浏览器解释CSS规则并以不同方式呈现最终页面,我怀疑您会找到一个完美的解决方案,而不会在您的要求中更灵活。
答案 3 :(得分:1)
您可以使用jS实现此目的。
如果您要创建3个Div,则一个浮动向左移动一个flot,中间向左移动边距为&正确的宽度使其居中。
然后使用一些JS,每个div都有自己的ID,你可以计算它们的高度,将2个降低的值设置为最高值。
使用Jquery非常简单。
答案 4 :(得分:0)
这个可以用于3列布局(以及其他各种布局)。就我个人而言,我认为将div用于所有内容并不是一个好主意,但它很简单而且很好..它的工作原理。
编辑:对于100%宽度的布局http://www.alistapart.com/articles/fluidgrids/可能有所帮助,但我不确定这种布局是否仍然符合“简单”的条件。
答案 5 :(得分:0)
“又一个多列布局” (YAML)是一个(X)HTML / CSS框架 创造现代和灵活的浮动 布局。结构非常好 多功能的编程和 绝对可供最终用户使用。
它包含一些IE错误修复,但您可以删除它们。
答案 6 :(得分:-2)
将页面分成三列,相同的高度?
<html>
<head>
<style type="text/css">
#col_wrapper{
height: 400px;
}
.col{
width: 33%;
float:left;
height: 100%;
}
</style>
</head>
<body>
<div id="col_wrapper">
<div class="col">
one
</div>
<div class="col">
two
</div>
<div class="col">
three
</div>
</div>
</body>
没有怪癖,非常简单。