Yanıtlar:
min-height0, ancak "Sonsuzluk" CSS'de bir şey olmadığından, max-heightvarsayılan olarak none.
Gibi stiline elemanı JavaScript kullanıyorsanız Sadece bir nota $el.style.maxHeight = '50px';kullanarak $el.style.maxHeight = 'none';"reset" olmaz ya da "kaldırma" 50px, sadece onu geçersiz kılacaktır. Bu, öğeyi kullanarak bir öğenin maksimum yüksekliğini "sıfırlamaya" çalışırsanız $el.style.maxHeight = 'none';, nonedeğeri max-heightöğenin özelliğine uygular ve max-heightbu öğeyle eşleşen CSS seçim kurallarındaki diğer geçerli özellikleri geçersiz kılar .
Bir örnek:
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.
});
Satır içi bir stili gerçekten "çözmek" için kullanmalısınız $el.style.removeProperty('max-height');.
Bunu, yalnızca tek bir öğe için değil, tüm stil kuralı için tamamlamak için, önce değiştirmek istediğiniz kuralı bulmalı ve ardından removePropertybu kuraldaki işlevi çağırmalısınız :
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;
}
}
İstediğiniz gibi StyleSheetve CssRulenesneleri bulabilirsiniz , ancak basit bir uygulama için yukarıdakilerin yeterli olacağından eminim.
Bunu cevap olarak verdiğim için üzgünüm, ama 50 temsilcim yok, bu yüzden yorum yapamam.
Şerefe.
Kullanabilirsiniz
max-height: unset;
üst öğeden miras alıyorsanız (anahtar kelime miras olarak çalışır) bir mülkü devralınan değerine sıfırlar ve devralmadığınız takdirde başlangıç değerine sıfırlanır (anahtar kelime başlangıcı olarak çalışır).
min-height(noneizin verilmez ve değerin geçersiz kılınmasına neden olmaz).