无论我在互联网上走到哪里,都不断有人敲打我不应该使用表格。可悲的是,我是为数不多还在使用表格的程序员之一——老实说,我认为CSS的对齐和布局功能不足强大,无法让我戒掉使用表格的习惯。抛开个人偏好,我想尝试解决我对CSS系统的一个主要不满:
假设我想要这样的布局:
我还希望
换句话说,如果列中的任何元素变宽了,我希望该列中的所有元素都变宽。如果行中的任何元素变高了,我也希望该行中的所有元素变宽。
我刚才描述的正是我们的老朋友表格的确切功能。我认为,表格非常适合这种布局!如果我尝试使用CSS布局做类似的事情,可能会得到如下结果:
假设我想要这样的布局:
+---+---+
| A | B |
+---+---+
| C | D |
+---+---+
在上面的示例中,我希望A和C的宽度相同,B
和D
的宽度保持不变。我还希望
A
和B
的高度保持一致,C
和D的高度也相同。换句话说,如果列中的任何元素变宽了,我希望该列中的所有元素都变宽。如果行中的任何元素变高了,我也希望该行中的所有元素变宽。
我刚才描述的正是我们的老朋友表格的确切功能。我认为,表格非常适合这种布局!如果我尝试使用CSS布局做类似的事情,可能会得到如下结果:
+-------+---+
| A | B |
+---*---*---+
| C | D |
+---+-------+
这绝对不是我要找的布局类型(A
和C
构成了崎岖的列,而不是我想要的完美平滑的列)。
简单来说,我真的需要一种使用CSS布局(而不是预定义的宽度或高度),将一个CSS框的边缘位置与另一个CSS框的边缘位置对齐的方法。如果CSS支持这个简单的功能,我可以立刻放弃表格,并创建超越表格能力的布局!这种功能的一个好但无用的例子是,在表格的两侧有两个不相连的框,动态地共享着完全相同的高度和垂直位置。
但不幸的是,在我的互联网搜索中,到目前为止我发现的最高级别的对齐方式是居中、左对齐和右对齐。所有这些对齐类型都不相对于其他元素,使它们没有任何用处。
我只是想找到一种不必使用表格就能将HTML元素对齐到其他HTML元素的方法!
编辑
在选择此问题的标签时,我遇到了一个几乎概括了所有内容的描述:
RelativeLayout:一种布局,其中子项的位置可以相对于彼此或父项进行描述。
有CSS RelativeLayout吗?还是每当我想要这样做时就必须使用表格?
我将接受最接近我所需功能的答案,而不使用预定宽度或高度(如果没有其他人提供更好的答案,则包括答案“不存在这样的东西”)。