- jquery/javascript or css - css for nth child only when display is visible
- $('.filterElement:visible:nth-child(3n+1)').addClass('firstInRow');
- .container {float:left;}
- .row { display:block; border: 1px solid black; padding:10px; width:100px;}
- .row.odd {border: 2px dotted red;background-color:yellow;}
- .hidden {visibility:hidden;display:none;}
- <div class="container">
- <div id="1" class="row">Highlighted</div>
- <div id="2" class="row"></div>
- <div id="3" class="row hidden">I shouldn't be highlighted</div>
- <div id="4" class="row"></div>
- <div id="5" class="row">Highlighted</div>
- <div id="6" class="row"></div>
- <div id="7" class="row hidden">I shouldn't be highlighted</div>
- <div id="8" class="row"></div>
- <div id="9" class="row">Highlighted</div>
- <div id="10" class="row"></div>
- <div id="11" class="row"></div>
- </div>
- <div class="container">
- <div id="1" class="row">Highlighted</div>
- <div id="2" class="row"></div>
- <div id="3" class="row "></div>
- <div id="4" class="row">Highlighted</div>
- <div id="5" class="row"></div>
- <div id="6" class="row"></div>
- <div id="7" class="row">Highlighted</div>
- <div id="8" class="row"></div>
- <div id="9" class="row"></div>
- <div id="10" class="row">Highlighted</div>
- <div id="11" class="row"></div>
- </div>
- $('.row:visible').each(function(idx) {
- $(this).toggleClass('odd',(idx%3 == 0));
- });
- .element { margin-left: 10px; }
- .element:nth-child(3n+1){ margin-left: 0; }
- .element.firstInRow { margin-left:0 !important; }
- .element.std { margin-left:15px !important; }
- .filterButton.click(function(){
- $('.element').removeClass('firstInRow, std');
- if ($('.element').hasClass('.hideMe')){
- $(this).hide();
- }
- setMargins();
- });
- function setMargins(){
- $('.element:visible').each(function(i){
- if (i%3 == 0){
- $(this).addClass('firstInRow');
- } else {
- $(this).addClass('std');
- }
- });
- }