【问题标题】:Why does div with content inside have automatic margin? [duplicate]为什么里面有内容的div有自动边距? [复制]
【发布时间】:2019-02-02 19:23:19
【问题描述】:

我想知道为什么<div> 中有内容(段落等)时会出现margin

.container {
  width: 300px;
  height: 150px;
  background-color: #ccc;
}
.container2 {
  width: 300px;
  height: 150px;
  background-color: #000;
}
<div class="container">
  <p>Text</p>
</div>

<div class="container2">
  <p>Text</p>
</div>

在上面的例子中,两个&lt;div&gt;s之间有一个margin,但是如果我把段落去掉,margin就没有了。

为什么会这样?

【问题讨论】:

  • 段落已内置边距,边距折叠。

标签: html css


【解决方案1】:

因为一些 HTML 标签有默认边距,包括&lt;p&gt;,它会折叠。通常的方法是使用CSS reset完全按照您希望的方式设置网站样式。

【讨论】:

    【解决方案2】:

    您可以通过在 CSS 中执行类似的操作来删除所有元素的所有边距,其中 * 定位所有元素:

    *{margin:0px;} 
    

    这可能有点极端,您最好找到一个经过验证的 CSS 重置模板来遵循。我很幸运使用了几年前在网上找到的一个。他们做了这样的基本重置(选择性地删除他们想要的任何元素:

    html, body, div, span, applet, object, iframe,
    h1, h2, h3, h4, h5, h6, p, blockquote, pre,
    a, abbr, acronym, address, big, cite, code,
    del, dfn, em, img, ins, kbd, q, s, samp,
    small, strike, strong, sub, sup, tt, var,
    b, u, i, center,
    dl, dt, dd, ol, ul, li,
    fieldset, form, label, legend,
    table, caption, tbody, tfoot, thead, tr, th, td,
    article, aside, canvas, details, embed, 
    figure, figcaption, footer, header, hgroup, 
    menu, nav, output, ruby, section, summary,
    time, mark, audio, video {
        margin: 0;
        padding: 0;
        border: 0;
        font-size: 100%;
        font-family:Verdana, Arial, Helvetica, sans-serif;
        vertical-align: baseline;
    }
    

    请记住,如果您使用这两种方法中的任何一种,您最终都将不得不放回很多您想要的边距,但它会删除您希望定位的边距。

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 2013-06-12
      • 1970-01-01
      • 2017-01-21
      • 2019-10-19
      • 1970-01-01
      • 1970-01-01
      • 2016-08-18
      • 1970-01-01
      • 2018-07-27
      相关资源
      最近更新 更多