Answers:
请注意,如果您使用JavaScript对元素进行样式设置(例如$el.style.maxHeight = '50px';
使用),$el.style.maxHeight = 'none';
则不会“重置”或“移除” 50px
,它只会覆盖它。这意味着,如果您尝试使用$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个代表,所以我无法发表评论。
干杯。
您可以使用
max-height: unset;
如果您要从其父项继承(将其用作关键字herent),它将重置属性为其继承的值;如果您不继承该属性,则会将其重置为其初始值(将用作关键字initial)。
min-height
(none
不允许,并导致不覆盖该值)。