要素の高さからパディング、マージン、ボーダーの幅を除いたものを取得する
2023-10-08 23:18:33
質問
インラインのheight宣言がない場合に、要素の高さだけを(垂直パディング、ボーダー、マージンを除いて)取得することが可能かどうか、どなたかご存知でしょうか?IE8以降をサポートする必要があります。
el.style.height
は、スタイルが外部スタイルシートに設定されているため、動作しません。
el.offsetHeight
または
el.clientHeight
は、要素の高さ以上の値を含んでいるため、動作しません。また、要素のパディングなどを差し引くこともできません。これらの値もインラインではなくCSSスタイルシートで設定されるからです(そのため
el.style.paddingTop
は機能しません)。
もできません。
window.getComputedStyle(el)
もできません。
jQueryにはheight()メソッドがあり、これを提供していますが、私はこのプロジェクトでjQueryを使用しておらず、さらに私は純粋なJavaScriptでこれを行う方法を知りたいだけです。
どなたか考えをお持ちですか?とても感謝しています。
どのように解決するのですか?
element.getComputedStyle
の値に応じて高さを返します。
box-sizing
. もし要素が
box-sizing: content-box;
を使っている場合は
getComputedStyle
を使うと、パディングやボーダーなしで高さを計算することができます。
var style = window.getComputedStyle(document.getElementById("Example"), null);
style.getPropertyValue("height");
上記バージョンはモダンブラウザで動作します。IEブラウザの場合はcurrentStyleを確認してください。
クロスブラウザです。
try {
el = window.getComputedStyle(document.getElementById('example'), null)
.getPropertyValue('height');
} catch(e) {
el = document.getElementById('example').currentStyle.height;
}
関連
-
[解決済み】divの高さを画面の残りスペースで埋めるようにする
-
[解決済み] 幅・高さをピクセル単位からパーセント単位で設定する。
-
[解決済み] JavaScriptで現在のURLを取得する?
-
[解決済み] JavaScriptで現在の日付を取得するには?
-
[解決済み] セレクタの子を取得する方法は?
-
[解決済み] 画面サイズ、現在のウェブページ、ブラウザウィンドウのサイズを取得する
-
[解決済み] CSS 100% height と padding/margin の関係
-
[解決済み] CORS OriginヘッダーとCSRFトークンによるCSRF保護
-
[解決済み] 文字列がhtmlであるかどうかをチェックする
-
[解決済み] CORS: 認証モードは 'include' です。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JavaScriptでスクロールバーの幅を取得する [重複]。
-
[解決済み] javascriptで2つの数値を連結する方法は?
-
[解決済み] Angularjs - 現在の日付を表示する
-
[解決済み] Chart.jsを使ってドーナツチャートの中にテキストを追加するには?
-
[解決済み] オブジェクトの配列からReactコンポーネントをレンダリングする
-
[解決済み] JavaScriptのtoString()関数をオーバーライドして、デバッグ用に意味のある出力を提供することは可能でしょうか?
-
[解決済み] コールバック地獄とは何か、RXはそれをどのように、そしてなぜ解決するのか?
-
[解決済み] ECMAScriptとは?
-
[解決済み] javascriptでオプションのパラメータを扱う
-
[解決済み] なぜjavascriptのES6 Promisesはresolve後も実行を継続するのですか?