Почему не срабатывает media для блоков?

509
24 ноября 2016, 10:21

Здравствуйте. Есть блоки, которые при определенном разрешении экрана должны становиться невидимы. Но у меня почему то не срабатывает. Что я делаю нет так?

body { 
	font-family: Arial, sans-serif; 
	font-size: 12pt; 
} 
 
@media screen and (max-width: 320px) { 
    .b320 { display: block; } 
    .b480 { display: none; } 
    .b640 { display: none; } 
    .b768 { display: none; } 
    .b1000 { display: none; } 
} 
 
@media screen and (max-width: 480px) { 
    .b320 { display: none; } 
    .b480 { display: block; } 
    .b640 { display: none; } 
    .b768 { display: none; } 
    .b1000 { display: none; } 
} 
 
@media screen and (max-width: 640px) { 
    .b320 { display: none; } 
    .b480 { display: none; } 
    .b640 { display: block; } 
    .b768 { display: none; } 
    .b1000 { display: none; } 
} 
 
@media screen and (max-width: 768px) { 
    .b320 { display: none; } 
    .b480 { display: none; } 
    .b640 { display: none; } 
    .b768 { display: block; } 
    .b1000 { display: none; } 
} 
 
@media screen and (max-width: 1000px) { 
    .b320 { display: none; } 
    .b480 { display: none; } 
    .b640 { display: none; } 
    .b768 { display: none; } 
    .b1000 { display: block; } 
}
<div class="b320">media: <b>max-width: 320px</b></div> 
<div class="b480">media: <b>max-width: 480px</b></div> 
<div class="b640">media: <b>max-width: 640px</b></div> 
<div class="b768">media: <b>max-width: 768px</b></div> 
<div class="b1000">media: <b>max-width: 1000px</b></div>

Буду очень благодарен за помощь!

Answer 1

Если ширина меньше 320, то она и меньше 1000. А из css-правил выбирается последнее. Поэтому надо просто переставить все блоки в обратном порядке:

body { 
    font-family: Arial, sans-serif; 
    font-size: 12pt; 
} 
 
@media screen and (max-width: 1000px) { 
    .b320 { display: none; } 
    .b480 { display: none; } 
    .b640 { display: none; } 
    .b768 { display: none; } 
    .b1000 { display: block; } 
} 
 
@media screen and (max-width: 768px) { 
    .b320 { display: none; } 
    .b480 { display: none; } 
    .b640 { display: none; } 
    .b768 { display: block; } 
    .b1000 { display: none; } 
} 
 
@media screen and (max-width: 640px) { 
    .b320 { display: none; } 
    .b480 { display: none; } 
    .b640 { display: block; } 
    .b768 { display: none; } 
    .b1000 { display: none; } 
} 
 
@media screen and (max-width: 480px) { 
    .b320 { display: none; } 
    .b480 { display: block; } 
    .b640 { display: none; } 
    .b768 { display: none; } 
    .b1000 { display: none; } 
} 
 
@media screen and (max-width: 320px) { 
    .b320 { display: block; } 
    .b480 { display: none; } 
    .b640 { display: none; } 
    .b768 { display: none; } 
    .b1000 { display: none; } 
}
<div class="b320">media: <b>max-width: 320px</b></div> 
<div class="b480">media: <b>max-width: 480px</b></div> 
<div class="b640">media: <b>max-width: 640px</b></div> 
<div class="b768">media: <b>max-width: 768px</b></div> 
<div class="b1000">media: <b>max-width: 1000px</b></div>

Answer 2

Вот так будет работать:

body { font-family: Arial, sans-serif; font-size: 12pt; }

@media screen and (max-width: 320px) {
    .b320 { display: block; }
    .b480 { display: none; }
    .b640 { display: none; }
    .b768 { display: none; }
    .b1000 { display: none; }
}
@media screen and (max-width: 480px) and (min-width: 320px){
    .b320 { display: none; }
    .b480 { display: block; }
    .b640 { display: none; }
    .b768 { display: none; }
    .b1000 { display: none; }
}
@media screen and (max-width: 640px) and (min-width: 480px) {
    .b320 { display: none; }
    .b480 { display: none; }
    .b640 { display: block; }
    .b768 { display: none; }
    .b1000 { display: none; }
}
@media screen and (max-width: 768px) and (min-width: 640px){
    .b320 { display: none; }
    .b480 { display: none; }
    .b640 { display: none; }
    .b768 { display: block; }
    .b1000 { display: none; }
}
@media screen and (max-width: 1000px) and (min-width: 768px) {
    .b320 { display: none; }
    .b480 { display: none; }
    .b640 { display: none; }
    .b768 { display: none; }
    .b1000 { display: block; }
}

jsFiddle, у вас при маленьких разрешениях срабатывают сразу несколько медиазапросов.

READ ALSO
Проблема в верстке

Проблема в верстке

Помогите, я запутался. Откуда вылазит это маленькое белое пространство?.

557
Расположение элемента в центре экрана

Расположение элемента в центре экрана

Подскажите пожалуйста, как расположить блок точно в середине экрана,по горизонтали можно через margin : 0 auto, а как сделать по вертикали?.

484