2011-07-13 78 views
2

每当我有两个元素并排左右水平填充指定的右侧和/或左侧填充和/或边距时,元素之间通常会有空格,超出我指定的元素之上。我希望有人可以告诉我如何消除这个空间(没有像消极保证金那样的东西)。css:神秘的“边距”

请注意:我不在寻找替代性的多列CSS布局技术。我知道那里有大量的问题,这个问题比只是一个列布局问题更大。

以下是working example page的标记和样式。显示用Firebug选择的左侧元素的Here's a partial screenshot of that page。有问题的神秘空间位于右侧,并标有红色星号。没有包含重置样式,但是我插入了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; 
    } 
+0

你尝试过重置css吗?你的浏览器可以做到这一点。 – Jon

回答

0

我改变了这个CSS:

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

而且在CSS中添加脚注:

#website-footer { 
    clear: both; 
} 

而这个固定的问题。

我通常会在元素彼此相邻时浮动元素。

+0

感谢您的评论。如果可能的话,我宁愿不使用浮动。虽然我自己在过去多次完成此操作,但它使元素脱离了页面的正常流向,这使得父元素垂直折叠。所以,它的工作原理,但它不是一个理想的解决方案,可以在所有情况下使用。我应该把这个需要说成是'这个空白从哪里来的' - 对不起! –

+0

那没问题。我一直是展示浮筒的使用者 – Tomgrohl