Textänderungen dekorieren mit CSS

Änderungen in HTML-Dokumenten werden durch die Tags <del> und <ins> ausgezeichnet. Standardmäßig werden diese vom Browser durch- bzw. unterstrichen angezeigt. Problematisch ist Letzteres, da Unterstreichungen typischerweise auf Hyperlinks hinweisen. Bei komplett unterstrichene Absätzen leidet zudem die Lesbarkeit.

Dabei geht es optisch durchaus besser: heise online etwa umklammert Textänderungen und stellt längeren Hinzufügungen die Anmerkung „Update:“ voran – bei mehreren Überarbeitungen sogar durchnummeriert. Ein Beispiel hierfür ist die Berichterstattung zum datenschutzschonendenfreundlichen Facebook-Button.

Heise online erledigt dies serverseitig und gibt entsprechend verändertes HTML zurück. Machbar ist die Dekoration jedoch auch ohne zusätzliche Programmlogik — unter Nutzung der CSS-Pseudo-Elemente ::before und ::after sowie des content-Attributs. Mit diesen ist es nämlich möglich, dem Seitenlayout vollkommen neue Elemente hinzuzufügen.

Befinden sich etwa innerhalb eines <article>-Elements mehrere Absätze (<p>), fügt die CSS-Anweisung article > ins > p:first-child::before { content: "Nachtrag: " } vor dem ersten Absatz jeder eingefügten Textstelle einen entsprechender Hinweis ein. Auf ähnliche Weise lassen sich Änderungen innerhalb von Absätzen und mehrere Absätze umfassende Einfügungen mit (halben) eckige Klammern umgeben.

Die noch fehlende Nummerierung der Änderungen erfolgt mit CSS-Zählern; Peter Kröner hat das schon einmal erklärt. Am Ende steht eine wesentlich hübscheres und nützlicheres Dekoration für Änderungen in HTML-Dokumenten.

Hier ist die Demo.

Ebenfalls interessant ist diese Javascript-Technik zum dynamischen Anzeigen von Textänderungen.

12. September 2011 von erlehmann
Kategorien: Software | Schlagwörter: , , , | Schreibe einen Kommentar

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert


Before you post, please prove you are sentient.

Was ist der Vorname von Franz Beckenbauer?