【问题标题】:CSS * {margin: 0;padding: 0;} overrideCSS * {margin: 0;padding: 0;} 覆盖
【发布时间】:2010-05-04 14:01:45
【问题描述】:

大家好,我需要一些帮助来弄清楚如何覆盖我的 CSS 中的“* {margin: 0;padding: 0;}”。

原因是我有这个css:

 .postcomments { width: 547px; padding: 5px 5px 5px 5px; margin: 0 0 5px 0;} 
 .postcomments a { text-decoration: underline;}
 .postcomments ul { margin: 0; padding: 0; list-style-type: none;}
 .postcomments ul li { width: 547px; margin: 0 0 5px 0; padding: 0; list-style-type: none;}
 .postcomments .right { color: #474747; font-size: 11px; background: #fff url('http://www.nextbowluser.com/img/ucBG.gif') no-repeat top left; line-height: 17px; padding: 5px 0 0 0; width: 430px; position: relative; float: right; min-height: 50px;}
 .postcomments .right .bottom { padding: 0 5px 15px 5px; background: #fff url('http://www.nextbowluser.com/img/ucBG.gif') no-repeat bottom right; min-height: 50px;}
 .postcomments .arrow { left: -15px; top: 20px; position: absolute;}
 .avatar { border: none !important;}

 .postcomments .left {float: left; margin: 0 7px 0 0;}
 .postcomments .gravatar { background: #fff; width: 80px; height: 60px; margin: 0 0px 0 0; padding: 3px;}
 .postcomments .name { font-size: 11px; margin: 2px 0 0 0; color: #000;}
 .avatar { border: none !important;}

它显示得很好,没有 * {margin: 0;padding: 0;}:

 1st comment
 2nd comment
 3rd comment

但是,当我将它添加到 CSS 中时,它会使 cmets 堆栈错误:

 1st comment
    2nd comment
        3rd comment

我只想取出 * {margin: 0;padding: 0;} 但页面上的其他一些内容需要它才能正确显示。所以我的问题是,我怎样才能为页面的 postcmets 部分覆盖 {margin: 0;padding: 0;}?

谢谢! :o)

大卫

更新: 出色地。仍然无法正确获取。取出整个站点的边距后:0px - 这使站点看起来很糟糕。如果我必须为页面的每个元素添加 margin: 0px 以使其看起来像带有 * 的那样,那就不好了。对于 .postcmets 部分,我仍然需要一些东西来绕过它,仅此而已。

【问题讨论】:

  • 别这样。给所有块元素你自己的边距/填充。
  • 你的 HTML 结构是什么样的? cmets 以任何一种方式缩进似乎很奇怪。
  • Balus C 是对的;不要那样做。但是,我的直觉告诉我有一些锚元素 (<a>) 您没有更改其边距填充。您还应该放弃使用 !important 并查看 CSS 特异性 - w3.org/TR/CSS2/cascade.html#specificity

标签: css margin


【解决方案1】:

你用 !important 试过了吗?

.postcomments {
   margin: 15px  !important;
   padding: 15px !important;
}

我使用的是 15px,但你可以使用任何适合你的值

【讨论】:

  • 不要使用 !important - 而是了解 CSS 的特殊性 - w3.org/TR/CSS2/cascade.html#specificity
  • @RichardJPLeGuen !important 适用于我的情况。为什么不建议这样做?可能是什么问题?我正在一堆 css 上构建我的应用程序,很难找到命中的位置,!important 在一秒钟内解决了问题。
  • 我的评论太长了,所以我问并回答了一个问题:Why is the use of !important discouraged?
【解决方案2】:

也许可以使用一个 reset.css(例如eric meyer)脚本。然后看你如何构建无序列表。如果有嵌套的 ul,你通常会得到每个 ul 的左边距

【讨论】:

    【解决方案3】:

    .postcmets 应该覆盖 *,因为类更具体。

    【讨论】:

    • 感谢您的回复,马特。但似乎并非如此。 * {margin: 0;padding: 0;) 放在 .postcmets css 之前,它仍然这样做。我什至在 .postcmets 之后添加了它,但结果仍然相同。
    【解决方案4】:

    您需要提供比其他答案更具体的内容

    尝试将标签放在类或父标签的前面

    div.postcomments {
    span.postcomments {
    

    或者如果这不是一个选项,你可以随时求助

    * .postcomments {
    

    【讨论】:

      猜你喜欢
      • 2011-12-12
      • 2011-07-20
      • 2014-01-24
      • 2016-06-19
      • 1970-01-01
      • 2015-10-09
      • 2015-10-06
      • 1970-01-01
      • 2011-01-06
      相关资源
      最近更新 更多