この記事では、CSS での border-sizing 属性の使用方法を紹介します。これが、困っている友人に役立つことを願っています。
box-sizing は、要素の幅と高さを計算するために使用されるデフォルトの CSS ボックス モデルを変更するために使用されます。これには、content-box、border-box、inherit の 3 つの値があります。継承とは、冗長ではなくなった親要素からボックス サイズ変更フォームを継承することを指します。
## 1. 属性の説明
## # content-box
デフォルト値はCSS2.1のボックスモデルでもあります。 width
と height
を計算する場合、border
、padding
、および margin
は計算されません。 高さと幅はコンテンツの高さだけですcontent-box
默认值,也是css2.1中的盒子模型。在计算width
和height
时候,不计算border
、padding
和margin
。高度、宽度都只是内容高度。
#### border-box
css3
新增。 width
和height
属性包括内容,内边距和边框,但不包括外边距。
计算公式:
width = width = border + padding + 内容宽度
height = border + padding + 内容高度
## 2. 考虑盒子模型的margin
从上面可以知道,即时是border-box
也是不计算margin
,只是多余计算了border
和padding
。因为border
和padding
都是盒子模型的一部分,但是margin
标记的是盒子和盒子的间距。所以,border-box
的解释很符合常理。
问题来了,如果有时候一定要设置margin,怎么做到自由控制来保证兼容?例如,我们下面要设置一个撑满页面的盒子元素,而且有外边距干扰,怎么做?
实现如下效果图:
代码:源码下载
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>yuanxin.me</title> <style type="text/css"> *{ margin: 0; padding: 0; } #app { box-sizing: border-box; /* 指定计算方式 */ margin: 10px; /* 外边距干扰 */ /* 利用 css3 的 calc */ width: calc(100vw - 2*10px); height: calc(100vh - 2*10px); } </style> </head> <body> <p id="app"> </p> </body> </html>
所以,当需要计算外边距(margin),可以配合css3中的四则运算(calc
。
ボーダーボックス
css3
新規。 width
プロパティと height
プロパティには、コンテンツ、パディング、境界線が含まれますが、マージンは含まれません。 計算式: ## 2. ボックス モデルの margin
border であることがわかります。 -box
margin
は計算されませんが、border
と padding
は重複して計算されます。 border
と padding
はどちらもボックス モデルの一部ですが、margin
はボックス間の距離を示すためです。したがって、border-box
の説明は非常に常識的です。 次のレンダリングを実現します。* { margin: 0; padding: 0; } p { box-sizing: border-box; }
calc) を CSS3 で実行するには 🎜 を使用します。 🎜🎜## 3. 使用上の提案 🎜🎜 プロジェクトの経験と w3c の推奨事項に基づいて、box-sizing 属性を border-box に設定することをお勧めします。 🎜rrreee🎜関連する推奨事項: 🎜🎜🎜純粋な CSS を使用して動的に動く列車を実装する方法🎜🎜🎜🎜 CSS セレクターとは何ですか? CSS セレクターの包括的なまとめ (コード付き) 🎜🎜
以上がCSS での border-sizing 属性の使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。