使用 CSS 和两个内联块(或其他)DIV 标签而不是使用表格是否可以做到这一点?
表格版本是这样的(添加了边框以便您可以看到它):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body>
<table style="width:100%;">
<tr>
<td style="border:1px solid black;width:100px;height:10px;"></td>
<td style="border:1px solid black;height:10px;"></td>
</tr>
</table>
</body>
</html>
它产生一个具有固定宽度(不是百分比宽度)的左列,以及一个扩展以填充行上剩余空间的右列。听起来很简单,对吧?此外,由于没有“浮动”,因此父容器的高度会适当地扩展以包含内容的高度。
--BEGIN RANT--
我已经看到了具有固定宽度侧列的多列布局的“明确修复”和“圣杯”实现,它们很糟糕而且很复杂。它们颠倒了元素的顺序,它们使用百分比宽度,或者它们使用浮点数、负边距,并且“left”、“right”和“margin”属性之间的关系很复杂。此外,布局是亚像素敏感的,因此即使添加单个像素的边框、填充或边距也会破坏整个布局,并将整个列发送到下一行。例如,即使您尝试做一些简单的事情,例如将 4 个元素放在一条线上,每个元素的宽度设置为 25%,舍入误差也是一个问题。
--结束咆哮--
我试过使用“inline-block”和“white-space:nowrap;”,但问题是我无法让第二个元素填充行上的剩余空间。在某些情况下,将宽度设置为“width:100%-(LeftColumWidth)px”会起作用,但实际上并不支持在宽度属性中执行计算。