2013-12-02 3 views
3
@media screen and (min-width: 900px) and (max-width: 1215px) { 
#menu { 
     display:none; 
    } 
} 

Это не работает, div все еще отображается. Однако, если я изменю дела до <div class="menu"> вместо <div id="menu"> и CSS:Css дисплей не работает

@media screen and (min-width: 900px) and (max-width: 1215px) { 
    .menu { 
     display:none; 
    } 
} 

это работает. Почему это происходит?

EDIT

Вот что говорит инспектор:

element { 
    display: block; 
} 
#listMenuTop { 
    display: none; 
} 
#listMenuTop { 
    display: none; 
    margin-bottom: -14px; 
    margin-top: 10px; 
} 

Но оба дисплея: нет скрещены. Где находится дисплей: block; происходит от ?

EDIT 2

Я нашел проблему. Функция JS была перезапись свойства отображения CSS:

document.getElementById('listMenuTop').style.display='block'; 

То, что я хочу сделать, это скрыть #listMenuTop когда экран> = 900px и когда экран < 900px, чтобы иметь возможность отобразить/скрыть #listMenuTop от кнопки. Проблема в том, что когда #listMenuTop отображается на экране < 900px, он не скрывает, если я изменяю размер экрана более чем на 900 пикселей, потому что эта функция js всегда переписывает свойство отображения.

+0

Возможно ли, что у вас есть другое '# меню? На странице должно быть только 1 идентификатор. – Albzi

+0

Должен работать [jsFiddle] (http://jsfiddle.net/QENQd/) – nkmol

+0

@BeatAlex no. У меня нет другого #меню. – user2361682

ответ

4

Попробуйте вместо этого:

@media screen and (min-width: 900px) and (max-width: 1215px) { 
    #menu { 
     display:none !important; 
    } 
} 

Благодаря

1

Поскольку ваш инспектор говорит, что вы имеете встроенные стили добавлены Javascript (вопрос обновлено) как:

<div id="listMenuTop" style="display: block;"> ... </div> 

чем ваш CSS должен выглядят так:

@media screen and (min-width: 900px) and (max-width: 1215px) { 
     /* Following will override inline style */ 
     #listMenuTop[style] { 
      display: none !important; 
     } 
} 
+0

Я бы не предложил кому-то использовать '! Important', когда это можно исправить только с помощью селектора. * Более конкретный селектор имеет более высокий приоритет * – nkmol

+0

Вот почему «важный» не является моим основным ответом. Но все же, если бы это было рассмотрено как «! Important» на первом месте, чем вам нужно переопределить его таким же образом, значит с '! Important'. – skobaljic

+0

Тем не менее, если он использует '! Important', лучше удалить селектор'! Important'. Однако я вижу, что вы обновили свой код, отредактируйте свой код один раз, чтобы я мог вернуть свой -1. Но все же предлагайте никогда не использовать '! Important'. – nkmol

Смежные вопросы