HTML 值为空时的间距
HTML spacing if value is empty
我在格式化 HTML 页面时遇到困难。
正如您从源代码中看到的那样,它是一个 table,其中每一行都包含由我的网络应用程序动态填充的格式化记录列表。
如果其中一列有空值,我想保留行的格式,所以我基本上应该添加足够的空格或考虑一个 HTML 具有文本值的确切大小的块。
好处是每个值都有固定的字符长度,所以它应该有优势。
我考虑过创建一个跨度,但它不支持宽度属性,我应该将样式更改为 display:block
,但在我看来,它变得有点太棘手了,因为我想要一个简单而巧妙的解决方案。
我附上页面的源代码和我现在得到的输出。
<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1252"></head>
<body>
<table>
<tr><td style="font-size: 11px; color: #000000; font-family: Verdana; border-bottom: #ff0000 1px solid;">
<table>
<tr><td>test1:</td></tr>
<tr><td>
<ul>
<li>FIELD1:;, FIELD2: <b>443</b>, FIELD3: <b>191,51</b></li>
<li>FIELD1: <b>1000101</b>, FIELD2: <b>442</b>, FIELD3: <b>43,2</b></li><li>FIELD1: <b>1000176</b>, FIELD2:, FIELD3: <b>36</b></li>
</ul></td></tr>
</table>
</body>
</html>
你的问题是你的语义搞砸了。您尝试构建一个 table,但随后将整个 table 内容放入 1 个单元格中,然后尝试使用列表在其中模拟 table。
只需将 1 个字段放入 1 个 table 单元格中,它们就会很容易组合在一起。另外:"test1" 在这种情况下是 table 标题或标题。
第一个变体假定字段名称可能因行而异。如果不是这种情况,则它们属于 table header。
table#test1 tbody tr th {
font-weight: normal;
text-align: left;
}
table#test1 tbody tr td {
font-weight: bold;
text-align: right;
}
table#test2 thead tr td {
font-weight: bold;
}
table#test2 tbody tr td {
text-align: right;
}
<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
</head>
<body>
<table id="test1">
<caption>test1</caption>
<tbody>
<tr><th>FIELD1:</th><td></td><th>FIELD2:</th><td>443</td><th>FIELD3:</th><td class="value">191,51</tr>
<tr><th>FIELD1:</th><td class="value">1000101</td><th>FIELD2:</th><td class="value">442</td><th>FIELD3:</th><td class="value">43,2</tr>
<tr><th>FIELD1:</th><td class="value">1000176</td><th>FIELD2:</th><td class="value"></td><th>FIELD3:</th><td class="value">36</tr>
</tbody>
</table>
<table id="test2">
<caption>test2</caption>
<thead>
<tr><td>FIELD1</td><td>FIELD2</td><td>FIELD3</tr>
</thead>
<tbody>
<tr><td></td><td>443</td><td>191,51</tr>
<tr><td>1000101</td><td>442</td><td>43,2</tr>
<tr><td>1000176</td><td></td><td>36</tr>
</tbody>
</table>
</body>
</html>
我在格式化 HTML 页面时遇到困难。
正如您从源代码中看到的那样,它是一个 table,其中每一行都包含由我的网络应用程序动态填充的格式化记录列表。 如果其中一列有空值,我想保留行的格式,所以我基本上应该添加足够的空格或考虑一个 HTML 具有文本值的确切大小的块。
好处是每个值都有固定的字符长度,所以它应该有优势。
我考虑过创建一个跨度,但它不支持宽度属性,我应该将样式更改为 display:block
,但在我看来,它变得有点太棘手了,因为我想要一个简单而巧妙的解决方案。
我附上页面的源代码和我现在得到的输出。
<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1252"></head>
<body>
<table>
<tr><td style="font-size: 11px; color: #000000; font-family: Verdana; border-bottom: #ff0000 1px solid;">
<table>
<tr><td>test1:</td></tr>
<tr><td>
<ul>
<li>FIELD1:;, FIELD2: <b>443</b>, FIELD3: <b>191,51</b></li>
<li>FIELD1: <b>1000101</b>, FIELD2: <b>442</b>, FIELD3: <b>43,2</b></li><li>FIELD1: <b>1000176</b>, FIELD2:, FIELD3: <b>36</b></li>
</ul></td></tr>
</table>
</body>
</html>
你的问题是你的语义搞砸了。您尝试构建一个 table,但随后将整个 table 内容放入 1 个单元格中,然后尝试使用列表在其中模拟 table。
只需将 1 个字段放入 1 个 table 单元格中,它们就会很容易组合在一起。另外:"test1" 在这种情况下是 table 标题或标题。
第一个变体假定字段名称可能因行而异。如果不是这种情况,则它们属于 table header。
table#test1 tbody tr th {
font-weight: normal;
text-align: left;
}
table#test1 tbody tr td {
font-weight: bold;
text-align: right;
}
table#test2 thead tr td {
font-weight: bold;
}
table#test2 tbody tr td {
text-align: right;
}
<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
</head>
<body>
<table id="test1">
<caption>test1</caption>
<tbody>
<tr><th>FIELD1:</th><td></td><th>FIELD2:</th><td>443</td><th>FIELD3:</th><td class="value">191,51</tr>
<tr><th>FIELD1:</th><td class="value">1000101</td><th>FIELD2:</th><td class="value">442</td><th>FIELD3:</th><td class="value">43,2</tr>
<tr><th>FIELD1:</th><td class="value">1000176</td><th>FIELD2:</th><td class="value"></td><th>FIELD3:</th><td class="value">36</tr>
</tbody>
</table>
<table id="test2">
<caption>test2</caption>
<thead>
<tr><td>FIELD1</td><td>FIELD2</td><td>FIELD3</tr>
</thead>
<tbody>
<tr><td></td><td>443</td><td>191,51</tr>
<tr><td>1000101</td><td>442</td><td>43,2</tr>
<tr><td>1000176</td><td></td><td>36</tr>
</tbody>
</table>
</body>
</html>