ホームページ ウェブフロントエンド htmlチュートリアル CSSでのボックスサイジングの簡単な説明(標準ボックスモデルと奇妙なボックスモデル)_html/css_WEB-ITnose

CSSでのボックスサイジングの簡単な説明(標準ボックスモデルと奇妙なボックスモデル)_html/css_WEB-ITnose

Jun 24, 2016 am 11:44 AM

今日、レイアウトを行うプログラムを書いているときに、CSS のボックス モデルに関する問題に遭遇しました。私は頭が悪く、文章がわかりにくいです。どうすればいいでしょうか? それで、自分でプログラムのテストを書いたのですが、その効果を見て、私は突然理解しました。以下に簡単に説明しますが、表面的かもしれません。しかし、フロントエンドの友人たちの助けになれば幸いです。

まず、box-sizing の値について説明します。box-sizing には、inheirt、content-box (標準ボックス モデル)、border-box (非標準ブラウザの奇妙なボックス モデル) の 3 つのオプションの値があります。 ie6) );

まず最初の値 content-box について説明します。これは box-sizing のデフォルト値です。これは、要素が実際に占めるスペースの幅 = 設定した幅 (幅) + 境界線 + 内部のスペースを意味します。 div の幅を 100px に設定すると、この div の境界線と間隔を設定すると、境界線と間隔が外側に広がります。実際の div の実際の幅は 100px より大きくなります。上記のコードと図は一目瞭然です。

まず、幅と高さが 100px の div を定義し、box-sizing を content-box に設定し、背景を赤に設定します。強調表示するには、青い背景に配置します。

<div id="bx1" style="width:300px;height:300px;background:blue;">        <div id="bx2" style="width:100px;height:100px;background:red;margin:0px auto;box-sizing:content-box;"></div></div>
ログイン後にコピー

次のように表示されます:

比較しやすいように、新しい div を追加します。前の div との唯一の違いは、黄色の 10 ピクセルを追加したことです。 Border;

<div id="bx1" style="width:300px;height:300px;background:blue;">        <div id="bx2" style="width:100px;height:100px;background:red;margin:0px auto;box-sizing:content-box;"></div>        <div id="bx3" style="width:100px;height:100px;background:red;margin:10px auto; box-sizing:content-box;border:10px solid yellow"></div></div>
ログイン後にコピー

結果は図に示すように、境界線が div の外側に拡張されます。

新しく追加した div に 10 ピクセルのパディングを追加します。 図に示すように、パディングも外側に拡張されます。 なぜ「hello」の位置に注目してください。 」。

#bx3{padding:10px;}
ログイン後にコピー
ログイン後にコピー

さて、1 つの属性についての話は終わったので、もう 1 つの属性であるボーダーボックスの話から始めましょう。元の div のボックス サイズをボーダー ボックスに変更します。

ボーダーボックスが内側に拡張されます。 box-sizing を border-box に設定すると、要素が実際に占めるスペースの幅は、border と spacing を設定した場合、内側に拡張されます。元の例をもう一度見てみましょう。 (強迫性障害患者であること、そして私はまだ完璧を追求していることをお許しください)

<div id="bx1" style="width:300px;height:300px;background:blue;">        <div id="bx2" style="width:100px;height:100px;background:red;margin:0px auto;color:white;box-sizing:border-box;">hello</div></div>
ログイン後にコピー

境界線と間隔のない最初の画像:

これで、比較のために新しい div が追加されました。元の div との唯一の違いです。幅が 10 ピクセルの黄色の境界線がさらにあるということです

<div id="bx1" style="width:300px;height:300px;background:blue;">        <div id="bx2" style="width:100px;height:100px;background:red;margin:0px auto;color:white;box-sizing:border-box;">hello</div>        <div id="bx3" style="width:100px;height:100px;background:red;margin:0px auto;color:white;box-sizing:border-box;border:10px solid yellow">hello</div></div>
ログイン後にコピー

