如何为HTML表格添加内部线条并隐藏外部边框?
实现表格隐藏外边框、仅显示内部水平线的方法
首先你代码里存在嵌套table标签的问题(外层的<table class="table">和PHP输出的<table>),这会导致结构混乱,先把这个问题修正。之后通过以下CSS配置就能实现隐藏外边框、仅保留内部水平线的效果:
核心CSS代码
table { border-collapse: collapse; /* 合并边框,避免出现双线条 */ border: none; /* 彻底去掉表格外边框 */ } tr { border-bottom: 1px solid #17a2b8; /* 给每行添加底部边框,形成内部水平线 */ } /* 可选:去掉最后一行的底部边框,避免表格底部多一条线 */ tr:last-child { border-bottom: none; } th, td { border-left: none; /* 移除单元格左右边框 */ border-right: none; padding: 8px; /* 可选:增加内边距提升内容可读性 */ }
修改后的完整代码
<?php $file = fopen("Book1.csv","r"); $data = array(); while($row = fgetcsv($file)) { $data[] = $row; // 获取所有数据 } if($data){ $n_columns = count($data[0]); // 获取列数 } echo '<table>'; // 移除inline的border属性,用CSS统一控制样式 for ($col = 0; $col < $n_columns; $col++) { echo '<tr>'; foreach ($data as $row_k => $row) { if ($row_k == 0) { echo '<th>'; } else { echo '<td>'; } echo $row[$col] ?? ''; if ($row_k == 0) { echo '</th>'; } else { echo '</td>'; } } echo '</tr>'; } echo '</table>'; ?> <style type="text/css"> table { border-collapse: collapse; border: none; } tr { border-bottom: 1px solid #17a2b8; } tr:last-child { border-bottom: none; } th, td { border-left: none; border-right: none; padding: 8px; } </style>
效果说明
border-collapse: collapse让单元格边框合并,避免出现多余的间隙- 给每个
<tr>设置底部边框,就能形成行与行之间的分隔线,若你的表格有9行数据,正好会显示8条内部水平线 - 移除表格外边框和单元格左右边框,只保留行分隔线,完全符合你的需求
内容的提问来源于stack exchange,提问作者user19380275
相关产品推荐
相关产品推荐

