PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Elastische Layouts: Mitskalieren von Background-Grafiken möglich?


tomtom
2008-10-22, 14:45:51
Grüß euch,

Wie der Titel schon sagt, hab ich eine wichtige Frage zu elastischen Layouts.
Im Moment arbeite ich mich gerade ein wenig in barrierefreies Webdesign ein. Und dieses Thema umschließt natürlich auch das Erstellen von elastischen Layouts, sodass es dem Benutzer möglich ist, die Seite per Schriftgrad zu vergrößern, ohne dass das eigentliche Design/Layout der Seite dabei zerschossen wird. Wie den meisten bekannt sein dürfte, ist das Maß aller Dinge hierbei wortwörtlich die Angabe von relativen "em"-Werten.

Ich bin gerade am Layouten eines neuen Wordpress-Templates für meinen kommenden Blog. Und diesen würd ich eben gerne elastisch designen. Mir ist klar, dass durch die relative Vergrößerung der Seite über den Schriftgrad seitens des Benutzers die Grafiken verlustbehaftet (durchs Vergrößern) angezeigt werden. Dies ist aber verschmerzbar, in Anbetracht der Tatsache, dass das grundlegende Layout dabei vollständig erhalten bleibt.

Der eigentliche Punkt an der Sache ist jetzt aber folgender: Im Template verwende ich sehr viele Designelemente, die mittels background-image in absoluten und relativen DIVs positioniert sind. Beim Vergrößern des Schriftgrades im Browser "wachsen" alle Container brav und vor allem korrekt mit, die Hintergrundgrafiken in den DIVs bleiben davon aber unangetastet in der Originalgröße. Somit wird das Design wieder "zerschossen".
Also hab ich mich via Google ein wenig schlau gemacht, ob und wie man Hintergrundgrafiken in elastischen Layouts mit der Schriftgröße mitskalieren lassen kann - die gefundenen "Antworten" fielen zu 100% negativ aus: nicht möglich;

Nun meine Frage: Wie geht ihr hier vor? Gibt's vielleicht doch eine Möglichkeit, die Hintergrundgrafiken mitskalieren zu lassen?
Oder in dem Fall eher bei einem fixen Layout bleiben und die Barrierefreiheit außen vor lassen (was aber eigentlich nicht in meinem Sinne ist)?
Schade wär's, weil ich meine neue Seite auf die aktuellsten Standards und eben auch auf Barrierefreiheit anpassen will/wollte.

Bin gespannt auf eure Antworten :D
Danke und beste Grüße


PS: Ich hab die Frage auch im PSD-Tutorials-Forum gepostet; Sollte es dort eine passende und wissenswerte Antwort geben, werde ich diese zum Wohl der Allgemeinheit auch hier verlinken/posten...denn vllt gibt's ja auch noch andere außer mir, die an diesem Thema interessiert sind ;)


Edit: Eine Lösung wär schon mal folgende CSS-Eigenschaft:
http://www.w3.org/TR/css3-background/#the-background-size
Allerdings ist das CSS3, dann wissen wir ja, was das für aktuelle Browser bedeutet =/

rotalever
2008-10-22, 16:31:31
Ich sehe das zwei Möglichkeiten: Weniger aufwendiges Desin, dann hat man kein Problem oder aufwendigeres Design und dafür den Gedanken des Skalieres vernachlässigen.
Was ich viel wichtiger halte ist die Schriftfarbe. Schwarze Schrift auf weißem Hintergrund ist beispielsweise nicht sehr angenehm zu lesen. Lieber etwas Kontrast rausnehmen. Die Schrift kann man ja allgemein nicht zu klein wählen, dann passt das schon, wenn der Benutzer das etwas vergrössert (machen vll. eh nur 1% der Internetuser).

Wo wir gerade beim Thema sind: Was ist eigentlich der generelle Unterschied zwischen %,pt,em? Habe ich noch nie verstanden.

