CS-Esser: Fragen über Fragen

Beitrag lesen

Wenn ich einen Stylesheet für media all angebe, und dann z.B. einen weiteren für media projection: Ergänzt der projection-Stylesheet dann den anderen einfach kompltt oder werden nur Abweichungen übernommen?

Alle Stylesheets gelten gleichzeitig. Die Frage ist nur, welche CSS-Definition für ein konkretes Seitenelement am Ende wirklich wirksam wird.

Und die Antwort darauf steht in http://de.selfhtml.org/css/formate/kaskade.htm.

Kurzfassung: Wenn zwei CSS-Regeln die gleiche Eigenschaft definieren (z.B. color), dann gilt die Regel mit der größeren Spezifität. Und nur wenn beide Regeln gleich spezifisch sind, gilt die Regel, die "zuletzt im Quelltext" definiert wurde.

Und was die Medien angeht: Eine CSS-Datei für projection gilt natürlich nur, wenn die Anzeige auch diesen Modus hat. Wäre der Anzeigemodus z.B. print, würden die Regeln dieser Datei nicht gelten. media=all gilt logischerweise für alle Anzeigemodi (zumindest dann, wenn der Browser keinen Bug hat).

Ich meine wenn ich z.B. bei dem projection-Stylesheet nur den body-margin ändern möchte im Vergleich zum anderen Stylesheet, langt dann einfach die nötige Zeile für den margin, oder muss ich den ganzen Stylesheet nochmal nehmen und die Zeile abändern?

Hast du's ausprobiert? Was ist rausgekommen?

Müsste man nicht eigtl jedes HTML-Element detailiert formatieren, wenn z.B. ein Browser standardmäßig die h1 nicht so-und-so-groß darstellt, oder einem div einfach standardmäßig die-und-die-border mitgibt...oder gibt es da einen gewissen standard, der besagt, dass h1 so-und-so-groß ist?

Das W3C hat Standard-CSS-Dateien, die eine gewisse Vorformatierung einer "nackten" Seite ergeben. Daran muß sich ein Browserhersteller aber nicht halten. Und überdies gibts ja auch noch die Browserbenutzer, die diese Einstellungen nach ihren eigenen Wünschen anpassen können.

Wenn du wirklich absolut 100% sicher gehen willst, dass ein Element garantiert vollständig definiert ist, mußt du es vollständig in deinem eigenen CSS definieren. Und trotzdem kann der Benutzer in seinem Userstylesheet diese Definitionen noch überschreiben, oder durch einstellbare Mindestschriftgrößen abändern.

Kann ich ein img mittels css (je nach ausgabemedium: screen, projection, print,...) ändern, d.h., jenachdem ein anderes bild nehmen?

Nein, das ist aber in der Regel auch nicht notwendig, weil der Browser die Druckausgabe des Bildes immer mit 72 oder 96 dpi vornimmt. Ein höher aufgelöstes Bild würde unerwartet riesiger - oder zunächst unter Pixelverlust kleingerechnet und dann in der Standardauflösung ausgegeben.

Wenn du optisch und drucktechnisch hochwertige Printversionen herstellen willst, nutze PDF als Druckdateiformat. Da kannst du solche Dinge beeinflussen.

Was ist allgemein zu beachten, (Tipps, typische Probleme etc.) bei Stylesheets für:
print
handheld
projection
aural (peil ich soweiso net was ich damit soll)
tv
tty
und mit den ganzen braille-dinegn?

Allgemein zu beachten ist, dass man diese ganzen Medien in der Regel nicht benötigt. Zum einen, weil die Mehrheit nur "screen" und "print" nutzt. Zum zweiten, weil Browser, die andere als "screen" und "print" bedienen sollen, mit CSS sowieso nicht umgehen können, weil das noch keiner entwickelt hat. Und zum dritten fehlt dir zur Erfolgskontrolle höchstwahrscheinlich ein Browser, der diese Medien per CSS tatsächlich nutzt.

Nicht mal projection ist wirklich sinnvoll. Webseiten jedenfalls werden nur äußerst selten mit einem Projektor angezeigt (der F11-Modus von Opera ist die einzige mir bekannte Möglichkeit, diesen Media-Typ mit CSS zu nutzen). Kann man natürlich als Spielerei mal einbauen - hilft aber de facto kaum weiter, erhöht bei schlechter Implementation der CSS-Laderoutine im Browser nur die Ladezeiten, weil das nutzlose, nicht anwendbare CSS trotzdem mit geladen wird.