今回は、徹底的にCSSボックスモデルを理解する(図示)

まず、基本的な概念CSSボックスモデルで見てみましょう:

マージン、ボーダー、パディング、および実際のコンテンツを:含むCSSボックスモデルの性質上のHTML要素を囲む箱パッケージです。カートリッジのモデルは、他の要素と要素の間の空間が要素の境界線の周囲に配置されている私たちをことができます。カセット型の2種類があり、標準的なボックスモデルIEの型枠は、

箱サイズ

幅=幅ボックス内容充填+ +左+右パディング左ボーダー右ボーダー+ + +から右マージンを残しました
フレーム上の高さ=充填のコンテンツボックスの高さ+ + +充填下部マージン境界は+ + +ボトムマージン

標準モデルとカートリッジボックスの違いIE

  • 標準的なボックスモデル:内容=コンテンツ

  • IEのボックスモデル:コンテンツ=幅+パディング+ボーダー

二つのモデルのCSSを設定する方法

  • ボックスのサイズ変更プロパティによってCSS
  • 標準的なボックスモデル:コンテンツボックス
  • IEのボックスモデル:ボーダーボックス

モデルに対応したカートリッジJSの幅と高さを取得する方法

  • node.style.height /幅
このようにのみインラインスタイルDOM要素の幅と高さの両方を取り、外側のリンクを介して導入されたスタイルに設けられたインラインスタイルスタイルタグは、ノードの幅と高さを取得していません
   <div style="width:100px;height:50px" id="agoni">agoni</div>
   
   document.getElementById("agoni").style.width ="200px";
1、動作のみのインラインスタイル。
図2に示すように、コンテンツ、パディング及び境界部分を含む領域のみ(のみコンテンツ)に含まれていません。
図3に示すように、ユニットと戻り値は、戻り値のデータ型の値は文字列です。
  • node.currentStyle.width /高さ(すなわちのみサポート)
このアプローチは、レンダリングされた取得の結果であるが、唯一のIEブラウザの旧バージョンをサポートし、この機能は非標準である、本番環境では使用しないようにしてください。スタイル、インラインスタイルはアウトリーチ支払われ、戻り値を単位と、戻り値のデータ型はStringです。残念ながら、IEのみをサポートしています。
  • window.getComputedStyleが(ノード).width /高さ
window.getComputedStyle()方法返回一个对象
返回值带单位,返回值的数据类型是string。

  • node.getBoundingClientRect().width/height
1、返回元素的大小及其 只相对于可视去窗口。包含 边框(border)内边距(padding)以及CSS设置的 宽度(width)
2、返回值不带单位,返回值的数据类型是number。

  • node.offsetWidth/offsetHeight
1、包含元素的边框(border)、内边距(padding)、滚动条(scrollbar)(如果存在的话)、以及CSS设置的宽度(width)和高度(height)的值。
2、返回值不带单位,返回值的数据类型是number;
3、还有offsetHeight/Width、offsetLeft/Top
4、offset 的方向值需要考虑到父级,如果父级是定位元素,那么子元素的offset值相对于父元素,如果父元素不是定位元素,那么子元素的offset值相对于可视区窗口。
学如逆水行舟,不进则退
发布了540 篇原创文章 · 获赞 1522 · 访问量 22万+

おすすめ

転載: blog.csdn.net/weixin_42429718/article/details/104448450