Wiki-Quellcode von Nummerierung wiederholbarer Elemente
Verstecke letzte Bearbeiter
author | version | line-number | content |
---|---|---|---|
![]() |
8.2 | 1 | Manchmal ist es sinnvoll, bei dynamischen Elementen eine fortlaufende Nummer anzuzeigen. Statt die Nummerierung im {{smallcaps}}Html{{/smallcaps}} fest zu hinterlegen, können wir sie dynamisch durch {{smallcaps}}Css{{/smallcaps}} hinzufügen. |
![]() |
1.1 | 2 | |
![]() |
12.2 | 3 | {{figure image="example_css_counter_repeatable_elements_de.png" width="600"}} |
![]() |
8.2 | 4 | Anzeige einer fortlaufenden Nummer an wiederholbaren Elementen. Unter den Grundeigeschaften wird das Element wiederholbar gemacht. Im CSS-Bereich wird die Nummerierung mittels CSS-Zählern hinzugefügt. |
![]() |
1.1 | 5 | {{/figure}} |
6 | |||
![]() |
8.2 | 7 | == Änderungen im Formular == |
![]() |
1.1 | 8 | |
![]() |
8.4 | 9 | Zuerst fügen wir im {{designer case="dat"/}} einige Formularelement zum Formular hinzu. Nun schalten wie die Formularelemente wiederholbar. Dazu setzen wir das Häkchen bei der Einstellung im {{designer/}} unter [[Grundeigenschaften>>doc:Formcycle.FormDesigner.ElementProperties.BaseProperties]]. |
![]() |
1.1 | 10 | |
![]() |
8.2 | 11 | == Änderungen im CSS-Bereich == |
![]() |
1.1 | 12 | |
![]() |
8.5 | 13 | Im [[{{smallcaps}}Css{{/smallcaps}}-Bereich>>doc:Formcycle.FormDesigner.CodingPanel.CSSTab.WebHome]] können wir nun die Nummerierung vornehmen. Dies geschieht mit den {{smallcaps}}Css{{/smallcaps}}-Eigenschaften //counter-reset// sowie //counter-increment//. Im {{smallcaps}}Css{{/smallcaps}} kann es einen oder mehrere Zähler geben. Jeder Zähler hat einen Namen und einen aktuellen Zahlenwert. Und wann zählt ein Zähler hoch? Das funktioniert wie folgt: |
![]() |
1.1 | 14 | |
![]() |
8.2 | 15 | * Der Anfangswert ist 0. |
16 | * Nun wird die HTML-Struktur des Formulars von oben nach unten durchgegangen. | ||
17 | * Wird auf ein Element mit der {{smallcaps}}Css{{/smallcaps}}-Eigenschaft //counter-reset// getroffen, wird der Zähler auf den angegebenen Wert zurück gesetzt. | ||
18 | * Wird auf ein Element mit der {{smallcaps}}Css{{/smallcaps}}-Eigenschaft //counter-increment// getroffen, wird der Zähler um eins erhöht. | ||
![]() |
1.1 | 19 | |
![]() |
8.2 | 20 | Das können wir dazu nutzen, den Zähler bei jedem wiederholten Element zu erhöhen. Im Beschriftungstext des Eingabefeld ist es uns so möglich, mittels des Pseudo-Elements //before// und //counter(...)// den aktuellen Wert des Zählers einzufügen. |
21 | |||
22 | Bevor wir das {{smallcaps}}Css{{/smallcaps}} schreiben, müssen wir noch zwei Sachen wissen. Jedes Formularelement befindet sich in einem Container (div) mit der Klasse //xm-item-div//. Dieser Container hat den Namen des Formularlements im Attribut //xn//. Zudem liegt jedes wiederholte Element nochmal in einem eigenen Container mit der Klasse //dynamic-row//. | ||
23 | |||
![]() |
1.1 | 24 | {{code language="css"}} |
![]() |
8.6 | 25 | /* Select the container of repeatable elements */ |
26 | /* And reset the counter here */ | ||
![]() |
8.2 | 27 | .xm-item-div[data-xm-dynamic] { |
![]() |
14.1 | 28 | counter-reset: counter; |
![]() |
1.1 | 29 | } |
30 | |||
![]() |
8.6 | 31 | /** For each repeated element, increment the counter by one */ |
![]() |
8.2 | 32 | .dynamic-row { |
![]() |
14.1 | 33 | counter-increment: counter; |
![]() |
1.1 | 34 | } |
35 | |||
![]() |
8.6 | 36 | /* Select the label text of each for element */ |
![]() |
8.2 | 37 | .dynamic-row label > p::before, |
38 | .dynamic-row legend::before { | ||
![]() |
8.6 | 39 | /** Add the number in front of the label */ |
![]() |
17.1 | 40 | /* Example for using letters instead: |
41 | content: counter(counter, lower-alpha); */ | ||
![]() |
14.1 | 42 | content: counter(counter) ". "; |
![]() |
8.6 | 43 | /** And make it blue */ |
![]() |
1.1 | 44 | color: blue; |
45 | } | ||
46 | {{/code}} | ||
47 | |||
![]() |
16.1 | 48 | Sie können die Nummerierung entweder dem LABEL-Element oder dem P-Element innerhalb des Labels hinzufügen. Beim Hinzufügen zum P-Element, wie im obigen Beispiel, wird die Nummerierung links von der Beschriftung angezeigt. Andernfalls erscheint es auf dem Label. Weitere verfügbare Typen für Zähler sind: decimal, decimal-leading-zero, lower-roman, upper-roman, lower-greek, lower-latin, upper-latin, armenian, georgian, lower-alpha, upper-alpha. |