2012-12-23 30 views
78

Próbuję użyć zapytań o media CSS3, aby utworzyć klasę, która pojawia się tylko wtedy, gdy szerokość jest większa niż 400 pikseli i mniej niż 900 pikseli. Wiem, że to jest prawdopodobnie bardzo proste i brakuje mi czegoś oczywistego, ale nie mogę tego zrozumieć. To, co wymyśliłem, to poniższy kod, doceniam każdą pomoc.Zapytania o media - w dwóch szerokościach:

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

Odpowiedz

162

Musisz przełączyć swoje wartości:

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

Demo: http://jsfiddle.net/xf6gA/ (przy użyciu koloru tła, więc łatwiej jest potwierdzenie)

+0

dla mnie powinno być max-device-width, max-width nie działa. – sairfan

+0

Pracował świetnie. Dokładnie to, czego potrzebowałem. Ustawiłem to na minimalne ustawienia 200px. Aby upewnić się, że nic się nie rusza. Wayne –

16

@Jonathan Sampson Myślę, że rozwiązaniem jest źle, jeśli użyj wielu @media.

Należy użyć (min-width pierwszy):

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

Czy chciałbyś wyjaśnić, dlaczego? – DrCord

+0

Rozwiązanie @ Jonathan Sampson działa dla mnie. – Luillyfe

+1

Przyjęta odpowiedź nie jest błędna w żaden sposób, ale myślę, że używanie min-width do max-width jest bardziej przejrzystą i czytelną konwencją. –

0

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

Powiązane problemy