目次
3.1. 固定幅が設定されている場合
3.2. 親コンテナがいっぱいになったとき
3.3. コンテンツをラッピングする場合
ホームページ ウェブフロントエンド htmlチュートリアル CSS についてどのくらい知っていますか (7) --box model_html/css_WEB-ITnose

CSS についてどのくらい知っていますか (7) --box model_html/css_WEB-ITnose

Jun 24, 2016 am 11:49 AM

1. はじめに

このセクションから、このシリーズの第 3 部に入ります??CSS プレゼンテーション。このセクションでは、ページ上の CSS のいくつかのレイアウトおよびレンダリング機能について説明します。テキストとブロックの 2 つのカテゴリが含まれます。

最初のカテゴリ??テキスト。この部分は文字サイズ、フォント、色、背景色、太字にするかどうかなどの設定など比較的簡単です。重要な点は、フォントの設定、行の高さの設定、およびテキスト関連の距離はすべて相対値を使用することです。これらのことは、「CSS についてどれくらい知っていますか (4)?? ブラウザーのデフォルト スタイルの解釈」のセクションで説明されています。もう 1 つの重要な点は、Web 上で最も人気のあるフォント ライブラリである fontAwesome です。これについては、「Web ページ上の小さなアイコンを置き換えるには fontAwesome を使用してください」を参照してください。

2 番目のタイプのブロック。この部分には多くの知識ポイントがありますが、重要なものは、ボックス モデル、フロート、位置、表示です。この記事ではボックスモデルについて説明し、以降の記事でその他の内容を順次紹介していきます。

2. 「ボックス」とは何ですか

「ボックス」と言えば、数年前、私がまだ大学生だった頃、大学で「ボックスモデル」について質問されたのを今でも覚えています。時間。寮に戻って慌ててネットで調べてみると、マージン、パディング、ボーダーのことは昔から知っていたのですが、「ボックス」という言葉すら知りませんでした。 ??したがって、オンラインで見つけられるコード スニペットやヒントに満足するだけでなく、いくつかの知識システムを包括的に理解してください。もちろん、ボックスモデルはマージン、パディング、ボーダーだけではなく、他の知識も含まれることを後で知りました。

ここで余談ですが、私も最近考えていることです。私は次のように考えています。Web フロントエンドはどのような知識システム アーキテクチャを持つべきでしょうか?以前は、W3C をアウトラインとして使用でき、W3C の内容を学習すれば十分だと考えていました。後で、私が間違っていたことが分かりました。W3C はまだ包括的ではありませんでした。

Web フロントエンドのナレッジ システムを真に包括的にカバーするのはブラウザ カーネルです。これは、ブラウザ カーネルを詳細に理解してブラウザを構築する必要があるという意味ではありません。ブラウザは、Web フロントエンド コードが実行されるプラットフォームです。ブラウザ カーネルにどのようなモジュールがあるかを知る必要があります。詳細についてはまだ説明しませんが、機会があれば後で共有します。

ここでは初心者を大事にします。 CSS を初めて使用する友人は、CSS の基本、つまり内側のマージン、ボーダー、外側のマージンを初めて学んだときに、パディング、ボーダー、マージンを学んだはずです。 3人で「箱」を形成します。宅配便と同じように、もともと小さなiPhoneを購入したのですが、届いたものは本当に大きな箱でした。白いiPhoneボックスとiPhone本体の間にはスペーサー層(内側のマージン)があるため、白いiPhoneボックスは非常に薄いですが(境界線)フォームボードの層(外側のマージン)もあります。ボックスとエクスプレスボックス。これは典型的なボックスです。

上の図に示すように、実際の内容はこれらの単語です。テキストの周囲に 10px の内側の余白、5px の境界線、10px の外側の余白があります。箱が見えますか?

3. ボックスの幅

3.1. 固定幅が設定されている場合

この問題が発生した場合は、さまざまな情報をクエリする前に、自分で実験することをお勧めします:

上記のように、Web ページを取得します。その結果、スクリーンショット ツールを使用してテキスト コンテンツの幅を測定できます。テキスト コンテンツの幅がちょうど 300px であることがわかり、これは設定した幅です。

