Responsive Web Design - Images: Unterschied zwischen den Versionen
| (3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 3: | Zeile 3: | ||
http://alistapart.com/article/responsive-images-in-practice | http://alistapart.com/article/responsive-images-in-practice | ||
| − | == Bilder im Inhalt oder als Background== | + | == Plazierung von responsive Images == |
| + | === Bilder im Inhalt oder als Background === | ||
Normale Bilder mit dem img Tag konnten bis HTML5 nur per Skript ausgetauscht werden. Für Hintergrundbilder kann man mit Media Queries arbeiten. | Normale Bilder mit dem img Tag konnten bis HTML5 nur per Skript ausgetauscht werden. Für Hintergrundbilder kann man mit Media Queries arbeiten. | ||
| − | == Breite 100%, Höhe automatisch == | + | === Breite 100%, Höhe automatisch === |
| + | Standardfall für Inhaltsbilder | ||
<syntaxhighlight lang="css"> | <syntaxhighlight lang="css"> | ||
img { | img { | ||
| Zeile 13: | Zeile 15: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | == Breite 100% aber nicht größer als das Bild == | + | === Breite 100% aber nicht größer als das Bild === |
<syntaxhighlight lang="css"> | <syntaxhighlight lang="css"> | ||
img { | img { | ||
| Zeile 20: | Zeile 22: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | == Hintergrundbild == | + | === Hintergrundbild === |
| − | === komplett deckend ohne Verzerrung === | + | ==== komplett deckend ohne Verzerrung ==== |
| + | Hier kommt cover zum Einsatz | ||
<syntaxhighlight lang="css"> | <syntaxhighlight lang="css"> | ||
div { | div { | ||
| Zeile 31: | Zeile 34: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | === Unterschiedliche Bilder für unterschiedliche Gerätegrößen === | + | ==== Mehrere Hintergrundbilder in einem Container Element ==== |
| + | Seit CSS3 möglich | ||
| + | =====Hintergrundbild Oben und Unten zentriert (Oben fixiert, unten Scrollbar)===== | ||
| + | <syntaxhighlight lang="css"> | ||
| + | Code: | ||
| + | body { | ||
| + | background-image: url(Bild-Oben), url(Bild-Unten); | ||
| + | background-position: center top, center bottom; | ||
| + | background-attachment: fixed, scroll; | ||
| + | background-repeat: no-repeat; | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | == Unterschiedliche Bilder für unterschiedliche Gerätegrößen == | ||
| + | Hierzu gibt es unterschiedliche Techniken mit unterschiedlichen Vor und Nachteilen. Hier einige Aspekte: | ||
| + | * Bilder werden vom Browser z.T. vor den Styles, aber nach dem HTML geladen. Das bedeutet der Browser weiß manchmal nicht welche Größe er im Layout benötigt (nur den Viewport kennt er). | ||
| + | * Media Queries beziehen sich in der Regel auf den Viewport | ||
| + | * Bei kleinen Screens ist es manchmal besser einen Ausschnitt zu zeigen. Gut wäre ein Focalpoint (z.T. gibt es hier JavaScripte) | ||
| + | |||
| + | === Links === | ||
| + | https://cloudfour.com/thinks/responsive-images-101-part-4-srcset-width-descriptors/ | ||
| + | |||
| + | === Media Query Beispiel === | ||
| + | |||
| + | ==== Bezogen auf Viewport ==== | ||
<syntaxhighlight lang="css"> | <syntaxhighlight lang="css"> | ||
/* For devices smaller than 400px: */ | /* For devices smaller than 400px: */ | ||
| Zeile 49: | Zeile 76: | ||
== HTML5 <picture> Tag == | == HTML5 <picture> Tag == | ||
| + | '''Stand 2016 wird sich eher das srcset Attribut durchsetzen als das picture Tag''' | ||
| + | |||
Erlaubt (wie <video> und <audio> ) das Definieren von unterschiedlichen Bildquellen | Erlaubt (wie <video> und <audio> ) das Definieren von unterschiedlichen Bildquellen | ||
| − | <syntaxhighlight lang=" | + | <syntaxhighlight lang="html5"> |
<picture> | <picture> | ||
<source srcset="img_smallflower.jpg" media="(max-width: 400px)"> | <source srcset="img_smallflower.jpg" media="(max-width: 400px)"> | ||
| Zeile 63: | Zeile 92: | ||
picture tag | picture tag | ||
| − | ... | + | data attribut |
| + | |||
| + | picturefill... | ||
Aktuelle Version vom 12. September 2016, 14:47 Uhr
Links[Bearbeiten]
https://blog.kulturbanause.de/2014/09/responsive-images-srcset-sizes-adaptive/ http://alistapart.com/article/responsive-images-in-practice
Plazierung von responsive Images[Bearbeiten]
Bilder im Inhalt oder als Background[Bearbeiten]
Normale Bilder mit dem img Tag konnten bis HTML5 nur per Skript ausgetauscht werden. Für Hintergrundbilder kann man mit Media Queries arbeiten.
Breite 100%, Höhe automatisch[Bearbeiten]
Standardfall für Inhaltsbilder
img {
width: 100%;
height: auto;
}
Breite 100% aber nicht größer als das Bild[Bearbeiten]
img {
max-width: 100%;
height: auto;
}
Hintergrundbild[Bearbeiten]
komplett deckend ohne Verzerrung[Bearbeiten]
Hier kommt cover zum Einsatz
div {
width: 100%;
height: 400px;
background-image: url('img_flowers.jpg');
background-size: cover;
background-position: 50% 50%;
}
Mehrere Hintergrundbilder in einem Container Element[Bearbeiten]
Seit CSS3 möglich
Hintergrundbild Oben und Unten zentriert (Oben fixiert, unten Scrollbar)[Bearbeiten]
Code:
body {
background-image: url(Bild-Oben), url(Bild-Unten);
background-position: center top, center bottom;
background-attachment: fixed, scroll;
background-repeat: no-repeat;
}
Unterschiedliche Bilder für unterschiedliche Gerätegrößen[Bearbeiten]
Hierzu gibt es unterschiedliche Techniken mit unterschiedlichen Vor und Nachteilen. Hier einige Aspekte:
- Bilder werden vom Browser z.T. vor den Styles, aber nach dem HTML geladen. Das bedeutet der Browser weiß manchmal nicht welche Größe er im Layout benötigt (nur den Viewport kennt er).
- Media Queries beziehen sich in der Regel auf den Viewport
- Bei kleinen Screens ist es manchmal besser einen Ausschnitt zu zeigen. Gut wäre ein Focalpoint (z.T. gibt es hier JavaScripte)
Links[Bearbeiten]
https://cloudfour.com/thinks/responsive-images-101-part-4-srcset-width-descriptors/
Media Query Beispiel[Bearbeiten]
Bezogen auf Viewport[Bearbeiten]
/* For devices smaller than 400px: */
body {
background-image: url('img_smallflower.jpg');
background-size: cover;
}
/* For devices 400px and larger: */
@media only screen and (min-device-width: 400px) {
body {
background-image: url('img_flowers.jpg');
}
}
HTML5 <picture> Tag[Bearbeiten]
Stand 2016 wird sich eher das srcset Attribut durchsetzen als das picture Tag
Erlaubt (wie <video> und <audio> ) das Definieren von unterschiedlichen Bildquellen
<picture>
<source srcset="img_smallflower.jpg" media="(max-width: 400px)">
<source srcset="img_flowers.jpg">
<img src="img_flowers.jpg" alt="Flowers">
</picture>
Weitere Techniken[Bearbeiten]
srcset Attribut
picture tag
data attribut
picturefill...