Как снять максимальную высоту?

Как мне reset свойство max-height по умолчанию, если оно было ранее установлено в некотором правиле css? потому что это не работает:

pre {
  max-height: 250px;
}

pre.doNotLimitHeight {
  max-height: auto; //Doesn't work at least in chrome
}

Ответ 1

Reset до none:

pre {
  max-height: 250px;
}

pre.doNotLimitHeight {
  max-height: none;
}

Ссылка

Ответ 2

Вы можете очистить атрибут max-height, используя следующий css:

max-height:none; 

Ответ 3

Просто обратите внимание, что если вы используете 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, поэтому я не могу комментировать.

Приветствия.