2016-04-13 3 views
2

Wie kann ich ein Element nicht vom Zählen ausschließen, wenn es auf display: none; gesetzt ist?Versteckte Elemente mit CSS-Zählern zählen

body { 
 
    counter-reset: section; 
 
} 
 
.variant--name::before { 
 
    counter-increment: section; 
 
    content: counter(section) ": "; 
 
} 
 

 
.hidden { 
 
    display: none; 
 
}
<div class="variant--group"> 
 
<h3 class="variant--name">variant</h3> 
 
</div> 
 

 
<div class="variant--group hidden"> 
 
<h3 class="variant--name">variant</h3> 
 
</div> 
 

 
<div class="variant--group"> 
 
<h3 class="variant--name">variant</h3> 
 
</div>

+0

Sie können einen Blick haben bei dieser Antwort - http://stackoverflow.com/questions/25766110/css-counter-on-hidden-submenu. Sie können den CSS-Zähler nicht mit 'display: none' anzeigen lassen ([this] (https://www.w3.org/TR/CSS2/generate.html) ist eine alte Spezifikation, aber Sie können dies in Abschnitt sehen 12.4.3). Sie müssen Elemente auf andere Weise verstecken. – Harry

Antwort

2

Als .hidden gibt das Element display: none aus diesem Grunde wird der Zähler würde nicht als effektiv nicht in dem dom arbeiten.

Ich würde vielleicht eine Klasse hinzufügen (nur für den Fall .hidden sonst wo nötig display: none zu sein) von:

.hiddenButAccessible { 
    position: absolute; 
    left: -9999px; 
    max-height: 0px; 
    overflow: hidden; 
    opacity: 0; 
} 

hier ist ein funktionierendes Beispiel:

http://codepen.io/sonnyprince/pen/oxqzzL