CSS-medieforespørgsler


Indholdsfortegnelse

    Vis indholdsfortegnelse


CSS2 introducerede medietyper

Reglen @media, introduceret i CSS2, gjorde det muligt at definere forskellige stilregler for forskellige medietyper.

Eksempler: Du kunne have ét sæt stilregler for computerskærme, én for printere, en til håndholdte enheder, en til tv-enheder og så videre.

Desværre fik disse medietyper aldrig megen støtte fra andre enheder end udskriftsmedietypen.


CSS3 introducerede medieforespørgsler

Medieforespørgsler i CSS3 udvidede ideen til CSS2-medietyper: I stedet for at lede efter en type enhed, de ser på evnen til enhed.

Medieforespørgsler kan bruges til at kontrollere mange ting, såsom:

  • visningsportens bredde og højde

  • enhedens bredde og højde

  • retning (er tabletten/telefonen i liggende eller stående tilstand?)

  • løsning

Brug af medieforespørgsler er en populær teknik til at levere en skræddersyet stil ark til stationære computere, bærbare computere, tablets og mobiltelefoner (såsom iPhone- og Android-telefoner).


Browser support

Tallene i tabellen angiver den første browserversion, der fuldt ud understøtter reglen @media.

Property
@media 21.0 9.0 3.5 4.0 9.0

Medieforespørgselssyntaks

En medieforespørgsel består af en medietype og kan indeholde en eller flere udtryk, som enten er sande eller falske.

@media not|only mediatype and  (expressions) {
  CSS-Code;
}

Resultatet af forespørgslen er sand, hvis den angivne medietype matcher den type enhed, dokumentet er bliver vist på, og alle udtryk i medieforespørgslen er sande. Når en medieforespørgsel er sand, er det tilsvarende typografiark eller stilregler anvendes efter de normale kaskaderegler.

Medmindre du bruger ikke- eller kun-operatørerne, er medietypen valgfri og alle-typen vil være underforstået.

Du kan også have forskellige stylesheets til forskellige medier:

<link rel="stylesheet" media="mediatype and|not|only (expressions)" href="print.css">


CSS3 medietyper

all

Anvendes til alle medietypeenheder

print

Bruges til printere

screen

Bruges til computerskærme, tablets, smartphones mv.

speech

Bruges til skærmlæsere, der "læser" siden højt


Medieforespørgsler Simple eksempler

En måde at bruge medieforespørgsler på er at have en alternativ CSS-sektion lige inde i dit typografiark.

Følgende eksempel ændrer baggrundsfarven til lysegrøn, hvis viewporten er 480 pixels bred eller bredere (hvis viewporten er mindre end 480 pixels, baggrundsfarven vil være pink):

Eksempel

@media screen and (min-width: 480px) {
  body {
    background-color: lightgreen;
  }
}

Prøv det selv →

<!DOCTYPE html>
<html>
<head>
<style>
body {
  background-color: pink;
}

@media screen and (min-width: 480px) {
  body {
    background-color: lightgreen;
  }
}
</style>
</head>
<body>

<h1>Resize the browser window to see the effect!</h1>
<p>The media query will only apply if the media type is screen and the viewport is 480px wide or wider.</p>

</body>
</html>


Følgende eksempel viser en menu, der vil flyde til venstre på siden, hvis viewporten er 480 pixels bred eller bredere (hvis viewporten er mindre end 480 pixels, menuen vil være oven på indholdet):

Eksempel

@media screen and (min-width: 480px) {
  #leftsidebar 
{width: 200px; float: left;}
  #main 
{margin-left: 216px;}
}

Prøv det selv →

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
.wrapper {overflow: auto;}

#main {margin-left: 4px;}

#leftsidebar {
  float: none;
  width: auto;
}

#menulist {
  margin: 0;
  padding: 0;
}

.menuitem {
  background: #CDF0F6;
  border: 1px solid #d4d4d4;
  border-radius: 4px;
  list-style-type: none;
  margin: 4px;
  padding: 2px;
}

@media screen and (min-width: 480px) {
  #leftsidebar {width: 200px; float: left;}
  #main {margin-left: 216px;}
}
</style>
</head>
<body>

<div class="wrapper">
  <div id="leftsidebar">
    <ul id="menulist">
      <li class="menuitem">Menu-item 1</li>
      <li class="menuitem">Menu-item 2</li>
      <li class="menuitem">Menu-item 3</li>
      <li class="menuitem">Menu-item 4</li>
      <li class="menuitem">Menu-item 5</li>
    </ul>
  </div>
  
  <div id="main">
    <h1>Resize the browser window to see the effect!</h1>
    <p>This example shows a menu that will float to the left of the page if the viewport is 480 pixels wide or wider. If the viewport is less than 480 pixels, the menu will be on top of the content.</p>
  </div>
</div>

</body>
</html>


Flere eksempler på medieforespørgsler

For meget flere eksempler på medieforespørgsler, gå til næste side: CSS MQ-eksempler.


CSS @media Reference

For en fuld oversigt over alle medietyper og funktioner/udtryk, se venligst @media-reglen i vores CSS-reference.