Episode 05 – Trennung von Content, Layout und Verhalten
Die Trennung von Inhalt, Design und aktiven Elementen einer Webseite ist nicht nur ein heeres Ziel für einige Geeks, die sowieso zuviel Zeit haben. In diesem Podcast erklären wir, warum diese Trennung für jeden wichtig sein sollte, wie man sie erreicht und was sie für Vorteile bringt. Zusätzlich zeigen wir in den Storynotes zu diesem Podcast kurz einige Beispiele, wie diese Trennung technisch aussehen könnte.
Das eigentlich geplante Thema der Strukturplanung einer Webseite haben wir etwas nach hinten geschoben – es wurde nicht vergessen, aber aufgrund aktueller Nachfragen haben wir uns entschlossen, die Trennung von Inhalt, Design und Verhalten und in der nächsten Woche Barrierefreiheit vorzuziehen.
Trennung
- Der Inhalt – also das, was eine Webseite ausmachen sollte
– wird in HTML-Format gespeichert. In HTML sollten nur semantische (d.h. logische) Textauszeichnungen benutzt werden. Z.B. kann man einen Text hervorheben oder betonen und durch Überschriften oder Kapitel gliedern. - Das Design sollte möglichst vollständig durch CSS beschrieben werden. CSS ist in dieser Hinsicht viel mächtiger als tabellenbasierte HTML-Designs.
- Das dynamische Verhalten sollte wenn möglich mit CSS (Stichwort: Link-Hover) ansonsten mit JavaScript und per DOM realisiert werden. Hierbei sollte man auch auf eine Trennung des JavaScript Codes von der HTML-Seite achten. Auch eingebettete Eventhandler sind schlecht weil nicht gut wartbar und unübersichtlich.
Trennung – warum?
Warum? kann man sich fragen, sollte man z.B. Design und Inhalt voneinander trennen? HTML bietet doch auch Möglichkeiten, den Inhalt zu formatieren. Das ist auch anfänglich für den unerfahrenen Webdesigner eine Strategie, die schnell Erfolg verspricht. Muss man sich ja nur in eine Sprache – nämlich HTML – einarbeiten. Werden die Projekte aber umfangreicher und die Ansprüche größer, kommt man mit dieser Strategie schnell in Bedrängnis.
Hier einige Vorteile der Trennung, die wir in dem Podcast ansprechen:
- Änderungen am Design sind leicht für die ganze Webseite umsetzbar.
- Bessere Arbeitsteilung zwischen Redakteur und Designer.
- Barrierefreiheit braucht diese Trennung.
- Suchmaschinen freuen sich über sie.
Trennung – wie?
Wie kann ich denn diese tolle Trennung erreichen? Das möchten wir hier nicht klären, denn das ist nicht unsere Aufgabe. Aber wir möchten euch wenigstens einen kleinen Einblick geben, wie eine Trennung aussehen könnte. So könnt ihr schlechten Code erkennen und eurer Agentur vorhalten
Hier erstmal ein Negativbeispiel, wie man es nicht machen sollte:
</p>
<pre><html><head><title>Alles zusammengemixt</title></head>
<body bgcolor="black" text="white" link="red"
onload="alert('ich nerv für mein leben gern!');">
<table cellpadding="0" cellspacing="0" border="0">
<tr><td colspan="2"><font size="7"><font face="Arial">
Ich bin die Überschrift
</font></font></td></tr>
<tr><td>
<font size="4" face="Courier">Navigation</font>
</td>
<td>
<p><font size="6"><b>Überschift</b></font></p>
<p><font face="Arial">Bodytext</font></p>
</td>
</tr>
<tr><td colspan="2"><font size="2"><font face="Arial">
Ich bin der Footer
</font></font></td></tr>
<tr><td><img xsrc="transparent.gif" mce_src="transparent.gif" width="400" height="1"></td>
<td><img xsrc="transparent.gif" mce_src="transparent.gif" width="400" height="1"></td>
</tr>
</table>
</body></html></pre>
<p>
Hier wurden Inhalt, Layout und Verhalten der Seite zusammen in eine Datei und dazu noch undifferenziert eingegeben. Besser ist Folgendes (Die Begründung findet sich natürlich im Podcast):
HTML
</p> <pre><html><head><title>Schön getrennt</title> <!-- Das hier verbindet die HTML-Seite mit ihrem Design: --> <link rel="stylesheet" xhref="styles.css" mce_href="styles.css" type="text/css"> <!-- und das hier mit ihrem Verhalten: --> <script xsrc="sripts.js" mce_src="sripts.js" type="text/javascript"> </head> <body> <div id="header"><h1>Seitenüberschrift</h1></div> <div id="content"> <h2>Überschrift</h2> <p>Bodytext</p> </div> <div id="navigation"> Navigation </div> <div id="footer"> Footer </div> </body> </html></pre> <p>
CSS (styles.css)
</p>
<pre>h1 { color: blue; }
h2 { color: red; }
p { color:darkblue; }
#header h1 {font: 2em/130% normal Arial, sans-serif;}
#header, #content, #navigation { position:absolute; ... }</pre>
<p>
Javascript (scripts.js)
</p>
<pre>if (document.getElementById) {
var oldLoad = function(){};
if (window.onload) oldLoad = window.onload;
window.onload = function() {
oldLoad();
myLoad();
};
}
function myLoad() {
// hier kann man das dynamische Verhalten zuweisen
alert('ich nerv für mein leben gern!');
}</pre>
<p>
Ausblick
Wie findet ihr diesen Podcast? Habt ihr Themenvorschläge? Warum hört ihr uns? Warum nicht? Wir sind gespannt auf euer Feedback!
In der nächsten Woche behandeln wir das Thema Barrierefreiheit. Wir finden allerdings, dass Zugänglichkeit ein besserer Begriff wäre, aber uns hat ja niemand gefragt
. Der Podcast wird “live” aus der Kippe in Karlsruhe kommen, seit also gespannt!
Glossar
- Geek
- Mensch, der zuviel Zeit hat und deshalb unnötiges Zeug entwickelt und nutzt, das der Rest der Menscheit nicht braucht.
- HTML
- Hypertext Markup Language. Eine sog. Seitenbeschreibungssprache – keine Programmiersprache. Mit HTML kann man Inhalte semantisch beschreiben. Man kann z.B. angeben, dass ein Text eine Überschrift ersten Grades ist oder dass ein Wort wichtig ist.
- Hypertext
- Einzelnen Texte sind miteinander durch Links verbunden. Der Benutzer kann durch diese Links innerhalb des Hypertexts navigieren.
- XHTML
- Die neueste Version von HTML, die in XML kodiert ist (im Gegensatz zu SGML). Durch die XML-Kodierung ist eine bessere maschinelle Überprüfung der Dokumente gegeben (Validierung) und XHTML erbt auch die ausgezeichneten Erweiterungsmöglichkeiten von XML (durch Namespaces)
- CSS
- Cascading Stylesheets. Verschachtelte Formatvorlagen, durch die der HTML-Seiteninhalt ansprechend formatiert werden kann.
- JavaScript
- Eine Programmiersprache/Skriptsprache, die es ermöglicht, Webseiten beim Benutzer im gewissen Rahmen zu verändern. JavaScript wird in dem Browser des Benutzers ausgeführt, kann also aus Sicherheitsgründen nicht alles, was eine “richtige” Programmiersprache/Skriptsprache machen könnte. JavaScript hat nichts mit der Programmiersprache Java zu tun (außer der – ansatzweise – gleichen Syntax).
- DOM
- Document Object Model. Eine Repräsentation der Seite als (Objekt-)Baum. Per JavaScript kann dieser Baum traversiert und verändert werden. Nötig für alle tollen Web 2.0 Effekte, die man neuerdings bewundern darf.
Links
- CSS Zen Garden – “Eine Demonstration dessen, was sich visuell mit Hilfe von CSS erreichen läßt.”
- W3C – Die Leute, die die Standards des Webs definieren. Hier finden sich auch deutsche Übersetzungen der Standards.
Popularity: 14% [?]






Richtig beobachtet! Und schon korrigiert!
Danke!
Antworte Sascha PostnerDie Überschrift innerhalb des div’s id=”content” dürfte dann aber h2 und nicht noch einmal h1 sein, oder?
Antworte Webstandard-Team