Mordred
2008-10-22, 16:53:08
% ist ausgehend von dem Standardwert der im Browser des nutzers eingestellt ist. pt ist eine genaue Höhenangabe in Punkten.

Ich nehme ja mal an du meintest die Textgrößen

em ist eigentlich ein alternatives Tag zum kursiv darstellen welches von Sprachprogrammen dann stärker betont wird (was bei <i> nicht passiert). Zumindest wenn das Programm dies Unterstützt.

rotalever
2008-10-22, 17:52:10
Mordred;6863580']em ist eigentlich ein alternatives Tag zum kursiv darstellen welches von Sprachprogrammen dann stärker betont wird (was bei <i> nicht passiert).
<em> bedeutet nicht unbedingt "kursiv" sondern nur "betont". Die Darstellung ist nur oft kursiv.

Ich meinte aber die Einheit "em". Die gibt es ja auch noch ;)

Mordred
2008-10-22, 20:00:49
oft kann man da wohl streichen gecko, webkit, opera, khtml, ie selbst der w3c browser stellen es kursiv dar ;)

Hab mal etwas nach dieser Einheit gesucht. Stellt einen prozentwert bezogen auf die größe der vorhergehenden Elemete dar.

Also in einem Text der 10px hat wären 1.2 em beispielsweise 12px. Jedenfalls hab ich das so verstanden.

DanMan
2008-10-23, 08:45:12
Mordred;6863580']em ist eigentlich ein alternatives Tag zum kursiv darstellen welches von Sprachprogrammen dann stärker betont wird (was bei <i> nicht passiert). Zumindest wenn das Programm dies Unterstützt.
Nene, es geht um die Größenangabe em. 1em entspricht der Höhe eines 'M' (großes M) im aktuellen Schriftgrad. 1ex entspricht übrigens der Höhe eines 'x' (kleines x) im aktuellen Schriftgrad. Sind Größen aus der Typografie, daher benutze ich es auch hauptsächlich in diesem Zusammenhang (Zeilenabstände usw...).

Zum Thema: Warum soll ein Layout mit fixen Größen nicht auch barrierefrei sein? Jedenfalls lassen sich Hintergrundbilder nicht skalieren. Du musst sie ins HTML packen, dann kannst du ihnen 100% Höhe und Breite geben, und sie skalieren mit. Sieht in den meisten Browsern nur bescheiden aus, da sie nicht interpolieren, sondern nur stupide die Pixel verdoppeln (außer Firefox3 und Safari, glaube ich).

tomtom
2008-10-23, 09:03:20
Danke für die zahlreichen Antworten ;)

Zum Thema: Warum soll ein Layout mit fixen Größen nicht auch barrierefrei sein?

Klar kann ich ein barrierefreies Layout auch mit fixen Größen realisieren, keine Frage. Aber nehmen wir mal theoretisch an, die Seite würde über einen Newsticker verfügen, der eine fixe Größe hat und eine spezielle, sich nicht wiederholbare (aufgrund der Optik) Hintergrundgrafik.
Wenn der Anwender nun in seinem Browser den Schriftgrad vergrößert, brauchen die Newsüberschriften im Newsticker mehr Platz und schieben sich u.U. über das Div hinaus, oder (je nach CSS-Eingenschaft) müssen Scrollleisten eingeblendet werden - Design wird also zerschossen ;)

Jedenfalls lassen sich Hintergrundbilder nicht skalieren. Du musst sie ins HTML packen, dann kannst du ihnen 100% Höhe und Breite geben, und sie skalieren mit. Sieht in den meisten Browsern nur bescheiden aus, da sie nicht interpolieren, sondern nur stupide die Pixel verdoppeln (außer Firefox3 und Safari, glaube ich).

Jop, danke für den Tipp...in HTML platzierte Bilder skalieren, wie du sagst, korrekt mit, wenn man den Schriftgrad im Browser ändert.
Wenn man aber bei in HTML platzierten Grafiken (per <img>-Tag) mit em-Werten angibt, skalieren diese brav und vor allem korrekt mit. Zwar leidet die Qualität der Grafiken darunter, allerdings wird das Design eben nicht zerschossen ;)

