【问题标题】:Inner div with margin and padding eventually exceeds outer div when zooming缩放时,带有边距和填充的内部 div 最终会超过外部 div
【发布时间】:2015-09-23 18:58:40
【问题描述】:

我在另一个 div 中有一个 div。但是,由于内部 div 的 margin 和 padding,每次放大时,内部 div 最终都会超出外部 div 的边界。如果不包括边距和填充,则不会发生这种情况。我想知道是否有一种方法可以使内部 div 永远不会超过外部 div,而不管内部 div 的边距和填充?

body {
width: 1000px;
}
#inner {
border: 1px solid black;
height: 90%;
margin: 2%;
padding: 2%;
}
#outer {
border: 1px solid black;
width: 50%;
height: 50%;
}

<body>
<div id = 'outer'>
<div id = 'inner'>
</div>
</div>
</body>

【问题讨论】:

  • 缩放时不会在此处发生。
  • 我想当你在这里说的时候,你的意思是在 jsfiddle 中?不,它不会在那里发生,因为页面是预先编码的,所以永远不会发生。当您在 Web 服务器或其他地方使用它时会发生这种情况。
  • @ManojKumar 只是标记了你,以便你看到这个。

标签: javascript jquery html css


【解决方案1】:

您需要在内部 div 上设置box-sizing: border-box,以便边框/填充等包含在宽度中。

实际上,您也应该对外部 div 这样做,而不是在内部设置边距,在外部设置填充,以确保所有内容都包含在宽度中。

【讨论】:

  • 包含它需要更长的时间,但最终它也会超过它。
  • 我在 Chrome 和 IE/Edge 上都尝试了您的代码示例,并且都没有超出内部 div 和外部。您是否正确设置了文档类型等以及您使用哪个浏览器对其进行了测试?
  • box-sizing: border-box 使宽度包括填充但边距。 developer.mozilla.org/en/docs/Web/CSS/box-sizing#Values
猜你喜欢
  • 2013-02-27
  • 2013-12-30
  • 2010-09-20
  • 1970-01-01
  • 2019-03-29
  • 2018-11-05
  • 2011-04-17
  • 2018-08-09
  • 1970-01-01
相关资源
最近更新 更多