したがって、ボックス モデルで設定する幅は、ボックス全体の幅ではなく、コンテンツの幅です。ボックス全体の幅は、(コンテンツの幅 + 境界線の幅 + パディングの幅 + マージンの幅) の合計です。このように、4 つのうちの 1 つを変更すると、ボックスの幅が変わります。これは私たちにとって友好的ではありません。

関係ありません、この不親切なことはずっと前に誰かによって発見され、解決されました。以下でそれについて話しましょう。

3.2. 親コンテナがいっぱいになったとき

デフォルトでは、div の display:block 幅は親コンテナ全体を埋めます。以下に示すように:

ただし、この div はボックス モデルであり、その幅全体には (コンテンツの幅 + 境界線の幅 + パディングの幅 + マージンの幅) が含まれており、幅全体が親コンテナーに収まることを忘れないでください。

それが問題だ。親コンテナの幅が変更されていない場合、マージン、ボーダー、またはパディングのいずれかの幅の値を手動で増やすと、コンテンツの幅が減少します。極端なケースでは、コンテンツの幅がそれ以上圧縮できない点 (単語の幅など) まで圧縮されると、ブラウザは親コンテナの幅を強制的に広げます。これは私たちが見たいものではありません。

3.3. コンテンツをラッピングする場合

この場合、コンテンツの幅は (パディング幅 + ボーダーの合計) だけ増加します。幅 + マージン幅) はコンテンツの幅に基づきます。

4. ボックスの幅を見てください

前述したように、ボックスモデルの幅を設定すると、コンテンツの幅が設定されるだけとなり、無理があります。この問題を解決するにはどうすればよいでしょうか?答えは、 box-sizing:border-box

上の図に示すように、div に box-sizing:border-box を設定すると、幅 300px はコンテンツ + 境界線 + 境界線 (マージンを除く) の幅となり、実際の幅とより一致します。要件。

システムの CSS を記述するときは、最初のスタイルを次のようにすることをお勧めします。

有名なブートストラップでも、* セレクターに box-sizing:border-box を追加します。これを実行してみてはいかがでしょうか。

5. 垂直マージンのオーバーラップ

ここでマージンについて言及するときは、このマージンの特徴である垂直マージンについて言及する必要があります。下の図に示すように、

の垂直方向のマージンは 16px なので、2 つの

間の垂直方向の距離はどれくらいでしょうか?

常識的には 16 + 16 = 32px になるはずですが、答えはやはり 16px です。垂直方向のマージンが重なるため、大きいマージンが小さいマージンを「食べて」しまいます (自分で実験できます)。

6. div を使用して「三角形」を描画します

「三角形」は、Baidu ホームページなどの日常の Web ページで非常に一般的です:

や私のオープンソース プロジェクト wangEditor (http://www.cnblogs.com/) wangfupeng1988/p/4198428.html) のページ効果:

もちろん、背景画像と fontAwesome を使用してこの効果を実現できますが、div を使用してこの効果を実現することもできます。非常にシンプルで、普遍的にカプセル化できます。 . :

7. まとめ

このセクションでは、ボックス モデルの関連知識について説明することに多くの時間を費やしましたが、CSS を体系的に学習したことがない経験豊富な開発者に適しています。同文: 誰もが知識体系を体系的に学ぶことをお勧めします。

次に、このパートの続きで、もう一度 float について話します。

------------------------------------------------ -------------------------------------------------- -----------

私のチュートリアルへようこそ: 「デザインからパターンまで」 JavaScript プロトタイプとクロージャ シリーズの深い理解」「Microsoft petshop4.0 ソース コード解釈ビデオ」 ""json2 .js ソース コード解釈ビデオ》

私のオープンソース プロジェクトのフォローも歓迎します??wangEditor、シンプルで使いやすい Web リッチ テキスト エディター

---------- -------- -------------------------------------- -------- --------------------------------------

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

< Progress>の目的は何ですか 要素? < Progress>の目的は何ですか 要素? Mar 21, 2025 pm 12:34 PM

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

< datalist>の目的は何ですか 要素? < datalist>の目的は何ですか 要素? Mar 21, 2025 pm 12:33 PM

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

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

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

< meter>の目的は何ですか 要素? < meter>の目的は何ですか 要素? Mar 21, 2025 pm 12:35 PM

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

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

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

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

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

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

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

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

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

See all articles