CSS3のボックスサイズプロパティの興味深いボックスモデルについての簡単な説明

CSS3のボックスサイズプロパティの興味深いボックスモデルについての簡単な説明

誰もがボックス モデルの構成を、内側から外側まで、コンテンツ、パディング、境界線、マージンについて知っておく必要があります。

標準ボックス モデルには 2 つあり、1 つは標準モデル、もう 1 つは IE モデルです。

上記の 2 つの図から、標準モデルでは、ボックス モデルの幅と高さがコンテンツの幅と高さと同じであることが簡単にわかります。

IE モデルでは、ボックス モデルの幅と高さは、コンテンツ + パディング + 境界線の合計の幅と高さになります。

CSSで2つのモデルを設定する方法

ここでは、CSS3 プロパティ box-sizing (デフォルト値: content-box) が使用されます。

/* 標準モデル */ 
 ボックスのサイズ:コンテンツボックス;
  /*IE モデル*/
 ボックスのサイズ:境界線ボックス;

content-box: これは CSS 2.1 で指定された幅と高さの動作です。要素の幅と高さ (最小/最大プロパティ) を指定すると、ボックスの幅と高さに適用されます。要素のパディングと境界線は、指定された幅と高さを除いてレイアウトされ描画されます。

border-box: 要素の境界ボックスを決定するために、幅と高さ (最小/最大プロパティ) を指定します。つまり、要素の幅と高さを指定すると、パディングと境界線を指定することも含まれます。コンテンツの幅と高さは、指定された「幅」プロパティと「高さ」プロパティから、両側の境界線とパディングの幅を減算することによって計算されます。

テスト参照ケース

理想的な効果とコードは次のとおりです。

.input { 幅: 146px; 高さ: 36px; 行の高さ: 36px; 背景: 透明; 境界線: 2px 実線 #0D349A; 色: #bdbdbd; 左パディング: 10px; 右パディング: 30px; フォントサイズ: 14px;
box-sizing:content-box; (デフォルトはオプション)} 

ブートストラップ フレームワークを使用するプロジェクトに適用すると、bootstrap.min.css スタイルのデフォルトの box-sizing: border-box; が検索ボックスの幅と高さに影響することがわかりました。

* { -webkit-box-sizing: border-box; 
-moz-box-sizing: 境界線ボックス;
 ボックスのサイズ: 境界線ボックス;}

このプロパティにより、ページは次のように表示されます。

.input { 幅: 146px; 高さ:
 36ピクセル;
 行の高さ: 36px; 
背景: 透明; 
境界線: 2px 実線 #0D349A;
 色: #bdbdbd; 左パディング: 10px;
 右パディング: 30px; 
フォントサイズ: 14px; ボックスサイズ: ボーダーボックス;} 

この時点で、理想的な効果を実現したい場合は、スタイルを次のように調整する必要があります。

.input { 幅: 190px;
 高さ: 40px; 行の高さ: 
40px; 背景: 透明; 
境界線: 2px 実線 #0D349A;
 色: #bdbdbd; 左パディング: 10px; 
右パディング: 30px;
 フォントサイズ: 14px; 
ボックスのサイズ:境界線ボックス;}

PS ヒント: コンテナーの幅が width:100%; として定義されている場合、パディングまたは境界線が追加されると、親コンテナーからオーバーフローして外側に拡張されます。

このスタイルを使用し、box-sizing: border-box; を指定すると、パディングと境界線はオーバーフローしなくなり、内側に縮小されます。この効果は非常に実用的です。

要約する

上記は、CSS3 box-sizing 属性の興味深いボックス モデルについての編集者による紹介です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信いたします。

<<:  three.js を使って立体的な矢印線を描く詳細な手順

>>:  docker run -v はデータボリュームを異常にマウントし、コンテナのステータスは常に再起動になります。

推薦する

IDEA で Docker を WSL2 にデプロイする詳細なプロセス

ローカル環境はWindows10+WSL2(Ubuntu)です。サーバーにDockerをインストール...

Dockerリポジトリの一般的なコマンドの詳細な説明

ログイン dockerログインdocker login コマンドを実行し、ユーザー名、パスワード、メ...

HTML メタビューポート属性の説明

ビューポートとはモバイル ブラウザは、Web ページを仮想の「ウィンドウ」(ビューポート) に配置し...

MySQL ディープページング問題の解決の実践記録

目次序文ディープページングを制限すると遅くなるのはなぜですか?サブクエリによる最適化B+ツリー構造の...

CSS3 で虫眼鏡効果を模倣するいくつかの方法の原理の分析

記事のタイトルが「模造虫眼鏡」なのはなぜですか?今日お話ししたいのは、一般的に言われているような、マ...

Linux にソフトウェアをインストールするときにソフトウェア パッケージが存在しない問題を解決する方法

ソフトウェア パッケージが存在しない場合は、インストールされているソフトウェアのソフトウェア ソース...

Vue 初心者ガイド: 最初の Vue-cli スキャフォールディング プログラムの作成

1. Vue - 最初の vue-cli プログラムVueの開発はNodeJSに基づいています。実際...

中国のウェブサイトユーザーエクスペリエンスランキング

<br />ユーザーエクスペリエンスは中国のウェブサイトでますます重視されており、ユーザ...

Windows での Tomcat サーバーのインストールに関するチュートリアル

1 ダウンロードして準備するまず、公式ウェブサイトからTomcatをダウンロードする必要があります。...

CSS の位​​置属性 (absolute|relative|static|fixed) の概要と応用

まず、CSS3 Api の position 属性の定義を見てみましょう。 static: 特別な配...

CocosCreatorメッセージ配信メカニズムの詳細な説明

概要この記事は、ゲームビジネスアーキテクチャに関連するコンテンツの紹介から始まります。ゲームビジネス...

Windows に WSL をインストールして構成する方法

WSLとはBaidu 百科事典からの一節を引用します。 Windows Subsystem for ...

MySql クライアントが数秒で終了する問題を解決する (my.ini が見つからない)

問題の説明 (環境: windows7、MySql8.0)今日、MySql をインストールした後、M...

Windows で MySQL インストーラーを使用して MySQL サービスをインストールするチュートリアル図

MYSQL は、MYSQL サービスやその他のコンポーネントをインストールするためのインストーラ方式...

MySQL で explain ステートメントを使用する基本的なチュートリアル

目次1. 概要1. 説明文テスト2. 結果の各列の説明2. ID列の説明1. 環境整備2. expl...