検索


ウィンドウとドキュメントのこれらの属性の値には互換性がありません。これは後で追加されます。
効果の表示はIE9以前のブラウザを無視し、主に主流のブラウザと携帯電話の効果を考慮しています。クライアント領域のサイズを参照するには、width と height

  • Clientheight と ClientWidth の属性を取得でき、コンテンツ領域+padding が表示されます
    •    #t1{
             width: 100px;
             height: 100px;
             border: 4px solid yellowgreen;
             background: yellow;
             padding: 10px;
         }
      e
    • p.clientWidth+ ';'+ p.clientHeight;

      JSでwidthを取得する方法の例120=width(100)+padding(10)*2;
      枠線は追加されません コンテンツがはみ出した場合やスクロールバーが表示された場合、幅と高さはカウントされません。

      は DOM オブジェクトの表示幅です。ここでの表示幅は、overflow:scroll; を設定した後にコンテンツの一部を非表示にすることを指します。



      offsetHeight と offsetWidth は要素の外部サイズ、つまりボーダー + パディング + 表示されるコンテンツ領域です overflow: scroll;后部分内容隐藏而说的。

    • offsetHeight与offsetWidth 是元素的外在大小,即 border +padding+可见内容区

      JSでwidthを取得する方法の例

      JSでwidthを取得する方法の例

      128 = width(100)+padding(10)2+border(4)2
      上图内容区溢出隐藏,是因为设置了overflow: scroll;才会有这样的现象。

    • scrolWidth与scrollHeight是元素的实际大小,即 实际内容区+padding

      JSでwidthを取得する方法の例

      JSでwidthを取得する方法の例

以上这三对属性都是针对dom元素的,可以测得元素的宽度,但是,细心的会发现,以上三种并没有提供获得width(100)的方法,所以可以使用window.getComputedStyle(p,null).getPropertyValue('width');
这样获得就是100。


其实比较难理解的是像window、document.body、document. documentElement这两个dom对象在获得他们的宽度时会有各种问题。
现在开始撕一下这其中的神奇。。。

  • document.body与document. documentElement
    前者是body,后者是html。但是现在大家都习惯将元素默认的padding与margin设置为0,这样无论是通过以上两种谁去访问clientWidth都是一样的值(电脑端一致)。
    但是手机端访问这两个值的时候会随着由于是客户端,我们会对网页的meta

    JSでwidthを取得する方法の例



    JSでwidthを取得する方法の例

    128 = width(100)+padding( 10)2+border(4)2
    上の図のコンテンツ領域がオーバーフローして非表示になるこの現象は、overflow:scroll; が設定されているために発生します。
    scrollWidthとscrollHeightは要素の実際のサイズ、つまり実際のコンテンツ領域+パディングです
  • JSでwidthを取得する方法の例
    JSでwidthを取得する方法の例



    上記の 3 つの属性のペアは次のとおりです。すべて dom 要素の場合、要素の幅を測定できますが、注意すると、上記の 3 つは幅 (100) を取得するメソッドを提供していないことがわかります。そのため、 window.getComputedStyle( p,null).getPropertyValue('width');

    結果は 100 です。
