CSS @media-regel
- föregående sida max-width
- nästa sida min-block-size
Definition och användning
@media-regler används i mediaqueries för att tillämpa olika stilar för olika medietyper/enheter.
Mediaqueries kan användas för att kontrollera många saker, som t.ex.:
- Visningsområdets bredd och höjd
- Enhets bredd och höjd
- Riktning (är telefonen eller surfplattan i liggande eller stående läge?)
- Upplösning
Att använda mediaqueries är en populär teknik för att tillhandahålla anpassade stilarbäddar för datorer, bärbara datorer, surfplattor och telefoner (responsiv webbdesign).
Du kan också använda mediaqueries för att specificera att vissa stilar endast är tillämpliga för utskriftsdokument eller skärmläsare (mediatype: print, screen eller speech).
Förutom mediatyper finns det också mediaegenskaper. Mediaegenskaper ger mer specifika detaljer för mediefrågor genom att tillåta att testa specifika egenskaper hos användaragent eller skärmdisplay. Till exempel kan du applicera stilar endast på skärmar som är större eller mindre än en viss bredd.
Se också:
CSS-tutorial:CSS media queries
CSS-tutorial:CSS mediefrågeexempel
RWD-tutorial:Genom mediefrågor uppnår responsiv webbdesign
JavaScript referenshandbok:window.matchMedia() metod
Exempel
Exempel 1
Om bredden på webbläsarfönstret är 600px eller mindre, ändra bakgrundsfärgen på <body>-elementet till 'ljusblå':
@media only screen and (max-width: 600px) { body { background-color: lightblue; } }
Du kan hitta fler TIY-exempel längre ner på sidan.
CSS-syntaks
@media not|only mediatype and (mediafeature and|or|not mediafeature) { CSS-Code; }
Betydelsen av not, only och and-kärnorna:
not: not-kärnet omvänder hela innebörden av mediefrågan.
only: only-kärnet förhindrar att äldre webbläsare tillämpar de specificerade stilmärkena, som inte stöder mediefrågor med mediaegenskaper. Det har ingen inverkan på moderna webbläsare.
and: and-kärnet används för att kombinera mediaegenskaper med mediatyp eller andra mediaegenskaper.
De är valfria. Men om du använder not eller only måste du också specificera mediatypen.
Du kan också använda olika stilmärken för olika medier, såsom här:
<link rel="stylesheet" media="screen and (min-width: 900px)" href="widescreen.css"> <link rel="stylesheet" media="screen and (max-width: 600px)" href="smallscreen.css"> ....
Mediatyp
Värde | Beskrivning |
---|---|
all | Standard. Används för alla mediatyper av enheter. |
Används för skrivare. | |
screen | Används för datorskärmar, surfplattor, smartphones och liknande. |
speech | Används av skärmläsare för att läsa upp sidan. |
Mediaegenskaper
Värde | Beskrivning |
---|---|
any-hover |
Finns det några tillgängliga inmatningsmekanismer som tillåter användaren att hålla musen eller liknande över element? Lades till i Media Queries Level 4. |
any-pointer |
Finns det några pekare i tillgängliga inmatningsmekanismer, om ja, hur är noggrannheten? Lades till i Media Queries Level 4. |
aspect-ratio | Bredd- och höjdproportionaliteten för viewporten (synfältet). |
color |
Antalet bitar per pixel på utgångsenheten, vanligtvis 8, 16 eller 32 bitar. Värdet är 0 om enheten inte stöder färgutmatning. |
color-gamut |
Den ungefärliga färgdomänen som användaragenten och utgångsenheten stöder. Lades till i Media Queries Level 4. |
color-index |
Antalet poster i utgångsenhetens färgsökningstabell (color lookup table). Värdet är 0 om enheten inte använder en färgsökningstabell. |
device-aspect-ratio |
Bredd- och höjdproportionaliteten för utgångsenheten. Föråldrad i Media Queries Level 4. |
device-height |
Höjden på renderingsytan för utgångsenheten (t.ex. skärmen). Föråldrad i Media Queries Level 4. |
device-width |
Bredden på renderingsytan för utgångsenheten (t.ex. skärmen). Föråldrad i Media Queries Level 4. |
display-mode |
Visningsmodellen för applikationen, som specificerats av display-medlemmen i web app manifest. Definierad i Web App Manifest spec. |
forced-colors |
Om användaragenten begränsar paletten. Lades till i Media Queries Level 5. |
grid | Om utgångsenheten använder ett raster eller punktmatris skärm. |
height | Höjden på viewporten (synfältet). |
hover |
Om huvudinputmekanismen tillåter användaren att hålla musen över elementet? Lades till i Media Queries Level 4. |
inverted-colors |
Om webbläsaren eller den underliggande operativsystemet har omvänt färger. Lades till i Media Queries Level 5. |
light-level |
Den aktuella nivån av ljusnivå i omgivningen. Lades till i Media Queries Level 5. |
max-aspect-ratio | Den maximala proportionen mellan bredden och höjden på visningsområdet. |
max-color | Den maximala bitandelen för varje färgkomponent på utgångsenheten. |
max-color-index | Det maximala antalet färger som enheten kan visa. |
max-height | Det maximala höjden på visningsområdet, till exempel ett webbläsarfönster. |
max-monochrome | Det maximala bitantalet för varje 'färg' på monokrom (gråskala) enheter. |
max-resolution | Den maximala upplösningen för enheten, mätt i dpi eller dpcm. |
max-width | Det maximala bredden på visningsområdet, till exempel ett webbläsarfönster. |
min-aspect-ratio | Den minsta proportionen mellan bredden och höjden på visningsområdet. |
min-color | Den minsta bitandelen för varje färgkomponent på utgångsenheten. |
min-color-index | Antalet färger som enheten kan visa. |
min-height | Den minsta höjden på visningsområdet, till exempel en webbläsarfönster. |
min-monochrome | Varje 'färg' minsta bitantal på monokrom (gråskala) enheter. |
min-resolution | Enhetens minsta upplösning, använd dpi eller dpcm. |
min-width | Minsta bredd på visningsområdet, t.ex. browserns fönster. |
monochrome |
Bitdjupet för varje pixel i enhetens ensamma färgram. Om enheten inte är en svartvit skärm är värdet 0. |
orientation | Riktningen som viewporten roterar i (lantläge eller stående läge). |
overflow-block |
Hur hanterar utdataenheter innehåll som överskrider block-axeln i viewporten. Lades till i Media Queries Level 4. |
overflow-inline |
Kan innehåll som överskrider inline-axeln i viewporten rullas? Lades till i Media Queries Level 4. |
pointer |
Är den huvudsakliga inmatningsmekanismen en pekinsättning? Om ja, hur är dess noggrannhet? Lades till i Media Queries Level 4. |
prefers-color-scheme |
Detektera om användaren föredrar ljus eller mörk färgskala. Lades till i Media Queries Level 5. |
prefers-contrast |
Detektera om användaren har begärt att öka eller minska kontrasten mellan närliggande färger. Lades till i Media Queries Level 5. |
prefers-reduced-motion |
Vill användaren att det finns färre dynamiska effekter på sidan? Lades till i Media Queries Level 5. |
prefers-reduced-transparency |
Använder användaren föredragen lägre genomskinlighet? Lades till i Media Queries Level 5. |
resolution | Upplösningen för utdataenheter, använd dpi eller dpcm. |
scan | Skanningsprocessen för utdataenheter (gäller för TV och liknande). |
scripting |
Detektera om skript (t.ex. JavaScript) är tillgängligt. Lades till i Media Queries Level 5. |
update |
Frekvensen med vilken utdataenheter uppdaterar renderingsresultatet. Lades till i Media Queries Level 4. |
width | Bredd på viewport (viewport). |
Fler exempel
Exempel 2
Dölj element när browserns bredd är 600px eller mindre:
@media screen and (max-width: 600px) { div.example { display: none; } }
Exempel 3
Om viewportens bredd är 800 pixlar eller bredare, använd mediefrågor för att sätta bakgrundsfärgen till lila; om viewportens bredd är mellan 400 och 799 pixlar, använd mediefrågor för att sätta bakgrundsfärgen till ljusgrön. Om viewporten är mindre än 400 pixlar, är bakgrundsfärgen ljusblå:
body { background-color: lightblue; } @media screen and (min-width: 400px) { body { background-color: ljusgrön; } } @media screen and (min-width: 800px) { body { background-color: lila; } }
Exempel 4
Skapa en responsiv navigationsmeny (visas horisontellt på stora skärmar och vertikalt på små skärmar):
@media screen and (max-width: 600px) { .topnav a { float: none; width: 100%; } }
exempel 5
Skapa en responsiv kolonnlayout med hjälp av mediafrågor:
/* Byt från fyra kolonner till två kolonner vid 992px eller mindre */ @media screen and (max-width: 992px) { .column { width: 50%; } } /* Plocka ihop kolonnerna i bredder mindre än eller lika med 600 pixlar, istället för att visa dem sida vid sida */ @media screen and (max-width: 600px) { .column { width: 100%; } }
exempel 6
Skapa en responsiv webbplats med hjälp av mediafrågor:
exempel 7
Mediafrågor kan också användas för att ändra sidans layout baserat på webbläsarens orientering. Du kan skriva en uppsättning CSS-attribut som endast gäller när fönstrets bredd är större än dess höjd (dvs. 'landscape'-läge).
Använd ljusblå bakgrundsfärg om orienteringen är i landskapsläge:
@media only screen and (orientation: landscape) { body { background-color: lightblue; } }
exempel 8
Använd mediafrågor för att sätta textfärgen till grön när dokumentet visas på skärmen och svart vid utskrift:
@media screen { body { color: green; } } @media print { body { color: black; } }
exempel 9
komma-separerad lista: Använd komma för att lägga till en annan mediafråga till en befintlig mediafråga (dess beteende liknar OR-operatorn):
/* När bredden är mellan 600px och 900px eller större än 1100px - ändra utseendet på <div> */ @media screen and (max-width: 900px) and (min-width: 600px), (min-width: 1100px) { div.example { font-size: 50px; padding: 50px; border: 8px solid black; background: yellow; } }
webbläsarstöd
Talen i tabellen anger den första webbläsarversionen som fullständigt stöder @media-regeln.
Chrome | IE / Edge | Firefox | Safari | Opera |
---|---|---|---|---|
21 | 9 | 3.5 | 4.0 | 9 |
- föregående sida max-width
- nästa sida min-block-size