Schwer lesbar finde ich eher das reduzierte CSS und das nicht nur wegen der fehlenden Whitespaces.
Das Beispiel zeigt zwar schön, was gemeint ist und wie sich der Datenumfang reduziert. Aber was der Laie nicht sieht und was man deshalb mal erwähnen sollte: Die Semantik des reduzierten CSS unterscheidet sich signifikant! Das ursprüngliche CSS läßt sich nur auf DOM-Elemente in einer vorgegebenen Struktur anwenden.
Als Beispiel nehme ich mal den Selektor "ul.menu li ul li a". Der kann nur auf A-Tags angewendet werden, die Kind eines LI sind, das wiederum Kind einer UL ist, die Kind eines LI ist, die Kind einer UL mit der Klasse menu ist.
Im Vergleich dazu passt der Selektor ".menu-li-ul-li a" zu allen As, die Kind eines beliebigen Elements mit der Klasse menu-li-ul-li sind.
Mit derart reduziertem CSS ist es also möglich, Auszeichnungen für Elemente zu verwenden, für die sie nicht gedacht sind. Nicht nur möglich, sondern sogar naheliegend, würde doch das hinzufügen einer weiteren Deklaration mit der selben Wirkung das CSS unnötig aufblähen.
Der Programmierer wird sozusagen dazu verleitet, Deklarationen in Stellen zu verwenden, für die sie nicht gedacht waren. Weils halt grad passt.
Dumm nur, wenn später das Design von Links in verschachtelten Listen geändert werden soll. Man kann nicht dafür garantieren, dass sich dadurch nicht auch Links an anderer Stelle ändern.
Derlei reduziertes CSS zwingt also alle Entwickler, sich an die Konvention zu halten, CSS-Auszeichnungen nur auf Elemente anzuwenden, die man am Selektor ablesen kann. Bei nicht-reduziertem CSS wird das durch den Selektor selbst sichergestellt.
Kurzum: Diese Reduzierung beschneidet CSS um eines seiner Features, ist deswegen semantisch schwächer und zwingt zu bestimmten Konventionen.
Jeder muss selbst entscheiden, ob der Performancegewinn die Sache wert ist.
Übrigens hätte ich als Beispiel leiber den Selektor ".menu-li-ul-li" genommen, doch der hat gar keine Entsprechung im Original-CSS.
Das Beispiel zeigt zwar schön, was gemeint ist und wie sich der Datenumfang reduziert. Aber was der Laie nicht sieht und was man deshalb mal erwähnen sollte: Die Semantik des reduzierten CSS unterscheidet sich signifikant! Das ursprüngliche CSS läßt sich nur auf DOM-Elemente in einer vorgegebenen Struktur anwenden.
Als Beispiel nehme ich mal den Selektor "ul.menu li ul li a". Der kann nur auf A-Tags angewendet werden, die Kind eines LI sind, das wiederum Kind einer UL ist, die Kind eines LI ist, die Kind einer UL mit der Klasse menu ist.
Im Vergleich dazu passt der Selektor ".menu-li-ul-li a" zu allen As, die Kind eines beliebigen Elements mit der Klasse menu-li-ul-li sind.
Mit derart reduziertem CSS ist es also möglich, Auszeichnungen für Elemente zu verwenden, für die sie nicht gedacht sind. Nicht nur möglich, sondern sogar naheliegend, würde doch das hinzufügen einer weiteren Deklaration mit der selben Wirkung das CSS unnötig aufblähen.
Der Programmierer wird sozusagen dazu verleitet, Deklarationen in Stellen zu verwenden, für die sie nicht gedacht waren. Weils halt grad passt.
Dumm nur, wenn später das Design von Links in verschachtelten Listen geändert werden soll. Man kann nicht dafür garantieren, dass sich dadurch nicht auch Links an anderer Stelle ändern.
Derlei reduziertes CSS zwingt also alle Entwickler, sich an die Konvention zu halten, CSS-Auszeichnungen nur auf Elemente anzuwenden, die man am Selektor ablesen kann. Bei nicht-reduziertem CSS wird das durch den Selektor selbst sichergestellt.
Kurzum: Diese Reduzierung beschneidet CSS um eines seiner Features, ist deswegen semantisch schwächer und zwingt zu bestimmten Konventionen.
Jeder muss selbst entscheiden, ob der Performancegewinn die Sache wert ist.
Übrigens hätte ich als Beispiel leiber den Selektor ".menu-li-ul-li" genommen, doch der hat gar keine Entsprechung im Original-CSS.

Kommentar