実際、理解するのがさらに難しいのは、window、document.body、document.documentElement などの 2 つの DOM オブジェクトが幅を取得するときにさまざまな問題を抱えていることです。 それでは、この魔法を見てみましょう。 。 。 document.bodyとdocument.documentElement前者はbody、後者はhtmlです。しかし今では、要素のデフォルトのパディングとマージンを 0 に設定することに誰もが慣れているため、上記の 2 つのメソッドを通じて誰が clientWidth にアクセスしても、その値は同じ (コンピューター側でも同じ) になります。 ただし、携帯電話がこれら 2 つの値にアクセスする場合、それはクライアントであるため、Web ページの meta タグにいくつかの設定を行ってから、これらを通じてアクセスされる属性の値を設定します。 2 つのオブジェクトは同じではありません。ただし、body は html のサブタグであるため、ビジュアルウィンドウのサイズ (clientWidth) を取得するには、後者の document.documentElement.clientWidth を使用することをお勧めします。 ドキュメント オブジェクトには compatMode 属性があり、これには 2 つの値があります: CSS1Compat は strict モードに対応します 要約すると、document.body の使用を放棄し、document.documentElement を使用してください。 次に話すのは、Web ページにメタタグを追加しない場合の影響についてです。adaptive
BackCompat は quirks モードに対応します IE6 より前のブラウザは最初のレンダリング モードであり、これにより IE6 はビジュアル ウィンドウ (clientWidth) を取得しました。アクセスするには、document.body.clientWidth を使用する必要があります。 IE6 インターン先の会社が辞めてしまいました。
window.innerWidth と document.documentElement.clientWidth のどちらを使用すればよいですか?
の知識が関係するため、タグの追加については別の記事を書こうと思います。 Android ブラウザ、iPhone の Safari ブラウザ、WeChat で実行されている QQ ブラウザを使用して、これら 2 つの携帯電話で Web ページにアクセスするテストを行いました。 テスト結果は確かに均一ではありません。 テスト前提: ページに固定幅を設定せず、メタタグも設定しないでください。 プロパティAndroidiphonewindow.innerWidth980px980px~.~.clientWidth980px
テスト結果:
🎜980px🎜 🎜 🎜🎜🎜🎜🎜🎜プロパティ🎜🎜Android WeChat🎜🎜iPhone WeChat🎜🎜🎜🎜🎜🎜window.innerWidth🎜🎜🎜320px🎜🎜🎜980px 🎜🎜 🎜🎜~.~.clientWidth🎜🎜980px🎜🎜980px🎜 🎜🎜 🎜

トラブルメーカーは常に存在します。 。 。
要約: モバイル ページの視覚的な幅を取得したい場合は、
document を使用することをお勧めします。 documentElement.clientWidth

次の記事では、さまざまな設定でのこの属性の値について説明します。メタタグが解析されます。

ところで: 私はまた戻ってきて、一生懸命勉強しています!

【関連おすすめ】

1. 無料のjsオンラインビデオチュートリアル

3. php.cn Dugu Jiijian (3) - JavaScriptビデオチュートリアル

以上がJSでwidthを取得する方法の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
JavaScriptとWeb:コア機能とユースケースJavaScriptとWeb:コア機能とユースケースApr 18, 2025 am 12:19 AM

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。

JavaScriptエンジンの理解:実装の詳細JavaScriptエンジンの理解:実装の詳細Apr 17, 2025 am 12:05 AM

JavaScriptエンジンが内部的にどのように機能するかを理解することは、開発者にとってより効率的なコードの作成とパフォーマンスのボトルネックと最適化戦略の理解に役立つためです。 1)エンジンのワークフローには、3つの段階が含まれます。解析、コンパイル、実行。 2)実行プロセス中、エンジンはインラインキャッシュや非表示クラスなどの動的最適化を実行します。 3)ベストプラクティスには、グローバル変数の避け、ループの最適化、constとletsの使用、閉鎖の過度の使用の回避が含まれます。

Python vs. JavaScript:学習曲線と使いやすさPython vs. JavaScript:学習曲線と使いやすさApr 16, 2025 am 12:12 AM

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

Python vs. JavaScript:コミュニティ、ライブラリ、リソースPython vs. JavaScript:コミュニティ、ライブラリ、リソースApr 15, 2025 am 12:16 AM

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

C/CからJavaScriptへ:すべてがどのように機能するかC/CからJavaScriptへ:すべてがどのように機能するかApr 14, 2025 am 12:05 AM

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

JavaScriptエンジン:実装の比較JavaScriptエンジン:実装の比較Apr 13, 2025 am 12:05 AM

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

ブラウザを超えて:現実世界のJavaScriptブラウザを超えて:現実世界のJavaScriptApr 12, 2025 am 12:06 AM

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)Apr 11, 2025 am 08:23 AM

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境