У меня есть элемент <td>
с небольшим отступом, и я хотел бы заштриховать всю ячейку таблицы, когда ее непосредственный дочерний элемент - элемент <mark>
.
Я используюУценка для создания самой таблицы, поэтому просто добавить класс, такой как <td class="highlight">
, на самом деле не вариант.
Базовая настройка таблицы
Вот базовая настройка таблицы
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
</tr>
</thead>
<tbody>
<tr>
<td>Ranger</td>
<td>Dog</td>
</tr>
<tr>
<td><mark>Frida <br/> Kahtlo</mark></td>
<td><mark>Cat</mark></td>
</tr>
</tbody>
</table>
С некоторыми простыми CSS
table {
border-collapse: collapse;
}
table td, table th {
border: 1px solid #ddd;
padding: 8px;
position: relative;
}
Попытка # 1
Одна идея состояла в том, чтобы абсолютно позиционировать элемент <mark>
и прикрепить его ко всем четырем сторонам:
td > mark {
position: absolute;
top: 0;
right: 0;
left: 0;
bottom: 0;
padding: 8px;
}
Однако, не представляется возможным установить родительскую высоту родительского элемента для абсолютно позиционированного дочернего элемента , поэтому содержимое переполняет <td>
table {
border-collapse: collapse;
}
table td, table th {
border: 1px solid #ddd;
padding: 8px;
position: relative;
}
td > mark {
position: absolute;
top: 0;
right: 0;
left: 0;
bottom: 0;
padding: 8px;
}
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
</tr>
</thead>
<tbody>
<tr>
<td>Ranger</td>
<td>Dog</td>
</tr>
<tr>
<td><mark>Frida <br/> Kahtlo</mark></td>
<td><mark>Cat</mark></td>
</tr>
</tbody>
</table>
Попытка # 2
Другая идея состояла в том, чтобы отменить заполнение с отрицательным полем, как это:
td > mark {
display: block;
margin: -8px;
padding: 8px;
}
Однако, если в другой ячейке есть перенос строки, я не могу заставить дочерний элемент занимать всю доступную высоту
table {
border-collapse: collapse;
}
table td, table th {
border: 1px solid #ddd;
padding: 8px;
position: relative;
}
td > mark {
display: block;
margin: -8px;
padding: 8px;
}
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
</tr>
</thead>
<tbody>
<tr>
<td>Ranger</td>
<td>Dog</td>
</tr>
<tr>
<td><mark>Frida <br/> Kahtlo</mark></td>
<td><mark>Cat</mark></td>
</tr>
</tbody>
</table>
В: Есть ли другие способы сделать это возможным?