У меня есть таблица с n строк. На этих п строк мне нужно установить некоторые CSS стиль, следуя этим правилам:Селектор CSS со многими условиями (nth-child, нет и видимость)
- СМЧ следует применять только на нечетных строках
- СМЧ НЕ следует применять на первой и последней строки (или эти строки с
.excludeme
класса) - СМЧ должны применяться только на видимых строк
HTML
<table>
<tr class="excludeme"><td>first</td></tr>
<tr><td>Hello</td></tr>
<tr><td>Hello</td></tr>
<tr class="showhide"><td>show/hide</td></tr>
<tr><td>Hello</td></tr>
<tr><td>Hello</td></tr>
<tr><td>Hello</td></tr>
<tr><td>Hello</td></tr>
<tr class="showhide"><td>show/hide</td></tr>
<tr class="showhide"><td>show/hide</td></tr>
<tr><td>Hello</td></tr>
<tr class="excludeme"><td>last</td></tr>
</table>
CSS
.showhide{
display: none;
}
table tr:nth-child(odd):not(.excludeme){
background: orange;
}
JS
//--- #test is a button
$("#test").on("click", function(){
$(".showhide").toggle();
});
вы можете найти скрипку HERE
Как вы можете видеть, когда некоторые строки являются Hidde, то even/odd
окраска не соблюдается. Я пробовал этот селектор
table tr:nth-child(odd):not(.excludeme):visible{
....
}
но не работает .. Можно ли это сделать только с помощью CSS?
Спасибо
Это не возможно с помощью CSS, вы для этого нужно использовать JavaScript. –
Вместо того, чтобы спрятать элемент, попробуйте удалить/создать их (элементы '.showhide'). – Vucko
Полезная аналогичная тема: http://stackoverflow.com/a/8539107/1725764 –