CSS ボックスモデルのアルゴリズムとアプリケーションの詳細な説明

CSS ボックスモデルのアルゴリズムとアプリケーションの詳細な説明

ここでは、ブロックレベル ボックスのデフォルトの幅、幅のない絶対配置ボックス、幅のないフローティング ボックスなどを中心に、CSS ボックス モデルの概念と応用について説明します。この記事を学習することで、CSS ボックス モデルの概念と使用法について深く理解できるようになると思います。

CSS ボックスモデル

Web デザインにおけるすべての要素は長方形のボックスです。ボックスのサイズを正確に計算する方法については、以下の図を参照してください。


Firebug ユーザーであれば (基本的にフロントエンドに関連するものはすべて Firebug を使用します - Sugar と Tomatoes)、以下の表によく馴染みがあるでしょう。

このチャートは、ページ上の任意のボックスに作用する値を表示するのに最適です。

上記の両方の例では、余白が白であることに注意してください。マージンはボックス自体のサイズには影響しないという点で特別ですが、

ボックスに関連する他のコンテンツに影響するため、マージンはボックス モデルの重要な部分です。

ボックス自体のサイズは次のように計算されます。

幅 = 自身の幅 + 左パディング + 右パディング + 左ボーダー + 右ボーダー

高さ = 自身の高さ + 上部パディング + 下部パディング + 上部ボーダー + 下部ボーダー

未宣言の値

パディングまたはボーダーが宣言されていない場合は、ゼロ(cssreset を使用する場合)またはブラウザのデフォルト値(通常はリセットされないフォーム要素の場合は特に、ゼロ以外の値になる可能性が高い)になります。

ブロックレベルボックスのデフォルトの幅

幅が宣言されておらず、ボックスが静的であるか、CSS ボックス モデル内で相対的に配置されている場合、幅は 100% のままで、パディングと境界線は外側に広がるのではなく内側に押し込まれます。

ただし、ボックスの幅を明示的に 100% に設定すると、パディングは外側に拡張されます。


ボックスのデフォルトの幅は実際には 100% ではなく、残りの可能な値 (つまり、残りの実際の幅、つまり砂糖とトマト) であることに注意してください。この特別な値は、多くの場合、幅を設定/設定解除するのに非常に便利なので、知っておく必要があります。

私が抱えていた最大の問題は、textarea 要素でした。textarea 要素は、「cols」属性の希望する幅に設定する必要があり、子要素を含めることはできません。そのため、通常はテキストエリアの幅を明示的に 100% に設定する必要がありますが、パディングがある場合はテキストエリアの幅が拡張されます。固定幅環境では、通常、これを適切なピクセル値の幅に設定できますが、可変幅環境ではそうはいきません。

幅のない絶対位置のボックス

CSS ボックス モデルで幅が指定されていない絶対位置のボックスは、動作が少し異なります。幅は、含まれるコンテンツに応じて適切である必要があります。したがって、ボックス内に単語が 1 つしかない場合、ボックスの幅はその単語の表現と同じになります。 2単語になると、ボックスの幅もそれに応じて大きくなります。

これは、ボックスの幅が親要素(相対的に配置された最も近い親要素またはブラウザ ウィンドウ)の幅の 100% に達するまで続き、その時点でボックスは折り返されます。
ボックスは、含まれるコンテンツに合わせて垂直方向に拡張するのが自然です。驚くべきことは、プラットフォームによってテキストの動作が異なるだけでなく、ブラウザによってテキストの処理方法にも多くの癖があることです。

幅のないフロートボックス

幅のない絶対配置ボックスと同じように動作します。 CSS ボックス モデルの幅は、含まれるコンテンツの幅、つまり親要素の幅まで拡張する必要があります (親を相対的に配置する必要はありません)。これらの幅のないボックスは壊れやすいため、全体的なページレイアウトなどのミッションクリティカルなパターンには依存できないという教訓が得られます。サイドバーとして使用するために列をフロートし、内部要素 (画像など) がその幅を制御することを期待すると、問題が発生します。

インライン要素もボックスである

ここでは、ブロックレベル要素のボックスに焦点を当ててきました。ブロックレベル要素をボックスと考えるのは簡単ですが、インライン要素もボックスです。これらは非常に長くて狭い長方形と考えることができます。他のボックスと同様に、余白、パディング、境界線を持つこともできます。

折りたたむと少しわかりにくくなります。上記の左余白はボックスを右に押し出しますが、ボックスが始まる最初の行でのみ機能します。パディングは通常、テキストの上部または下部に適用されます。行が区切られると、前の行のパディングは無視され、行の高さで必要な位置から開始されます。背景を透明にすることで、効果がより鮮明に見えるようになります。

詳細については、 http://www.csschina.net/a/jc/css_646.htmlを参照してください。

【編集者のおすすめ】

  1. ウェブページの幅と高さのデザインを実現する CSS ボックス モデル
  2. JavaScriptはdiv属性とスタイルを動的に作成します
  3. DIV CSSウェブサイト構築のブラウザ互換性と注意事項
  4. CSS ボックスモデルの使用方法の詳細な説明
  5. DIV CSS ウェブページレイアウトで CSS が無効になる 10 の理由を解釈する

<<:  ハッカーがGSMアルゴリズムを破り、携帯電話ユーザーが盗聴の危険にさらされる

>>:  Zigbeeプロトコルスタックの暗号化アルゴリズムについての簡単な説明

ブログ    

推薦する

中国の自動運転が新たなブレークスルーをもたらす:百度世界2020のCCTV生中継で完全無人運転を体験

中国の自動運転は新たな進歩を遂げ、無人運転の時代が到来した。 9月15日、百度はCCTVニュースと提...

7 つの重要な要素: 優れた機械学習アルゴリズムを選択するには?

この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...

JDロジスティクスは知能を高めつつ、宅配業者から仕事を奪っている

JD.comは早くも2017年8月に、陝西省の地域をカバーする中国初のドローン空域の承認を取得しまし...

...

テクノロジートレンド年末レビュー: デロイトの 2020 年テクノロジートレンドレポートの解釈

[[348166]]導入2020年は世界にとって激動の年です。経済状況は流行病の影響を受けており、不...

...

Meta が言語認識システムをオープンソース化、6 言語でのリップ リーディング翻訳モデル認識、誰でもローカル展開可能

今年初めにネットで人気を博した反ギャングドラマ「光弗」をまだ覚えているだろうか。最後の数話で監督がス...

AIが人種差別や性差別も学習したのはなぜでしょうか?

[[232177]]外見の偏見や言語の差別など、AI による差別についてはこれまでたくさん話してき...

...

インテリジェント製造業が波に乗る中、産業用ロボットはどのようにして主導権を握ることができるのでしょうか?

インテリジェント製造(IM)は、インテリジェントマシンと人間の専門家で構成された人間と機械の統合イン...

DeepMindがMuJoCoをオープンソース化!メタは「スケルトンハンド」にクルミをプレイさせるために使用されます

「クルミで遊んでいる」骸骨の手を見たことがありますか? この魔法の「手」は、Meta が新たにリリー...

素晴らしいツールです!機械学習のためのテキスト注釈ツールとサービス 10 選

この記事は、公開アカウント「Reading the Core」(ID: AI_Discovery)か...

...

...

私の友人はソーシャルメディアのアルゴリズムの推奨に「誘惑」され、過激なグループに参加しました

[[380723]]ビッグデータダイジェスト制作著者: カレブソーシャル メディアにおけるアルゴリズ...