[元注:]我正在浏览问题页面,真的厌倦了“DIVS vs Tables”“何时使用表 vs DIVS”“Divs 比 Tables 更好”“Tables vs CSS”以及所有提出的问题同样的事情,天哪,人们但我想看看人们处理“为什么你应该放弃并使用表格”的典型例子的翻译的所有方法:
<table>
<tr>
<td> Name </td>
<td> <input> </td>
</tr>
<tr>
<td> Social Security Number </td>
<td> <input> </td>
</tr>
</table>
问题:如何在没有表格的情况下最好地(语义上、简单地、稳健地、流畅地、可移植地)实现上述内容。对于初学者来说,我猜想一个简单的实现对第一列使用固定的列宽度,但这对于动态生成的内容可能会产生不确定的结果。在答案中包含你的方法的优点/缺点会很好。
附:我很想知道的另一个问题是垂直居中,但对此的技巧在jakpsatweb.cz http://www.jakpsatweb.cz/css/css-vertical-center-solution.html
编辑:sunlife 提出了一个很好的例子,说明为什么我没有仔细思考这个问题。表格可以同时对齐多个列。问题仍然存在(我希望看到用于对齐/布局的不同 CSS 技术) - 尽管解决方案可以处理他的问题?更多涉及的例子绝对是首选。
我通常做的是:
<form>
<label for="param_1">Param 1</label>
<input id="param_1" name="param_1"><br />
<label for="param_2">Param 2</label>
<input id="param_2" name="param_2"><br />
</form>
在 CSS 中:
label,input { display: block; float: left; margin-bottom: 1ex; }
input { width: 20em; }
label { text-align: right; width: 15em; padding-right: 2em; }
br { clear: left; }
当然,您必须根据实际数据定义宽度:-)
- 首先,给出标签和输入
display: block
,以便可以为其分配大小并排列。
- 他们都得到
float: left
因为 Explorer 的做法有点不同
- 很好地设置标签格式
- 破解
br
这样就有一个clear: left
某处,我记得将其放在标签上在某些浏览器上不起作用。
另外,随着br
即使浏览器不支持 CSS,你也会得到很好的格式:-)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)