CSS中的边距和填充有什么区别?在何种情况下:
两者都有效。只有保证金是合适的。只有填充是合适的。
CSS中的边距和填充有什么区别?在何种情况下:
两者都有效。只有保证金是合适的。只有填充是合适的。
当前回答
关于边距的问题是,您不必担心元素的宽度。
就像当你给出一些{padding:10px;}时,你必须将元素的宽度减少20px,以保持“适合”,而不干扰周围的其他元素。
因此,我通常从使用填充来“填充”所有内容开始,然后使用边距进行微调。
另一点需要注意的是,不同浏览器上的填充更为一致,IE对负边距的处理也不太好。
其他回答
我总是使用这个原则:
这是Firefox中inspect元素特性的方框模型。它像洋葱一样工作:
你的内容在在中间。填充是指内容和标签边缘之间的空间在…内边界及其规格边距是标记周围的空格。
因此,更大的边距将在包含内容的框周围腾出更多空间。
较大的填充将增加内容和其所在的框之间的空间。
如果将框设置为特定值,则它们都不会增加或减小框的大小。
保证金与衬垫:
元素中使用边距来创建该元素和页面其他元素之间的距离。其中填充用于在元素的内容和边框之间创建距离。边距不是元素的一部分,而填充是元素的一。
请参阅下面从边距与填充-CSS财产中提取的图像
从…起https://www.w3schools.com/css/css_boxmodel.asp
不同部分的说明:内容-框的内容,其中显示文本和图像填充-清除内容周围的区域。填充物是透明的边框-围绕填充和内容的边框边距-清除边界外的区域。边距是透明的
实时示例(通过更改值进行模拟):https://www.w3schools.com/css/tryit.asp?filename=trycss_boxmodel
首先,让我们看看有什么不同,以及每个责任是什么:
1) 保证金CSS边距财产用于在元素周围生成空间。边距财产设置了边境使用CSS,您可以完全控制边距。有用于设置元素每边边距的CSS财产(顶部、右侧、底部和左侧)。
2) 衬垫CSS填充财产用于在内容周围生成空间。填充将清除内容(边框内)周围的区域元素。使用CSS,您可以完全控制填充。那里是CSS财产,用于设置元素每一侧的填充(顶部、右侧、底部和左侧)。
所以简单地说,边距是元素周围的空间,而填充是元素内容周围的空间。
这张来自codemancers的图片显示了边距和边框是如何结合的,以及边框和内容框是如何使其不同的。
此外,他们对每个部分的定义如下:
内容-这定义了文本、图像或其他元素等实际内容所在的框的内容区域。填充-这将清除其包含框中的主要内容。边框-它包围内容和填充。边距-此区域定义一个透明空间,将其与其他元素分隔开。
TL;DR:默认情况下,我在任何地方都使用边距,除非我有边框或背景,并且希望增加可见框内的空间。
对我来说,填充和边距之间的最大区别是垂直边距会自动折叠,而填充不会。
考虑两个元素,一个在另一个之上,每个元素的填充为1米。此填充被视为元素的一部分,并始终保留。
因此,您将以第一个元素的内容结尾,然后是第一个元素填充,然后是第二个元素的填充,最后是第二元素的内容。
因此,这两种元素的含量最终将相距2米。
现在用1毫米的边距替换填充。边距被认为在元素之外,相邻项目的边距将重叠。
因此,在本例中,您将得到第一个元素的内容,然后是1em的组合边距,然后是第二个元素的属性。因此,这两种元素的含量仅相差1米。
当你知道你想说一个元素周围有1em的间距,而不管它旁边是什么元素时,这会非常有用。
另外两个大的区别是,填充包括在点击区域和背景色/图像中,但不包括边距。
div.box>div{height:50px;width:50px,border:1px纯黑;text-align:center;}div.padding>div{padding-top:20px;}div.margin>div{margin-top:20px;}<h3>默认值</h3><div class=“box”><div>A</div><div>B</div><div>C</div></div><h3>顶部填充:20px</h3><div class=“box padding”><div>A</div><div>B</div><div>C</div></div><h3>页边空白:20px</h3><div class=“box margin”><div>A</div><div>B</div><div>C</div></div>