Heim > Artikel > Web-Frontend > Ein genauerer Blick auf die CSS3-Randgrößeneigenschaft
Empfohlen: CSS-Video-Tutorial
box-sizing
wird verwendet, um das standardmäßige CSS-Boxmodell zu ändern, das zur Berechnung der Breite und Höhe von Elementen verwendet wird. Es hat drei Werte: content-box
, border-box
und inherit
. inherit
bezieht sich auf das Erben der box-sizing
-Ausdrucksform vom übergeordneten Element, das nicht mehr redundant ist. box-sizing
用于更改用于计算元素宽度和高度的默认的 CSS 盒子模型。它有content-box
、border-box
和inherit
三种取值。inherit
指的是从父元素继承box-sizing
表现形式,不再冗赘。
content-box
默认值,也是css2.1中的盒子模型。在计算width
和height
时候,不计算border
、padding
和margin
。高度、宽度都只是内容高度。
border-box
css3
新增。 width
和height
属性包括内容,内边距和边框,但不包括外边距。
计算公式:
width = width = border + padding + 内容宽度
height = border + padding + 内容高度
margin
从上面可以知道,即时是border-box
也是不计算margin
,只是多余计算了border
和padding
。因为border
和padding
都是盒子模型的一部分,但是margin
标记的是盒子和盒子的间距。所以,border-box
的解释很符合常理。
问题来了,如果有时候一定要设置
margin
,怎么做到自由控制来保证兼容?例如,我们下面要设置一个撑满页面的盒子元素,而且有外边距干扰,怎么做?
实现如下效果图:
代码:源码下载
<!DOCTYPE html> <html> <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> <div id="app"> </div> </body> </html>
所以,当需要计算外边距(margin),可以配合css3中的四则运算(calc
)来使用。
根据项目中的使用经验和w3c的建议,推荐将
box-sizing
属性设置为border-box
1. Attribut Erklärung
Der Standardwert ist ebenfalls css2. 1 Boxmodell in . Bei der Berechnung von
content-box
width
undheight
werdenborder
,padding
undmargin
nicht berechnet. Höhe und Breite sind nur die Höhe des Inhalts.
border-box
css3
Neu. Die Eigenschaften width
und height
umfassen Inhalt, Abstand und Rahmen, jedoch keine Ränder. Berechnungsformel:
margin
margin
nicht berechnet, sondern border
und border-box handelt code>padding werden redundant berechnet. Weil border
und padding
beide Teil des Box-Modells sind, margin
jedoch den Abstand zwischen Boxen markiert. Daher ist die Erklärung von border-box
sehr vernünftig. 🎜🎜Die Frage ist, wenn es manchmal notwendig ist, einenmargin
festzulegen, wie erreicht man eine freie Kontrolle, um die Kompatibilität sicherzustellen? Wir möchten beispielsweise ein Box-Element einrichten, das die gesamte Seite ausfüllt und durch Ränder behindert wird. Wie sollen wir das tun? 🎜🎜🎜Erzielen Sie die folgenden Renderings: 🎜🎜🎜🎜Code:Quellcode herunterladen 🎜🎜* { margin: 0; padding: 0; } div { box-sizing: border-box; }🎜Wenn Sie also Margen berechnen müssen, können Sie es mit den vier arithmetischen Operationen (calc
) in CSS3 verwenden. 🎜3. Nutzungsvorschläge
🎜Basierend auf den Erfahrungen im Projekt und den Empfehlungen von w3c wird empfohlen, diebox-sizing
festzulegen > Attribut zuborder-box
. 🎜🎜rrreee🎜Weitere Kenntnisse zum Thema Programmierung finden Sie unter: 🎜Einführung in die Programmierung🎜! ! 🎜
Das obige ist der detaillierte Inhalt vonEin genauerer Blick auf die CSS3-Randgrößeneigenschaft. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!