当前位置: 首页 > 面试题库 >

CSS页边距# 影响父母的保证金

陈寒
2023-03-14
问题内容

我已经在这个问题上寻找了一段时间,但没有找到直接的答案。在元素上添加边距顶部时,在我的情况下,它通常与标题一起发生。在许多情况下,与父母共享边际收益。

HTML

  <div>
      <h1>My title</h1>
    </div>

CSS

div{
  padding:20px;
}

h1{
 margin-top: 20px;
}

前面的代码的结果还将为div添加margin-top,就像我们有以下内容一样:

div{
  padding:20px;
  margin-top:20px; /*this one is implemented by the browser, not written on the code*/
}

解决此问题的一种方法是添加 overflow:auto 到父项,在这种情况下,div css具有:

div{
  padding:20px;
  overflow:auto;
}

尽管前面的示例解决了该问题,但是对我来说还不清楚 为什么? 。这与 合计 保证金”有关 ,显然,保证金与父母的保证金相结合。但是为什么呢?

我们怎么知道父母何时会压倒孩子的边缘,什么时候不压块的此属性的目的是什么,还是一个bug?

谢谢。


问题答案:

谢谢大家的回答,@gaurav5430发布了一个链接,它的定义非常精确,我想在此答案中进行总结。至于为什么他们决定这个元素应该表现得如此,我仍然不清楚;但至少我们能够找到适用于利润率下降的规则:

“简单来说,此定义表示当两个元素的垂直边距相接触时,将仅保留边距值最大的元素的边距,而边际值较小的元素的边距将被折叠为零

基本上,在我们关于原始问题的示例中,最大的边际收益是<h1>因此而采用并应用于父项的收益之一<div>

该规则被取消:

  • 浮动元素
  • 绝对定位的元素
  • 内联块元素
  • 溢出元素设置为可见以外的任何元素(它们不会与子元素折叠边距。)
  • 已清除元素(它们不会用其父块的底部边距折叠顶部边距。)
  • 根元素

这就是overflow:hidden解决问题的原因。

也要感谢@Adrift发布了很好的资源,尽管我发现@ gaurav5430的答案更直接,更容易理解。



 类似资料:
  • 在像这样的简单示例中,子边距不会影响父级高度: JSFiddle:http://jsfiddle.net/k1eegxt3/ 默认情况下,子页边距不会分别影响父级高度和父级尺寸。通常,可以通过在父元素中添加边距可以“推”到的内容来轻松修复,例如,向父元素添加填充或边框 JSFIDLE(JSIDLE):http://jsfiddle.net/fej3qh0z/ 我想知道为什么会这样,而不仅仅是它是如

  • 主要内容:定义各个方向上的内边距,内边距简写形式内边距(padding)是指元素内容区与边框之间的区域,与外边距不同,内边距会受到背景属性的影响。您可以通过下面的属性来设置元素内边距的尺寸: padding-top:设置元素内容区上方的内边距; padding-right:设置元素内容区右侧的内边距; padding-bottom:设置元素内容区下方的内边距; padding-left:设置元素内容区左侧的内边距; padding:内边距属性的

  • 主要内容:为元素设置外边距,外边距折叠元素的外边距(margin)是围绕在元素边框以外(不包括边框)的空白区域,这片区域不受 background 属性的影响,始终是透明的。 为元素设置外边距 默认情况下如果不设置外边距属性,HTML 元素就是不会有外边距,但也有例外的情况,因为浏览器会为一些 HTML 元素设置默认的外边距,例如 元素。您可以使用下面的属性来为 HTML 元素设置外边距: margin-top:设置元素上方的外边距;

  • 问题内容: 在我的HTML文档中,我有一个包含两列和多行的表。如何使用CSS增加第一列和第二列之间的空间?我尝试应用“ margin-right:10px;” 到左侧的每个单元格,但没有效果。 问题答案: 将此应用到您的第一个: HTML示例:

  • CSS margin(外边距)属性定义元素周围的空间。 margin margin 清除周围的(外边框)元素区域。margin 没有背景颜色,是完全透明的。 margin 可以单独改变元素的上,下,左,右边距,也可以一次改变所有的属性。 Margin可以使用负值,重叠的内容。 Margin - 单边外边距属性 在CSS中,它可以指定不同的侧面不同的边距:margin-top:100px; marg

  • 问题内容: 正如您在这张图片中看到的,我在绿色内部有一个橙色,没有顶部边框。橙色具有最高边距,但同时也将绿色压低。当然,添加顶部边框可以解决此问题,但是我需要绿色无边框。我能做什么? 谢谢 问题答案: 您可以添加以防止边距崩溃。