我有一个包含这样一个表的文档:
<table>
<tr>
<td>
Word
</td>
<td>
Definition
</td>
</tr>
<tr>
<td>
Word
</td>
<td>
Definition
</td>
</tr>
<tr>
<td>
Word
</td>
<td>
Definition
</td>
</tr>
</table>
使用CSS,我需要将所有单元格设置为50%宽度,左侧“列”中的文本右对齐,左列中的文本左对齐。我尝试了很多不同的选择,例如width: 50%; text-align: left
,但结果总是不寻常的。结果应如下所示:
_________________________
| word | definition |
|____________|____________|
| word | definition |
|____________|____________|
如何在CSS中的两列表中设置等宽单元格,并将所有内容对齐到中间?
答案 0 :(得分:92)
您可以在桌面上设置table-layout: fixed;
。使用此选项可以覆盖浏览器的自动列大小调整。然后您的浏览器将第一列的列宽设置为all。
答案 1 :(得分:14)
该表应具有width: 100%
属性。
的 See example here 强>
table{
width: 100%;
border-collapse:collapse;
}
td{
width: 50%;
text-align: left;
border: 1px solid black;
}
关于文本对齐,你说了两件不同的事情:
使用CSS,我需要将所有单元格设置为50%宽度,文本为 左边的#34;列&#34;在左列中右对齐和文本 左对齐。
然后
如何在CSS中的两列表中设置等宽单元格,并将所有内容对齐到中间?
如果第一个符合您的要求并且您无法更改HTML,则可以使用td:first-child
以不同的方式设置第一列的样式。
如果第二个是您的最佳选择,只需将text-align
值更改为center
。
答案 2 :(得分:4)
在我的一个项目中,我遇到了同样的问题,但是当我结合以上两个解决方案时,问题就得到了解决(感谢他们)。这是我的代码段:
.Table{
width: 100%;
table-layout: fixed;
}