Чтобы таблица была размытой только при наведении, вы должны использовать селектор table:hover
.Теперь, поскольку фильтр, примененный к элементу, также применяется к его дочерним элементам, и поскольку вы хотите, чтобы одна из ячеек (который является дочерним элементом) не имел этого фильтра, вы не можете применить его ко всей таблице.Вместо этого вам нужно применить его к каждой отдельной ячейке внутри таблицы накрытия, как вы это делали, но с добавленным псевдоселектором: table:hover td
.
Затем, чтобы удалить фильтр из ячейки наведения, выестественно применил бы фильтр к следующему селектору: td:hover
.Проблема здесь в том, что вы уже нацеливаетесь на все ячейки таблицы с предыдущим селектором (table:hover td
), и этот первый селектор имеет более высокую специфичность (12), чем второй (11).Чтобы победить второй селектор, он должен иметь по крайней мере ту же специфичность и располагаться после первого.
Чтобы увеличить его специфичность на 1, вы можете просто добавить table
, за которым следует пробел передэтогоЭто означает, что он нацелен на ячейку в таблице, которая вам нужна.
В результате вы получите следующий рабочий код:
table:hover td { /* Specificity 12 */
filter: blur(1px);
}
table td:hover { /* Also specificity 12, but placed after, so it wins */
filter: blur(0px);
}
<table>
<tr>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
</tr>
</table>
Помогает ли это?