Wahrscheinlich werd ich das Layout nun aber mit fixen Größen erstellen und 3 verschiedene Schriftgrößen anbieten, die ich via php variabel im Stylesheet ändern kann - wird wohl die beste Lösung sein. Zumindest für den Moment :D

beste Grüße

rotalever
2008-10-23, 16:10:57
Nene, es geht um die Größenangabe em. 1em entspricht der Höhe eines 'M' (großes M) im aktuellen Schriftgrad. 1ex entspricht übrigens der Höhe eines 'x' (kleines x) im aktuellen Schriftgrad. Sind Größen aus der Typografie, daher benutze ich es auch hauptsächlich in diesem Zusammenhang (Zeilenabstände usw...).

Viele legen mit em aber auch die Schriftgröße fest. Wovon ist die den abhängig, wenn ich im <p>-Tag die Größe auf 2em setzte? Es ist ja keine aktuelle Schriftgröße vorhanden, von der ich den 'M'-Wert ableiten könnte.

rotalever
2008-10-23, 16:16:07
Wahrscheinlich werd ich das Layout nun aber mit fixen Größen erstellen und 3 verschiedene Schriftgrößen anbieten, die ich via php variabel im Stylesheet ändern kann - wird wohl die beste Lösung sein. Zumindest für den Moment :D

Man könnte ja auch separate Grafiken für verschiedene Vergrößerungsstufen bereitstellen.

Kinman
2008-10-23, 16:21:04
Viele legen mit em aber auch die Schriftgröße fest. Wovon ist die den abhängig, wenn ich im <p>-Tag die Größe auf 2em setzte? Es ist ja keine aktuelle Schriftgröße vorhanden, von der ich den 'M'-Wert ableiten könnte.

Standartschriftgröße ist 16px

mfg Kinman

rotalever
2008-10-23, 16:29:57
Standartschriftgröße ist 16px

mfg Kinman
Immer?

Kinman
2008-10-23, 16:51:02
Zumindest bei allen gängigen Browser

DanMan
2008-10-23, 21:20:24
Viele legen mit em aber auch die Schriftgröße fest. Wovon ist die den abhängig, wenn ich im <p>-Tag die Größe auf 2em setzte? Es ist ja keine aktuelle Schriftgröße vorhanden, von der ich den 'M'-Wert ableiten könnte.
Jeder Browser hat ja eine konfigurierbare Standardschriftgröße. Relativ dazu ist dann die tatsächliche Schriftgröße.

tomtom
2008-10-24, 09:19:42
Jeder Browser hat ja eine konfigurierbare Standardschriftgröße. Relativ dazu ist dann die tatsächliche Schriftgröße.

Genau. Und das ist eben der Sinn hinter der Sache. Da der Standardwert bei allen aktuellen Browsern auf 16px für die Schriftgröße liegt, kann man im CSS den Schriftgrad durch die Festlegung im Body auf einen anderen Wert (z.B. auf 10px) verringern, um dann leichter damit rechnen zu können:

body
{
font-size: 0.625em; /* entspricht 10px Schriftgrad, wenn die Browsereinstellung 16px beträgt */
}

Und dies hat wiederum denn Sinn, dass alle anderen Elemente immer vom Vaterelement den Schriftgrad erben. So kann man dann auch Größen und Koordinaten in em angeben, mit dem Vorteil, dass diese sich relativ mit dem im Browser eingestellten Schriftgrad neu berechnen und das Layout dadurch nicht zerissen wird. Rein optisch entspricht dies dem Browser-Zoom, jedoch ohne Verluste (bis auf Grafiken).

Nur mit Hintergrundgrafiken funktioniert das Ganze eben leider nicht, da diese nicht mitskaliert werden und man somit weiße Leerräume in den Containern hat ;)

Grüße