ホームページ ウェブフロントエンド htmlチュートリアル CSS レイアウトをより直感的にする: box-sizing_html/css_WEB-ITnose

CSS レイアウトをより直感的にする: box-sizing_html/css_WEB-ITnose

Jun 24, 2016 am 11:46 AM

CSS レイアウトをより直感的に: box-sizing

CSS を書いたことがある、または CSS に触れたことがあるなら、ボックス モデルについてよく知っているはずだと思います。 CSS のさらにわかりにくい点の 1 つは、ボックス モデルの高さと幅の計算です。初心者はもちろん、CSS を長年書いてきた人でも同じように感じるでしょう。 CSS の高さと幅は常に直感的ではないため、一見しただけでは違いがわかりにくく混乱してしまいます。幅を 100 ピクセルにしたい場合もありますが、常にそうであるとは限りません。ただし、ボックスのサイズ変更プロパティを正しく設定すると、ボックスの高さと幅は設定した 100 ピクセルと正確に一致します。ちょっと目まいがしませんか?それでは、以下で詳しくご紹介します。

1.ボックスモデル

CSSに関する重要な概念はCSSボックスモデルです。ページ上のこれらの要素の高さと幅を制御します。ボックス モデルは、特に高さと幅の計算に関してやや混乱する可能性があります。実際のボックスの幅 (ページに表示される幅) と高さは、次のような他の属性で追加する必要があります。

padding + border + width = ボックスの幅
padding + border + height = height box

こちらを見てください あまり直感的ではないので、画像を見てみましょう:

これは、幅を 200px に設定すると、実際にレンダリングされるボックスの幅は 200px より大きくなる可能性があることを意味します (何も残っていないかぎり)右側の境界線と左右のパディング)。奇妙に思えるかもしれませんが、CSS によって設定される幅はコンテンツ領域の幅のみであり、ボックスの幅ではありません。繰り返しますが、非常によく似ています。

これの直接的な結果は、ページ上に表示されるボックスの幅を 200px にしたい場合、その左右の境界線と左右のパディングを差し引いて、対応する CSS 幅に設定する必要があるということです。たとえば、上の図で、目的のボックスの幅を 200 ピクセルに設定する場合、まず左右のパディングから 20 ピクセル、左右の境界線から 1 ピクセルを差し引いてから、対応する CSS 幅を 158 ピクセルに設定する必要があります。このため、特に初心者にとっては、コードが少しわかりにくく見えます (私はこの問題について長い間混乱していました)。明確に幅を158pxに設定しましたが、200pxと表示されました。これは直感的ではなく、明白ではありません。

幸いなことに、私たちは望むことを達成するためのより良い方法を持っています。

2. box-sizing

上記とは異なり、box-sizing:border-boxを設定すると目的を達成できます。たとえば、上では幅 200 ピクセルのボックスが必要なので、幅を直接 200 ピクセルに設定します。より鮮明に見えませんか?左右の境界線と左右のパディングを設定すると、コンテンツ領域が自動的に調整されます。これはより直接的でわかりやすいかもしれません。 CSS コードは次のとおりです:

div {  box-sizing: border-box;  width: 200px;  padding: 20px;  border: 1px solid #DDD;}
ログイン後にコピー

以下に示すように:

実際、これはデザイナーや開発者からより高く評価されています。

3. box-sizing のその他の値

このように、CSS の幅を設定する際に、そのコンテンツ領域の幅のみを設定することができます。ブラウザのデフォルト。 1 で示した例を考えてみましょう。

Box-sizing は継承するように設定することもできます。これは、このプロパティを親要素から継承することを意味します。

4. ブラウザの互換性

IE8 以降のバージョンはこの属性をサポートしており、Firefox はブラウザ製造元の接頭辞 -moz- を追加する必要があり、IOS および Android ブラウザのそれより低いバージョンも -webkit- を追加する必要があります。実際、多くのreset.cssやnormal.cssには次のCSSステートメントが含まれており、これもより好ましい使用法です:

*, *:before, *:after {  -moz-box-sizing: border-box;  -webkit-box-sizing: border-box;  box-sizing: border-box;}
ログイン後にコピー

結論

これを見れば、box-sizingの意味が理解できるはずだと思います。したがって、私が皆さんにお伝えしたいのは、これは多くのフロントエンド面接の質問における共通知識ポイントの 1 つであるということです。面接官は通常、CSS *{box-sizing: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)

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

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

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

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

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

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

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

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

See all articles