Я пытаюсь добавить переключатель галочки, который скрывает и показывает элементы списка, изменяя атрибут отображения стиля от «none» до «inline», но он не работает. Я устанавливаю стиль атрибута «display: none» в файле CSS. Затем я установил его в «display: inline» в javascript, когда кто-то проверяет коробку. Javascript успешно меняет свойство элемента на inline, но по какой-то причине элемент остается невидимым.Переопределение CSS-стиля «display: none» в javascript
Если я делаю обратное, установив отображение в строку в CSS и переопределив его никому в javascript, он отлично работает. Я не понимаю, почему это будет работать в одном направлении, но не в другом.
Я использую хром. Вот код. Любые отзывы приветствуются.
CSS файл:
#tabmenu li[status='disabled'] a, a.active, #disabled {
color: #777777;
background: #DDDDDD;
font: normal 1em Arial;
border: 1px solid black;
border-radius: inherit;
padding: 0px 5px 0px 5px;
margin: 0px;
text-decoration: none;
cursor:hand;
display:none;
}
HTML:
<ul id="tabmenu">
<li name='tab' id='tab1' selected='no' status='disabled'></li>
</ul>
JAVASCRIPT (из командной строки или OnChange из флажком)
tab = document.getElementById('tab1');
tab.style.display = 'inline';
UPDATE: Я знаю, что я может просто переместить «display: none» из css и установить его на none pag e загрузить с javascript. Но если я это сделаю, он будет скрывать их после загрузки страницы, а это значит, что на более медленных компьютерах пользователь может увидеть, как они мгновенно закроются в видимости. Вот почему я использую css для установки начального состояния, а затем пытаюсь переопределить его, когда флажок установлен или снят.
ОБНОВЛЕНИЕ 2: Подчеркнем, что если я задаю элемент видимым в css, а затем спрячу его при замене флажка, этот код работает нормально. Но если элемент изначально установлен на невидимый в css, флажок не может сделать элемент видимым. Таким образом, это проблема, когда css «display: none» не может быть переопределен после загрузки страницы, но css «display: inline» может.
Именно так. Спасибо, Пол! Были и два других ответа, которые были также правильными, но я не могу сказать, во что он пришел первым, поэтому я выбрал это несколько случайным образом среди них и поддержал два других. Все другие вещи, которые нужно было применить к элементу, поэтому я переместил дисплей: ни один из них не вышел в отдельный раздел CSS. – jsarma