it-swarm.com.de

@Media min-width & max-width

Ich habe dieses @media Setup:

HTML:

<head>
  <meta name="viewport" content="width=device-width, user-scalable=no" />
</head>

CSS:

@media screen and (min-width: 769px) {
    /* STYLES HERE */
}

@media screen and (min-device-width: 481px) and (max-device-width: 768px) { 
    /* STYLES HERE */
}

@media only screen and (max-device-width: 480px) {
    /* STYLES HERE */
}

Mit diesem Setup funktioniert es auf dem iPhone, aber nicht im Browser.

Liegt es daran, dass ich bereits device im Meta habe und vielleicht stattdessen max-width:480px habe?

199
rallybilen

Ich habe herausgefunden, dass die beste Methode darin besteht, Ihr Standard-CSS für ältere Browser wie z. B. 5.5, 6, 7 und 8 zu schreiben. @Media kann nicht gelesen werden. Wenn ich @media benutze, benutze ich es so:

<style type="text/css">
    /* default styles here for older browsers. 
       I tend to go for a 600px - 960px width max but using percentages
    */
    @media only screen and (min-width: 960px) {
        /* styles for browsers larger than 960px; */
    }
    @media only screen and (min-width: 1440px) {
        /* styles for browsers larger than 1440px; */
    }
    @media only screen and (min-width: 2000px) {
        /* for sumo sized (mac) screens */
    }
    @media only screen and (max-device-width: 480px) {
       /* styles for mobile browsers smaller than 480px; (iPhone) */
    }
    @media only screen and (device-width: 768px) {
       /* default iPad screens */
    }
    /* different techniques for iPad screening */
    @media only screen and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation:portrait) {
      /* For portrait layouts only */
    }

    @media only screen and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation:landscape) {
      /* For landscape layouts only */
    }
</style>

Aber Sie können mit Ihrem @media tun, was Sie wollen. Dies ist nur ein Beispiel dafür, was ich am besten für mich gefunden habe, als ich Stile für alle Browser erstellt habe.

iPad CSS-Spezifikationen.

Ebenfalls! Wenn Sie nach Bedruckbarkeit suchen, können Sie @media print{} verwenden.

307
sourRaspberri

Das zugrunde liegende Problem ist die Verwendung von max-device-width im Vergleich zu einfachem altem max-width.

Die Verwendung des Schlüsselworts "device" zielt auf die physische Dimension des Bildschirms ab, nicht auf die Breite des Browserfensters.

Zum Beispiel:

@media only screen and (max-device-width: 480px) {
    /* STYLES HERE for DEVICES with physical max-screen width of 480px */
}

Versus

@media only screen and (max-width: 480px) {
    /* STYLES HERE for BROWSER WINDOWS with a max-width of 480px. 
       This will work on desktops when the window is narrowed.  */
}
33
jpostdesign

Der richtige Wert für das Attribut content sollte stattdessen initial-scale enthalten:

<meta name="viewport" content="width=device-width, initial-scale=1">
                                                   ^^^^^^^^^^^^^^^
8
Ksenia Titova

Wenn sich eine Website auf kleinen Geräten wie ein Desktop-Bildschirm verhält, müssen Sie dieses Meta-Tag zuvor in den Header einfügen

<meta name="viewport" content="width=device-width, initial-scale=1">

Für Medienabfragen können Sie dies als einstellen

@media only screen and (max-width: 600px) and (min-width: 400px)  {
//Put your CSS here for 400px to 600px width devices //
}
3
Rohit Kaushik