HTMLrowspan与css元素冲突
我想我的代码会不言自明。
<!DOCTYPE HTML>
<html>
<head>
<title> </title>
<style>
* {
margin: 0;
padding: 0;
}
:root {
--color1: #c83349;
--color2: #fff;
}
table {
border-spacing: 0;
border: 1px solid purple;
margin: 10px auto;
text-align: center;
width: 300px;
border-bottom: none;
}
tr,
th,
td {
width: 100px;
height: 100px;
}
th,
td:not(:nth-child(2)) {
background: repeating-linear-gradient(45deg, var(--color2) 25%, var(--color2) 50%, var(--color1) 50%, var(--color1) 75%);
}
tr:last-child td {
border-bottom: 1px solid purple;
}
td:nth-child(2) {
border: 1px solid purple;
border-bottom: none;
}
</style>
</head>
<body>
<table>
<tr>
<th>1</th>
<th>2</th>
<th>3</th>
</tr>
<tr>
<td>4</td>
<td rowspan=2>5</td>
<td>6</td>
</tr>
<tr>
<td>7</td>
<td>8</td>
</tr>
</table>
</body>
</html>
回答
使用 rowspan 属性作为选择器而不是 nth-child
* {
margin: 0;
padding: 0;
}
:root {
--color1: #c83349;
--color2: #fff;
}
table {
border-spacing: 0;
border: 1px solid purple;
margin: 10px auto;
text-align: center;
width: 300px;
border-bottom: none;
}
tr, th, td {
width: 100px;
height: 100px;
}
th,
td:not([rowspan]) {
background: repeating-linear-gradient(45deg, var(--color2) 25% 50%, var(--color1) 50% 75%);
}
tr:last-child td {
border-bottom: 1px solid purple;
}
td[rowspan] {
border: 1px solid purple;
border-bottom: none;
}
<table>
<tr>
<th>1</th>
<th>2</th>
<th>3</th>
</tr>
<tr>
<td>4</td>
<td rowspan=2>5</td>
<td>6</td>
</tr>
<tr>
<td>7</td>
<td>8</td>
</tr>
</table>