如何在PHP生成的HTML表格中跳过空行
问题根源
表格出现多余空行、渲染不符合预期,完全是HTML表格结构写法不规范导致的,具体错误点:
<thead>表头标签被错误嵌套在<tr>行标签内部,违反HTML表格语法规则- 表格内部直接插入了
<br>标签,浏览器会将这类不属于表格合法子元素的标签解析为空白行 - 联赛名称对应的
<th>标签没有包裹在<tr>行标签内,浏览器会自动为这些游离的标签补全缺失的行结构,额外生成空行
修正方案
- 调整
<thead>位置,让它直接包裹表头行,不要嵌在<tr>内部 - 删除表格内部所有多余的
<br>标签 - 所有
<th>、<td>单元格标签必须放在<tr>行标签内部 - 如果是对接SQL源数据动态渲染,遍历数据时增加判断:当前行所有字段都为空时直接跳过,不生成对应的
<tr>节点即可自动过滤空行
修正后可直接运行的代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <link rel="stylesheet" href="Style.css"> </head> <body> <table class="Fixtures" border="1"> <thead> <tr> <th>League / Match</th> </tr> </thead> <tbody> <tr> <th class="League">Premier League</th> </tr> <tr> <td>Arsenal - Man united</td> </tr> <tr> <td>Chelsea - Newcastle</td> </tr> <tr> <th class="League">Spain La Liga</th> </tr> <tr> <td>Barcelona - Real Madrid</td> </tr> <tr> <td>Sevilla - Real Sociedad</td> </tr> <tr> <td>Alaves - Cadiz</td> </tr> <tr> <th class="League">Allsvenskan</th> </tr> <tr> <td>Elfsborg - Varberg</td> </tr> <tr> <td>Kalmar - Varnamo</td> </tr> <tr> <td>Malmo FF - Helsingborg</td> </tr> </tbody> </table> </body> </html>
运行上述代码即可得到无空行、按联赛分组展示的预期对阵表效果。
内容的提问来源于stack exchange,提问作者Woza Station Namibia
相关产品推荐
相关产品推荐

