目次
要素の通常のフロー位置 (位置は静的または相対的)
auto width
自動高さ
結論
絶対配置とフローティング。要素の数
ホームページ ウェブフロントエンド htmlチュートリアル 要素の自動幅と高さの影響要因_html/css_WEB-ITnose

要素の自動幅と高さの影響要因_html/css_WEB-ITnose

Jun 21, 2016 am 08:48 AM

要素の幅と高さが設定されていない場合、デフォルトの幅と高さの値は auto であることがわかっています。そして、この自動ではどのようにして要素に幅と高さを自動的に設定できるのでしょうか?つまり、要素の幅と高さに影響を与える要因は何でしょうか?この記事では、例を使用してこの問題を検討します。HTML 構造と初期 CSS は次のとおりです。

    <div class="container">        <div class="test"></div>    </div>
ログイン後にコピー
    .container {        position: relative;        width: 200px;        height: 200px;        background-color: #ff9;    }    .test {        border: 1px solid #979797;        background-color: #f1f1f1;    }
ログイン後にコピー

要素の通常のフロー位置 (位置は静的または相対的)

auto width

まず、上記のコードの結果を確認します:

次に、要素にコンテンツを追加します:

したがって、位置属性は設定されていません (つまり、デフォルト値は静的です)。上記の実行結果に示されているように、要素の幅はコンテナの幅に適応しているように見え、高さはコンテナの高さに関連しています。要素の内容。

ただし、いわゆる幅アダプティブは、要素の幅がコンテナの幅と必ず同じになることを意味するのではなく、要素の 幅 + 左右のパディングを指すことに注意してください。 + 左右の境界線 + 左右のマージン はコンテナの幅と同じです。たとえば、以下の .test 要素にマージンを追加すると、要素の幅はコンテナの幅と等しくなくなります。

極端な場合のさらなるテスト:

このとき、要素の幅が余白分に圧迫されて文字がはみ出してしまいます。

自動高さ

上記からわかるように、要素の自動高さは常にコンテンツの高さと同期して変化するだけであり、要素の高さを「適応」させることはありません。

もちろん、上記は要素のコンテンツがテキストである場合のみを説明しているため、自動高さはコンテンツの変更に非常に正直に追従します。また、コンテンツがブロックレベル要素の場合、自動高さは一般にコンテンツの高さに応じて変化しますが、コンテンツが絶対的に配置またはフローティングされている場合は、おなじみの「オーバーフロー」(高さの崩壊) が発生します:

これら 2 つの例を通して、自動幅が引き続きアダプティブ コンテナーの幅であることもわかります。

結論

結論は次のとおりです。デフォルトの配置の場合、要素の自動幅は常にコンテナの幅に適応し、自動高さはコンテナの高さに関係します。コンテンツがフローティングまたは絶対配置されているときに発生する高さの崩壊が発生しない限り、要素のコンテンツ。

相対位置決めが使用される場合、結果は上記と同じになります。原理もわかりやすいです。結局のところ、相対配置中も要素は元の位置でレンダリングされます。それは自分で試してみることができます。

絶対配置とフローティング。要素の数

auto width

次に、.test 要素を絶対配置にします:

コンテンツを追加します:

追加されたコンテンツのみ 要素には幅があり、明らかに幅はコンテンツの幅にのみ適応します。ただし、別の特殊なケースがあります。つまり、テキスト コンテンツの幅が改行によって変動するため、テキストの長さを増やすと次のようになります。

のテキスト。テスト要素は実際には自動的に折り返され、幅が変化します。コンテナに適応させた後、改行を無効にしてみてください。

まあ、改行が許可されていない場合でも、幅は変更されます。コンテンツの幅。では、次に解決する必要があるのは、テキスト コンテンツの行折り返しルールとは何なのか、あるいはテキスト コンテンツの幅に何が影響するのかということです。

ルールは実際には難しくありません。自動行折り返しが可能な場合 (空白: 通常/プレラップ/プレライン)、テキスト内の最も長い単語または漢字の長さが最も短くなります。行折り返し単位 (word-break:break-all が設定されている場合、各文字の長さを改行単位とすることもできます)。この最小改行単位は分割できません。テキストコンテナの幅が十分でない場合、テキストは折り返し単位を分割せずに、スペースや-などの文字でのみ自動的に折り返されます。このルールに違反することはできません。非常に長い単語を見てみましょう:

上記の結果は、要素の幅を適応させるために .test 要素のテキストが実際に自動的に折り返されることを示しています。ただし、改行ルールの下でのみ最善を尽くすことができ、単語をコンテナに合わせて分割することはありません。もちろん、word-break:break-all を設定すると、取得するために「最善を尽くす」ことができます。そのような結果:

そして、.test 要素がコンテナの外に出た場合でも、.test 要素の幅がコンテナに「収まる」ようにテキストは折り返されます。

自動高さ

最後に、自動高さを見てみましょう。上記の例では、自動高さも高さと同期して変化します。テキストコンテンツの。また、コンテンツがフローティングの場合は、コンテナの絶対位置を設定することもフローティングをクリアする方法の 1 つであるため、次のようになります。

しかし、コンテンツが絶対に配置してもオーバーフローします。また、コンテンツがオーバーフローするため、幅がなくなります。

結論

まとめると、結論は次のとおりです。

  1. コンテンツは純粋です テキスト要素が絶対に配置されている場合、要素の自動幅がコンテナの幅に適応するように、そのテキストは可能な限り折り返そうとします。

  2. 要素の内容が固定幅のブロックレベル要素のみの場合、自動幅が変更されるような状況は発生しません。また、コンテンツが絶対配置またはフローティングされている場合、要素の幅と高さは直接 0 に設定されません。

  3. 要素コンテンツにプレーン テキスト要素とブロック レベル要素の両方が含まれる場合、明らかに 2 つの幅を比較する必要があり、要素の自動幅は最終的には一番広いもの。

  4. コンテンツの絶対位置によって引き起こされる高さの崩壊が発生しない限り、自動高さは要素のコンテンツの合計の高さにのみ関連します。

同様に、検証後、.test が浮動配置を使用する場合、結論は上で説明した絶対配置と同じになります。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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; 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; datalist&gt;の目的は何ですか 要素? &lt; datalist&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:33 PM

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

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

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

&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

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

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

ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? 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などの代替案に埋め込む際のタグの目的。

Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Apr 04, 2025 pm 11:54 PM

GiteEpages静的Webサイトの展開が失敗しました:404エラーのトラブルシューティングと解像度Giteeを使用する

See all articles