本文介绍纯 css 方案,无需 javascript,通过 :nth-child()、:nth-of-type() 等伪类选择器精准定位表格中任意 <th> 或 <td> 单元格,并为其应用独立样式(如字体、背景色等)。
本文介绍纯 css 方案,无需 javascript,通过 :nth-child()、:nth-of-type() 等伪类选择器精准定位表格中任意 <th> 或 <td> 单元格,并为其应用独立样式(如字体、背景色等)。
在 HTML 表格中,若需为某一行中的若干连续或离散单元格单独设置样式(例如修改字体、背景色、文字颜色等),最规范、语义清晰且无需 JS 的方式是使用 CSS 伪类选择器。核心在于理解表格结构层级:<table> → <tr>(行)→ <th>/<td>(单元格),再结合 :nth-of-type(n) 或 :nth-child(n) 精确定位。
tr:nth-of-type(3) td:nth-of-type(2) 表示「第 3 行中第 2 个 <td>」;相比 :nth-child(),:nth-of-type() 不受同级其他元素(如 <th> 混排)干扰,更适合表格场景。
以下为完整可运行示例(已修正原始代码中的结构问题:<html> 标签不应在 <body> 内,且 <body> 应位于 <html> 下):
<!DOCTYPE html><html><head><style> table, th, td { border: 3px solid white; border-collapse: collapse; } th, td { padding: 10px; } body { color: white; background-color: black; } /* 修改第3行中第2–7个td的样式 */ tr:nth-of-type(3) td:nth-of-type(2), tr:nth-of-type(3) td:nth-of-type(3), tr:nth-of-type(3) td:nth-of-type(4), tr:nth-of-type(3) td:nth-of-type(5), tr:nth-of-type(3) td:nth-of-type(6), tr:nth-of-type(3) td:nth-of-type(7) { background-color: #ff6b6b; font-family: "Comic Sans MS", cursive, sans-serif; font-weight: bold; } /* 可选:为第1行的第4个th加特殊样式 */ tr:nth-of-type(1) th:nth-of-type(4) { background-color: #4ecdc4; color: #1a1a1a; }</style></head><body> <table> <tr> <th>dummy</th> <th>dummy</th> <th>dummy</th> <th>dummy</th> <th>dummy</th> <th>dummy</th> <th>dummy</th> <th>dummy</th> </tr> <tr> <td>dummy</td> <td>dummy</td> <td>dummy</td> <td>dummy</td> <td>dummy</td> <td>dummy</td> <td>dummy</td> <td>dummy</td> </tr> <tr> <td>dummy</td> <!-- Part need to change style from this line --> <td>dummy</td> <td>dummy</td> <td>dummy</td> <td>dummy</td> <td>dummy</td> <td>dummy</td> <!-- to this line --> <td>dummy</td> </tr> </table></body></html>
掌握 :nth-of-type() 是表格精细化样式的基石——它让 CSS 不仅能“全局统一样式”,更能“按需精准着色”,真正实现结构与表现的解耦。