Verständnisproblem mit ::before
Linuchs
- css
0 Martl0 Auge0 Gunnar Bittersmann0 Auge0 Gunnar Bittersmann0 Auge0 woodfighter0 woodfighter
Hallo,
eine umfangreiche Webseite soll beim Drucken vor jedem Kapitel einen Seitenumbruch erhalten und auch die Überschrift der Webseite.
Dieses CSS habe ich versucht:
@media print {
h2, h3 {
page-break-before: always;
}
h3::before {
content: "Sonntag, 2. August 2016<br>";
}
Doch zwei Dinge verstehe ich nicht. Erstens wird der Text IN das h3-Tag eingegliedert und nicht davor. Das heisst, es hat das Layout vom h3. Und zweitens wird das <br> nicht ausgeführt, sondern mit vier Zeichen gedruckt.
Mit dem erstens kann ich ja leben, aber wie macht man da einen Zeilen-Umbruch?
Linuchs
Hallo Linuchs,
h3::before { display: block; content: "Sonntag, 2. August 2016"; }
Grüße, Martl
Hallo
Dieses CSS habe ich versucht:
@media print { h2, h3 { page-break-before: always; } h3::before { content: "Sonntag, 2. August 2016<br>"; }
Doch zwei Dinge verstehe ich nicht. Erstens wird der Text IN das h3-Tag eingegliedert und nicht davor. Das heisst, es hat das Layout vom h3.
Works as intended.
Und zweitens wird das <br> nicht ausgeführt, sondern mit vier Zeichen gedruckt.
Es wäre mir neu, dass in Pseudoelementen HTML-Elemente notiert werden dürfen.
Mit dem erstens kann ich ja leben, aber wie macht man da einen Zeilen-Umbruch?
Der Punkt „Beachten Sie“ im oben verlinkten Dokuartikel lässt mich vermuten, dass man mit display
herumspielen kann.
Tschö, Auge
@@Linuchs
Dieses CSS habe ich versucht:
@media print { h2, h3 { page-break-before: always; } h3::before { content: "Sonntag, 2. August 2016<br>"; }
Doch zwei Dinge verstehe ich nicht. Erstens wird der Text IN das h3-Tag eingegliedert und nicht davor.
Works as designed:
“[T]he :before
and :after
pseudo-elements specify the location of content before and after an element's document tree content.” [CSS 2.1] (Hervorhebung von mir)
Vor bzw. nach dem Element-inhalt, nicht vor bzw. nach dem Element.
Und zweitens wird das <br> nicht ausgeführt, sondern mit vier Zeichen gedruckt.
Das wundert mich jetzt. Ich hätte erwartet, dass "<br>" (als String) gedruckt erscheint.
Mit dem erstens kann ich ja leben
Du kannst aber auch Pseudoelemente stylen.
aber wie macht man da einen Zeilen-Umbruch?
Indem du das Unicode-Steuerzeichen für Zeilenumbruch verwendest – CSS-gerecht escapet. Im nächsten Abschnitt:
“Authors may include newlines in the generated content by writing the "\A" escape sequence in one of the strings after the 'content' property.” [CSS 2.1]
Aber: “This inserted line break is still subject to the 'white-space' property.”
LLAP 🖖
Hallo
Und zweitens wird das <br> nicht ausgeführt, sondern mit vier Zeichen gedruckt.
Das wundert mich jetzt. Ich hätte erwartet, dass "<br>" (als String) gedruckt erscheint.
Mal zählen:
Das macht Summa Summarum vier Zeichen. Ohne nicht vorhandene Umbrüche werden die aller Wahrscheinlichkeit nach als „<br>“ dargestellt. Works ebenfalls as designed.
Tschö, Auge
@@Auge
Und zweitens wird das <br> nicht ausgeführt, sondern mit vier Zeichen gedruckt.
Das wundert mich jetzt. Ich hätte erwartet, dass "<br>" (als String) gedruckt erscheint.
Mal zählen:
- „<“
- „b“
- „r“
- „>“
Das macht Summa Summarum vier Zeichen.
Jaja. Ich hatte „mit vier Leerzeichen gedruckt“ gelesen. Das lässt sich mit akutem Eismangel erklären.[^1]
Und natürlich will Linuchs auch keinen Zeilenumbruch, sondern das Pseudoelement als Block stylen.
LLAP 🖖
Hallo
Jaja. Ich hatte „mit vier Leerzeichen gedruckt“ gelesen. Das lässt sich mit akutem Eismangel erklären.
Damit lässt sich zur Zeit so ziemlich alles erklären. Das natürlich auch.
Und natürlich will Linuchs auch keinen Zeilenumbruch, sondern das Pseudoelement als Block stylen.
Das ist ja nun geklärt.
Tschö, Auge
Tach,
Das lässt sich mit akutem Eismangel erklären.
sag ich ja, können ja nicht alle aus Diamanten sein.
mfg
Woodfighter
Tach,
Nachtrag: Die Ausrede habe ich von woodfighter geklaut.
editieren statt ingridisieren ist unfair, das kann man in der Vorschau nicht sehen.
mfg
Woodfighter