最大高さの設定を解除するにはどうすればよいですか?


161

max-height以前に一部のCSSルールで設定されている場合、プロパティをデフォルトにリセットするにはどうすればよいですか?これは機能しません:

pre {
  max-height: 250px;
}

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

回答:


306

にリセットしnoneます。

pre {
  max-height: 250px;
}

pre.doNotLimitHeight {
  max-height: none;
}

参照


これは機能しないことに注意してくださいmin-heightnone許可されていないため、値がオーバーライドされません)。
Jon

1
@Jonそうです、のデフォルト値min-heightは0ですが、「Infinity」はCSSの対象ではないため、max-heightデフォルトはnoneです。
マダラのゴースト

24

次のcssを使用して、max-height属性をクリアできます。

max-height:none; 

3

以下のようにあなたのスタイルに要素をJavaScriptを使用している場合だけノートでは、$el.style.maxHeight = '50px';使用して$el.style.maxHeight = 'none';「リセット」ではないだろうか、「削除」50px、それは単にそれを上書きします。つまり、要素を使用し$el.style.maxHeight = 'none';て要素の最大の高さを「リセット」しようとすると、そのnonemax-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人の担当者がいないためコメントできません。

乾杯。


1

どちらかを使用

max-height: none;

または

max-height: 100%;

:2番目のものは、包含ブロックの高さを基準にしています。


1
申し訳ありませんが、これは間違っています。max-heightの設定:100%は、包含ブロックの高さを基準にしています。したがって、実際の最大高さを制限します。
BiAiB

1

使用できます

max-height: unset;

これは、親から継承している場合はプロパティを継承値にリセットします(キーワード継承として機能します)。継承していない場合は、プロパティを初期値にリセットします(キーワード初期値として機能します)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.