@Media min-width & max-width


224

Ich habe dieses @mediaSetup:

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 devicein der Meta habe und vielleicht max-width:480pxstattdessen?


1
WAS ist das Problem? Die Standardstile gelten für Bildschirme mit einer Breite von mehr als 769 Pixel.
Gurpreet Singh

Entfernen @media screen and (min-width:769px){Sie einfach die um Ihre normalen Browser-Stile
Zoltan Toth

Was meinst du mit Zoltan? Und ich denke, ich könnte es lösen. Erstens war das Problem, als ich die Größe meines Browsers mit max-device geändert habe - mit dem Telefon, aber nicht im Browser, ohne "Gerät" funktioniert es in beiden.
Rallybilen

Grundsätzlich funktioniert es ohne das "Gerät" sowohl auf dem Handy als auch im Browser, aber wenn ich ein Gerät hinzufüge, kann ich es nicht im Browser sehen. \
Rallybilen

1
Dies sollte 980pxnicht 960daran liegen, dass die Browsergröße bei endet 980px.

Antworten:


338

Ich habe festgestellt, dass die beste Methode darin besteht, Ihr Standard-CSS für ältere Browser zu schreiben, da ältere Browser, z. B. 5.5, 6, 7 und 8. @media nicht lesen können. 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 @media machen, was Sie wollen. Dies ist nur ein Beispiel dafür, was ich beim Erstellen von Stilen für alle Browser am besten für mich gefunden habe.

iPad CSS-Spezifikationen.

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


15
Warum haben Sie "Mac" -Bildschirme platziert? Es sind nicht nur "erstaunliche" Macs, die große hochauflösende Bildschirme haben können!
Luke

38

Das zugrunde liegende Problem ist die Verwendung von max-device-widthvs altmax-width .

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

Beispielsweise:

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

Gegen

@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.  */
}

11

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

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

Für Medienabfragen können Sie dies als festlegen

Dies deckt alle Ihre Handy- / Handybreiten ab

    @media only screen and (min-width: 200px) and (max-width: 767px)  {
    //Put your CSS here for 200px to 767px width devices (cover all mobile portrait width //

    }

Für iPad und iPad Pro müssen Sie verwenden

    @media only screen and (min-width: 768px) and (max-width: 1024px)  {
    //Put your CSS here for 768px to 1024px width devices(covers all iPad portrait width //

    }

Wenn Sie CSS für den Querformatmodus hinzufügen möchten, können Sie dies hinzufügen

und (Orientierung: Landschaft)

  @media only screen and (min-width: 200px) and (max-width: 767px) and (orientation : landscape) {
        //Put your CSS here for 200px to 767px width devices (cover all mobile landscape width //

        }

8

Der korrekte Wert für das contentAttribut sollte initial-scalestattdessen Folgendes enthalten :

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


2
Wenn Sie erklären könnten, warum und Referenzen hinzufügen könnten, wäre diese Antwort nützlicher.
Michael Benjamin

2
@Michael_B Die Initiale war 'benutzerskalierbar = nein'. Das sagt alles, was ich denke.
Apolo Radomer

0

Für einige iPhone müssen Sie Ihr Ansichtsfenster so platzieren

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, shrink-to-fit=no, user-scalable=0" />
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.