【问题标题】:css: mystery "margin"CSS:神秘的“保证金”
【发布时间】:2011-07-13 23:21:49
【问题描述】:

每当我有两个水平并排的元素并指定了右侧和/或左侧填充和/或边距时,元素之间通常会在我指定的空间之上和之上。我希望有人能告诉我如何消除那个空间(没有像负边距这样的笨拙的东西)。

请注意:我不是在寻找替代的多列 CSS 布局技术。我知道那里有很多这样的问题,而且这个问题不仅仅是一个列布局问题。

下面是working example page 的标记和样式。 Here's a partial screenshot of that page 显示使用 Firebug 选择的左侧元素。有问题的神秘空间位于右侧,并标有红色星号。没有包含重置样式,但我已插入 Eric Meyers 的重置,但并没有解决问题。

    <div id="side-a"> 
           <p>
        Lorem ipsum ....
        </p> 
    </div> 
    <div id="side-b"> 
           <p>
        Nunc dapibus....
        </p> 
    </div>

    <div id="website-footer"> 
           <ul id="legal-information"> 
                  <li>Copyright 2011</li> 
                  <li><a href="#">Privacy Policy</a></li> 
           </ul> 
    </div>

    div#side-a,
    div#side-b {
        display: inline-block;
        width: 200px;
        padding: 17px 17px 0;
    }

    div#side-a {
           vertical-align: top;
    }

    div#side-b {
           background: #999;
    }

    ul {
           padding-bottom: 17px;
           list-style: none outside none;
    }

    ul li {
           line-height: 17px;
           margin-left: 17px;
    }

    div#website-footer ul#legal-information {
           float: left;
    }

    div#website-footer ul#legal-information li {
           border-left: 1px solid #29443C;
           display: inline;
           margin: 17px 0;
           padding-left: 8px;
    }

    div#website-footer ul#legal-information li:first-child {
           border-left: medium none;
           padding: 0 8px 0 0;
    }

【问题讨论】:

  • 你尝试过重置 css 吗?您的浏览器可能会这样做。

标签: css layout padding margin reset


【解决方案1】:

这很自然,因为inline-block。简单的解决方案是删除空格。

http://work.arounds.org/issue/6/unwanted-white-space-between-inline-block-elements/

还有其他基于 css 的解决方法,例如在 body 上设置字体大小为 0,但 AFAIK 它们并不那么一致/可靠。不过我可能是错的。

【讨论】:

  • 太棒了!你是最好的!非常感谢!
  • 链接似乎已损坏。
【解决方案2】:

我更改了这个 Css:

div#side-a,
div#side-b {
  float: left
  width: 200px;
  padding: 17px 17px 0;
}

并在 Css 中添加页脚:

#website-footer {
    clear: both;
}

这解决了问题。

当我希望元素彼此相邻时,我通常会浮动它们。

【讨论】:

  • 感谢您的评论。如果可能的话,我宁愿不使用浮点数。虽然我过去曾多次这样做,但它会将元素从页面的正常流程中取出,从而使父元素垂直折叠。所以,它可以工作,但它不是一个可以在所有情况下使用的理想解决方案。我应该将需求表述为“这个空白从何而来”——对不起!
  • 没关系。我一直是浮动显示的用户
猜你喜欢
  • 2013-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-16
相关资源
最近更新 更多