Flipper
2006-05-15, 17:18:07
Hallo!
Ich schreibe gerade an meiner Bakkalaureatsarbeit über die verschiedenen Vorgehensweisen zur Erstellung eines CMS (manuelle vs. Web-Frameworks), und füge da einen Absatz über CSS vs. Templates ein. Was mich interessiert ist eure Meinung, es kann und soll natürlich gerne auch über das Thema diskutiert werden!
-----------------------
Templates vs. CSS
CSS dient - genauso wie Template-Engines - der Trennung von Inhalt und Aussehen. In der Vergangenheit war durch mangelnde Browser-Unterstützung oder Browser-Bugs die durchgängige Verwendung von CSS sehr erschwert worden. Vor allem der Internet Explorer spielt hier eine "Vorreiter-Rolle" im negativem Sinn - die Stichworte Box-Model Bug, Darstellung transparenter PNG-Grafiken oder Microsoft-eigene Pseudo-Standards sind wohl jedem Web-Entwickler ein Begriff, der die Emotionen hochgehen lässt.
Mittlerweile hat sich aber CSS trotz Interventionen seitens Microsoft durchgesetzt. Browser-Weichen ersetzen heutzutage die früher verwendeten CSS-Hacks, die bewusst Fehler des Internet Explorers benutzten, um fehlerhafte Darstellungen zu korrigieren. Auch in dieser Web-Applikation war der Einsatz von Browser-Weichen in Form einer separaten Stylesheet-Datei notwendig:
<![if IE]>
<link rel="stylesheet" type="text/css" href="ie.css">
<![endif]/>
Dieser Code ist noch nicht die optimale Lösung. Browser-eigene Anweisungen in Kommentaren zu verstecken ist aber trotzdem die mit Abstand eleganteste derzeit mögliche Form, dieses Problem zu umgehen. Es kann auch auf spezifische Internet Explorer-Versionen eingegangen werden, was allerdings nicht notwendig war.
Der durchgängige Einsatz von CSS ist heute - nicht zuletzt aufgrund dieser Browser-Weichen - möglich, und die Unterstützung von CSS wird im Internet Explorer 7 laut Microsoft deutlich verbessert werden, was auch höchste Zeit ist. Die Internet-Seite Zen-Garden[1] ist das beste Beispiel für die Trennung von Inhalt und Layout mittels CSS. Es zeigt, welche komplett unterschiedlichen Layouts mit einer identisch bleibenden HTML-Datei
möglich sind, indem nur verschiedene StyleSheets verwendet werden. Das Layout dieser Seite ist noch dazu Cross-Browser-kompatibel. Das ist meiner Meinung nach der richtige Weg in die Zukunft, und macht nebenbei den Einsatz einer Template-Engine im herkömmlichen Sinn überflüssig. Ein Unterschied zu durchschnittlichen Template-Engines existiert noch: Der Layout-Designer kann nicht mehr entscheiden, ob eine Aufzählung beispielsweise als Liste oder als Tabelle ausgegeben werden soll - dies ist ab sofort Aufgabe des Programmierers. Dieser muss sich dann auch um die Ausgabe in zB Tabellenform kümmern, was aber gleich viel Aufwand ist wie die Erstellung des entsprechenden Template-Codes.
Der Designer braucht nicht mehr die HTML-Datei editieren, sondern kann sich ausschließlich auf die CSS-Datei konzentrieren. Um dies möglich zu machen müssen allerdings auch alle Elemente in der HTML-Datei ordnungsgemäss mit Verweisen auf CSS-Klassen
oder ID's gekennzeichnet sein.
-----------------------
Was sagt ihr dazu?
Ich schreibe gerade an meiner Bakkalaureatsarbeit über die verschiedenen Vorgehensweisen zur Erstellung eines CMS (manuelle vs. Web-Frameworks), und füge da einen Absatz über CSS vs. Templates ein. Was mich interessiert ist eure Meinung, es kann und soll natürlich gerne auch über das Thema diskutiert werden!
-----------------------
Templates vs. CSS
CSS dient - genauso wie Template-Engines - der Trennung von Inhalt und Aussehen. In der Vergangenheit war durch mangelnde Browser-Unterstützung oder Browser-Bugs die durchgängige Verwendung von CSS sehr erschwert worden. Vor allem der Internet Explorer spielt hier eine "Vorreiter-Rolle" im negativem Sinn - die Stichworte Box-Model Bug, Darstellung transparenter PNG-Grafiken oder Microsoft-eigene Pseudo-Standards sind wohl jedem Web-Entwickler ein Begriff, der die Emotionen hochgehen lässt.
Mittlerweile hat sich aber CSS trotz Interventionen seitens Microsoft durchgesetzt. Browser-Weichen ersetzen heutzutage die früher verwendeten CSS-Hacks, die bewusst Fehler des Internet Explorers benutzten, um fehlerhafte Darstellungen zu korrigieren. Auch in dieser Web-Applikation war der Einsatz von Browser-Weichen in Form einer separaten Stylesheet-Datei notwendig:
<![if IE]>
<link rel="stylesheet" type="text/css" href="ie.css">
<![endif]/>
Dieser Code ist noch nicht die optimale Lösung. Browser-eigene Anweisungen in Kommentaren zu verstecken ist aber trotzdem die mit Abstand eleganteste derzeit mögliche Form, dieses Problem zu umgehen. Es kann auch auf spezifische Internet Explorer-Versionen eingegangen werden, was allerdings nicht notwendig war.
Der durchgängige Einsatz von CSS ist heute - nicht zuletzt aufgrund dieser Browser-Weichen - möglich, und die Unterstützung von CSS wird im Internet Explorer 7 laut Microsoft deutlich verbessert werden, was auch höchste Zeit ist. Die Internet-Seite Zen-Garden[1] ist das beste Beispiel für die Trennung von Inhalt und Layout mittels CSS. Es zeigt, welche komplett unterschiedlichen Layouts mit einer identisch bleibenden HTML-Datei
möglich sind, indem nur verschiedene StyleSheets verwendet werden. Das Layout dieser Seite ist noch dazu Cross-Browser-kompatibel. Das ist meiner Meinung nach der richtige Weg in die Zukunft, und macht nebenbei den Einsatz einer Template-Engine im herkömmlichen Sinn überflüssig. Ein Unterschied zu durchschnittlichen Template-Engines existiert noch: Der Layout-Designer kann nicht mehr entscheiden, ob eine Aufzählung beispielsweise als Liste oder als Tabelle ausgegeben werden soll - dies ist ab sofort Aufgabe des Programmierers. Dieser muss sich dann auch um die Ausgabe in zB Tabellenform kümmern, was aber gleich viel Aufwand ist wie die Erstellung des entsprechenden Template-Codes.
Der Designer braucht nicht mehr die HTML-Datei editieren, sondern kann sich ausschließlich auf die CSS-Datei konzentrieren. Um dies möglich zu machen müssen allerdings auch alle Elemente in der HTML-Datei ordnungsgemäss mit Verweisen auf CSS-Klassen
oder ID's gekennzeichnet sein.
-----------------------
Was sagt ihr dazu?