結果は次のようになります: 境界線は内側に拡張します

次に、div に 10 ピクセルの内側マージンを追加します

#bx3{padding:10px;}
ログイン後にコピー
ログイン後にコピー

結果は次のようになります。内側のマージンが内側に移動して拡張します。「hello」の位置に注意してください。

ここで、皆さんはこれら 2 つの属性について明確にする必要があると思います。

まとめると、box-sizing には context-box、border-box、inherit の 3 つの値があります。Content-box は box-sizing のデフォルト値であり、要素が実際に占めるスペースの幅 = width を意味します。 (幅) + 境界線 + 内側の間隔を設定します。div の幅を設定した後、境界線と間隔を追加し、境界線と間隔を外側に拡張します。 border-box 要素が実際に占めるスペースの幅は、設定した幅と同じになります。ボーダーとスペースが設定されている場合、ボーダーとスペースは内側に広がります。継承属性に関しては、それが持つ属性をすべて継承することを誰もが知っているはずです。ほんの小さなことだったけど、とても長くて、最後に世界の元祖完璧主義者で強迫性障害の患者さんたちに問いかけました。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

&lt; datalist&gt;の目的は何ですか 要素? &lt; datalist&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:33 PM

この記事では、HTML&lt; Datalist&GT;について説明します。オートコンプリートの提案を提供し、ユーザーエクスペリエンスの改善、エラーの削減によりフォームを強化する要素。

&lt; Progress&gt;の目的は何ですか 要素? &lt; Progress&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:34 PM

この記事では、HTML&lt; Progress&gt;について説明します。要素、その目的、スタイリング、および&lt; meter&gt;との違い要素。主な焦点は、&lt; Progress&gt;を使用することです。タスクの完了と&lt; Meter&gt; statiの場合

&lt; meter&gt;の目的は何ですか 要素? &lt; meter&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:35 PM

この記事では、html&lt; meter&gt;について説明します。要素は、範囲内でスカラーまたは分数値を表示するために使用され、Web開発におけるその一般的なアプリケーション。それは差別化&lt; Meter&gt; &lt; Progress&gt;およびex

ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? Mar 20, 2025 pm 05:56 PM

この記事では、モバイルデバイスのレスポンシブWebデザインに不可欠なViewportメタタグについて説明します。適切な使用により、最適なコンテンツのスケーリングとユーザーの相互作用が保証され、誤用が設計とアクセシビリティの問題につながる可能性があることを説明しています。

&lt; iframe&gt;の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? &lt; iframe&gt;の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? Mar 20, 2025 pm 06:05 PM

この記事では、&lt; iframe&gt;外部コンテンツをWebページ、その一般的な用途、セキュリティリスク、およびオブジェクトタグやAPIなどの代替案に埋め込む際のタグの目的。

HTML5&lt; time&gt;を使用するにはどうすればよいですか 日付と時刻を意味的に表す要素? HTML5&lt; time&gt;を使用するにはどうすればよいですか 日付と時刻を意味的に表す要素? Mar 12, 2025 pm 04:05 PM

この記事では、html5&lt; time&gt;について説明します。セマンティックデート/時刻表現の要素。 人間の読み取り可能なテキストとともに、マシンの読みやすさ(ISO 8601形式)のDateTime属性の重要性を強調し、Accessibilitを増やします

HTML5のクロスブラウザー互換性のベストプラクティスは何ですか? HTML5のクロスブラウザー互換性のベストプラクティスは何ですか? Mar 17, 2025 pm 12:20 PM

記事では、HTML5クロスブラウザーの互換性を確保するためのベストプラクティスについて説明し、機能検出、プログレッシブエンハンスメント、およびテスト方法に焦点を当てています。

HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか? HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか? Mar 17, 2025 pm 12:27 PM

この記事では、ブラウザのユーザー入力を直接検証するために、必要、パターン、MIN、MAX、および長さの制限などのHTML5フォーム検証属性を使用して説明します。

See all articles