Gleich vorab, es geht hier nicht um den Abspielschutz™ auf DVDs, sondern um die Cascading Style Sheets, die sich die Abkürzung CSS mit dem genannten DRM-System teilen.
Ein Stolperstein, der vielen bei der Erstellung von Stylesheets einige Kopfschmerzen bereitet, ist die Tatsache, dass Webbrowser vielen Entities präventiv schon mal einen Style zuweisen. Macht auch Sinn, auf diese Art und Weise erspart man sich so manche Definition – solange man sich das Ergebnis nur im gleichen Browser ansieht. Das perfide an den voreingestellten Styles ist, dass sie sich von Browser zu Browser minimal unterscheiden (manchmal auch mehr als minimal). Soll heissen, man kann sich einen Wolf programmieren, die schönste typographische Kaskade entwickeln, und beim Betrachten in einem anderen Browser trifft einen der Schlag. Was ist also zu tun?
Einfach das Naheliegende, am besten alle Entities am Beginn des ersten Stylesheets auf einen definierten Anfangswert setzen. Wer das sagt? Eric Meyer, und der sollte wissen wovon er redet
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, tt, var,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td
{
margin: 0;
padding: 0;
border: 0;
outline: 0;
font-weight: inherit;
font-style: inherit;
font-size: 100%;
font-family: inherit;
vertical-align: baseline;
/* background-image: transparent; */
background: transparent;
}
Wer die von mir ausgelassene Entity auf den ersten Blick entdeckt, gewinnt keinen Preis, aber meine Hochachtung. Geübten CSSlern(innen) erschliesst sich dieser Rundumschlag sofort, jegliche “Hilfestellung” des Browsers wird ausgehebelt, man beginnt mit dem sprichwörtlichen weissen Blatt Papier. Das hat den Nachteil, dass man wirklich alles selbst definieren muss, und den Vorteil, dass man die totale Kontrolle über das Erscheinungsbild der Website behält.
Ich möchte hier keine Debatte über Sinn oder Unsinn dieser Vorgehensweise vom Zaun brechen, ich halte es so, wer dazu keine Lust hat, bekommt zwar nicht meinen Segen, aber soll doch tun und lassen was er / sie will, oder “jede(r) wie er / sie mag
Mein nächster Schritt, nach dem Erstellen oder Modifizieren eines Stylesheets, führt mich zu dem W3C CSS Validation Service, oder über den Web Developer Toolbar in FireFox, zum gleichen Ziel. Wenn sich schon jemand die Arbeit gemacht hat, warum sollte ich das CSS mühsam per eigenem Augenschein überprüfen? (Ausserdem wird man “betriebsblind” wenn man zu lange auf den eigenen Code starrt.
) Also lasse ich den Validator über mein CSS laufen, und was passiert? Zwei Tippfehler und das:
Parse Error – html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td { margin: 0; padding: 0; border: 0; outline: 0; font-weight: inherit; font-style: inherit; font-size: 100%; font-family: inherit; vertical-align: baseline; background-image: transparent; }
Der Code ist valide, anscheinend ist der Validator nur durch die schiere Anzahl von Entities einfach überfordert. Oder sollte jemand bei der W3C etwas gegen Resets haben? Ich für meinen Teil “resette” auf jeden Fall munter weiter.
Edit: Danke an Mike, ich hatte tatsächlich einen Fehler im Reset, es muss background: transparent; heissen. Der Fehler ist im Code oben auskommentiert.
Technorati Tags: CSS-Validator, CSS Reset, CSS, Cascading Style Sheets
input fehlt, wo is’ mein Preis? Ach gibt keinen, Mist.
Was Dein Validator-problem betrifft, so kann ich den Parse-error nicht nachvollziehen, einen Fehler hast Du tzrotzdem, den spuckt der Validator – zumindest mir – auch aus:
Siehe auch: http://www.css4you.de/background-image.html
Öko-bilanz schreib ich keine Mail, sondern verweise auf: http://trash-wissen.de/2007-07-08/webdesign-und-klimaschutz/
Grüsse!
Hi Mike,
welchen CSS-Validator hast Du denn benutzt? Beim W3C Validator bekomme ich immer noch das gleiche Ergebnis.
Hi Erik, das Problem scheint mir nicht in den Regeln zu liegen, sondern im Charset Deiner CSS-Datei selbst, wenn ich mir das CSS mittels Web-dev-extension anschaue, sehe ich da ein BOM für utf-8, ich bin mir nicht sicher, ob das so ok ist.
Vor meinem letzten Beitrag hatte ich mir nur die entsprechende Regel kopiert und getestet, da gabs obige Fehlermeldung, nun gerade hab ich das mal komplett kopiert (iso 8859-1) und gecheckt: selbe Meldung.
Liegt also mutmasslich hier bei Dir bei Deinem Charset bzw dem BOM.
Deine Regeln zumindest sind, bis auf den oben angemeckerten Fehler richtig und werden auch erkannt: Klick
Hi Mike,
ich habe den Fehler gefunden, es muss “background: transparent” heissen, dann validiert der Reset-Block für sich allein. Das Stylesheet leider immer noch nicht.
Die Datei hat laut meinem Editor als Format UTF-8 und nicht UTF-8 BOM, allerdings spuckt mir das Theme oder das WordPress immer ein BOM an den Anfang der generierten Website. Ich versuche schon seit einiger Zeit immer wieder herauszubekommen, woran das liegt.
Vielen Dank.
wenn man schon resettet, warum dann nicht gleich mit
* { … }
?
das wäre doch wesentlich konsequenter, oder? und man spart sich die tipperei der ganzen tags…
Ich wusste gar nicht, dass man das so machen kann. Ausserdem ist es mir lieber, wenn ich manche Tags vom Reset gezielt ausnehmen kann.