我有一个以body html为中心的800px宽度的表格。在这张桌子里面我想要一个DIV,它必须有10px margin-left和10px margin-right,其余的是100%宽度的表。
尝试使用div宽度100%并向左和向右赋予边距它看起来不太好。
再次测试我只是给它左右边距而没有给它一个宽度,看起来像在Chrome上DIV自动调整到整个宽度并给出左右边距完美且工作正常。
问题是它是否真的适用于所有浏览器,或者我只是幸运地使用Chrome。这样做的正确形式是什么?
因为这个表是我布局的一部分,所以我希望它里面有一个div,就像下面的例子一样:
<!doctype html><html lang="en">
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Testing Width</title></head><body>
<table width="800" border="0" align="center" cellpadding="0" cellspacing="0">
<tr><td align="center" valign="top">
<div style="background-color:#000000; color:#cccccc; margin-left:10px; margin-right:10px;">
Testing auto-size of divs by default.
Because the table is 800 px and I am not giving the div
a width does it auto-resize 100% width
less 10px left and 10px right margin?
That means also that it alto-resizes to 780px?
</div>
这不是代码审查。我需要帮助才能为其提供正确的宽度和边距,并使其适用于所有浏览器
编辑:
如果表格宽度为80%并且我需要div为100%宽度加上左右10px的边距怎么办?
答案 0 :(得分:1)
您在代码部分正确地执行了此操作,但为了便于开发和维护,您可以使用纯粹的基于CSS的表。此外,由于不推荐使用许多表属性,例如valign
和border
,因此您最好使用标准的CSS样式。 HTML代码:
<div class="table">
<div class="tr">
<div class="td">
<div class="column">
Testing auto-size of divs by default.
Because the table is 800 px and I am not giving the div
a width does it auto-resize 100% width
less 10px left and 10px right margin?
That means also that it alto-resizes to 780px?
</div>
</div>
</div>
</div>
相关的CSS代码:
.table {
display: table;
width: 800px;
vertical-align: top;
padding: 0px;
border-spacing: 0px;
margin-left: auto;
margin-right: auto;
}
.tr {
display: table-row;
}
.td {
display: table-cell;
vertical-align: top;
margin-left: auto;
margin-right: auto;
}
.column {
margin-left: 10px;
margin-right: 10px;
}
您可以阅读有关使用基于CSS的表的原因以及如何从here调整它们。