Как мне reset свойство max-height по умолчанию, если оно было ранее установлено в некотором правиле css? потому что это не работает:
pre {
max-height: 250px;
}
pre.doNotLimitHeight {
max-height: auto; //Doesn't work at least in chrome
}
Как мне reset свойство max-height по умолчанию, если оно было ранее установлено в некотором правиле css? потому что это не работает:
pre {
max-height: 250px;
}
pre.doNotLimitHeight {
max-height: auto; //Doesn't work at least in chrome
}
Reset до none
:
pre {
max-height: 250px;
}
pre.doNotLimitHeight {
max-height: none;
}
Вы можете очистить атрибут max-height, используя следующий css:
max-height:none;
Просто обратите внимание, что если вы используете JavaScript для стилирования элемента типа $el.style.maxHeight = '50px';
с помощью $el.style.maxHeight = 'none';
не будет "reset" или "удалить" 50px
, он просто переопределит его. Это означает, что если вы попытаетесь "reset" максимальную высоту элемента с помощью $el.style.maxHeight = 'none';
, он применит значение none
к свойству max-height
элемента, переопределив любые другие допустимые свойства max-height
в CSS которые соответствуют этому элементу.
Пример:
styles.css
.set-max-height { max-height: 50px; }
main.js
document.querySelectorAll('.set-max-height').forEach($el => {
if($el.hasAttribute('data-hidden')){
$el.style.maxHeight = '0px'; // Set max-height to 0px.
} else {
$el.style.maxHeight = 'none'; // 'Unset' max-height according to accepted answer.
});
Чтобы фактически "отменить" встроенный стиль, вы должны использовать $el.style.removeProperty('max-height');
.
Чтобы выполнить это для всего правила стиля, а не только для одного элемента, вы должны сначала найти правило, которое хотите изменить, а затем вызвать функцию removeProperty
в этом правиле:
for(let i = 0; i < document.styleSheets[0].cssRules.length; ++i){
if(document.styleSheets[0].cssRules[i].selectorText == '.set-max-height'){
document.styleSheets[0].cssRules[i].style.removeProperty('max-height');
break;
}
}
Вы можете найти объекты StyleSheet
и CssRule
, но вы хотите, но для простого приложения я уверен, что выше было бы достаточно.
Извините, что поставил это как ответ, но у меня нет 50 rep, поэтому я не могу комментировать.
Приветствия.