Responsivt webbdesign - Bilder
- Föregående sida RWD mediefrågor
- Nästa sida RWD video
Använd width-egenskapen
Om width
egenskapen satt till procent och höjden satt till "auto", då kommer bilden att skalas för att förstora eller förminska:
Exempel
img { width: 100%; height: auto;
Observera att i de ovanstående exemplen kan bilden förstora till en storlek större än dess ursprungliga storlek. I de flesta fall är det bättre att använda max-width
egenskap.
Använd max-width-egenskapen
Om max-width-egenskapen sätts till 100%, kommer bilden att förminskas efter behov, men aldrig förstora till en storlek större än dess ursprungliga storlek:
Exempel
img { max-width: 100%; height: auto;
Bakgrundsbilden
Bakgrundsbilden kan också anpassa sig till storleksjustering och skalning.
Detta är de tre olika metoder vi visar:
1. Om du sätter background-size
Om inställningen är satt till "contain", kommer bakgrundsbilden att skalas och försöka matcha innehållsområdet. Dock kommer bilden att behålla sitt aspect ratio (förhållandet mellan bildens bredd och höjd):
Detta är CSS-koden:
Exempel
div { width: 100%; height: 400px; background-image: url('img_flowers.jpg'); background-repeat: no-repeat; background-size: contain; border: 1px solid red;
2. Om background-size
Attributet sätts till "100% 100%", kommer bakgrundsbilden att sträckas för att täcka hela innehållsområdet:
Detta är CSS-koden:
Exempel
div { width: 100%; height: 400px; background-image: url('img_flowers.jpg'); background-size: 100% 100%; border: 1px solid red;
3. Om background-size
Om attributet sätts till "cover", kommer bakgrundsbilden att skalas för att täcka hela innehållsområdet.Observera att "cover"-värdet behåller förhållandet mellan bredd och höjd och kan klippa av en del av bakgrundsbilden:
Detta är CSS-koden:
Exempel
div { width: 100%; height: 400px; background-image: url('img_flowers.jpg'); background-size: cover; border: 1px solid red;
Förbered olika bilder för olika enheter
Stora bilder kan visas perfekt på stora datorskärmar, men är inte användbara på små enheter. Varför ladda en stor bild när man måste komprimera den? För att minska lasten eller av andra skäl kan du använda media queries för att visa olika bilder på olika enheter.
Detta är en stor bild och en liten bild som visas på olika enheter:
Exempel
/* För bredd mindre än 400 pixlar: */ body { background-image: url('img_smallflower.jpg'); /* För 400 pixlar eller större bredd: */ @media only screen and (min-width: 400px) { body { background-image: url('img_flowers.jpg');
Du kan använda media queries min-device-width
istället för min-width
att kontrollera enhetens bredd, inte webbläsarens bredd. Sedan, när du justerar storleken på webbläsarfönstret, kommer bilden inte att förändras:
Exempel
/* För enheter med mindre än 400 pixlar: */ body { background-image: url('img_smallflower.jpg'); /* För enheter med 400 pixlar och större: */ @media only screen and (min-device-width: 400px) { body { background-image: url('img_flowers.jpg');
HTML5 <picture>-elementet
HTML5 introducerade <picture>
element, som gör det möjligt att definiera flera bilder.
browserstöd
38.0 | 13 | 38.0 | 9.1 | 25.0 |
<picture>
Elementens funktion liknar <video>
och <audio>
Elementer. Vi har ställt in olika källor, och den första källan med prioritet är den använda källan:
Exempel
<picture> <source srcset="img_smallflower.jpg" media="(max-width: 400px)"> <source srcset="img_flowers.jpg"> <img src="img_flowers.jpg" alt="Flowers"> </picture>
srcset
Egenskapen är nödvändig, den definierar bildens källa.
media
Egenskapen är valfri, den accepterar värden som kan vara CSS @media-regel hittade mediefrågor.
Tips:Du bör också ange för de som inte stöder <picture>
Browsrdefinierade element <img>
Element.
- Föregående sida RWD mediefrågor
- Nästa sida RWD video