2012-12-23 2 views
78

Ich versuche CSS3 Medienabfragen zu verwenden, um eine Klasse zu erstellen, die nur angezeigt wird, wenn die Breite größer als 400px und kleiner als 900px ist. Ich weiß, das ist wahrscheinlich sehr einfach und ich vermisse etwas Offensichtliches, aber ich kann es nicht herausfinden. Was ich mir ausgedacht habe, ist der folgende Code, schätze jede Hilfe.Media Queries - Zwischen zwei Breiten

@media (max-width:400px) and (min-width:900px) { 
    .class { 
     display: none; 
    } 
} 

Antwort

162

Sie benötigen Werte wechseln:

/* No greater than 900px, no less than 400px */ 
@media (max-width:900px) and (min-width:400px) { 
    .foo { 
     display:none; 
    } 
}​ 

Demo: http://jsfiddle.net/xf6gA/ (mit Hintergrundfarbe, so ist es einfacher, zu bestätigen)

+0

für mich sollte es max-device-width, max-width nicht arbeiten. – sairfan

+0

Hat super funktioniert. Genau das, was ich brauchte. Ich stelle es auf die minimalen Einstellungen von 200px ein. Um sicherzustellen, dass sich nichts bewegt. Wayne –

16

@ Jonathan Sampson Ich denke, Ihre Lösung falsch ist, dass Sie, wenn Verwenden Sie mehrere @media.

Sie sollten (min-width erste) verwenden:

@media screen and (min-width:400px) and (max-width:900px){ 
    ... 
} 
+4

Möchten Sie erklären warum? – DrCord

+0

Die Lösung von @ Jonathan Sampson funktioniert für mich. – Luillyfe

+1

Die akzeptierte Antwort ist keineswegs falsch, aber ich denke, dass die Verwendung von min-width zu max-width eine klarere, lesbare Konvention ist. –

0

.class { 
 
    display: none; 
 
} 
 
@media (min-width:400px) and (max-width:900px) { 
 
    .class { 
 
     display: block; /* just an example display property */ 
 
    } 
 
}