我在<table>
内有一个<div>
,下面的样式,桌子没有居中,为什么?
<div>
中的所有内容都不应该像我在CSS中设置的那样格式化吗?
HTML
<div>
<table></table>
</div>
CSS
div{
border: 5px solid white;
border-radius: 5px;
margin: auto;
text-align: center;
}
答案 0 :(得分:12)
您在div上设置了margin: auto
,因此div将居中...但是您也将div保留为width: auto
,因此它将与其容器一样宽(一旦您考虑了边距,填充和边框)。
您在div上设置了text-align: center
,因此div的内嵌子项将居中,但该表不是内联的,因此它不会受到影响(某些表单元格内容可能是,取决于继承)。
如果你想让桌子居中,那么你必须让桌子居中。
table { margin: auto; }
答案 1 :(得分:3)
div
元素是块级的,块级元素占据其父容器的整个空间,因此默认情况下margin: auto;
不会产生任何效果。 text-align: center;
仅适用于内联级别的子级,但table
不是其中之一。
您可以将table
设置为内嵌表display: inline-table;
,因此包含该表格的所有内联子项将在父text-align: center;
上以div
为中心。
div {
border: 1px solid red;
text-align: center;
}
table {
border: 1px solid blue;
display: inline-table;
}
<div>
<table>
<tr>
<td>Hello world</td>
</tr>
</table>
</div>
答案 2 :(得分:2)
答案 3 :(得分:0)
只需在表格中添加保证金,如下所示。当您使用margin:auto
table
时align
table
center
div
<div>
。然而,当您在browser
上使用它时,它会将其与table{
margin :auto;
}
的中心对齐。
div{
margin:auto /*No need over-here*/
}
而不是div,
print "This is my string with a number {}, cool!".format(42)
答案 4 :(得分:-1)
试试这个:
div{
width: 80%; /* try different value for this */
margin: auto;
}
table{
margin: auto;
}