为什么固定位置元素的静态定位子元素增加宽度?

时间:2010-10-24 19:47:14

标签: css internet-explorer-7 css-position

更新:

如果我将ul替换为li并删除ul并应用相关内容,则div / li似乎只会出现此问题样式到a而不是罚款。 ID'仍然知道为什么ul / li结构会出现问题,因为已明确重置边距/填充。


我在IE7中遇到固定位置元素的孩子。他们似乎从某个地方获得了宽度/边距/填充,但我无法辨别在哪里或如何解决它。

您可以在jsFiddle here中查看一下。我添加了bg颜色只是为了调试。 image / li标签应该是黄色的,并且在IE8以及mozilla和webkit中。但是在IE7中,左边有一个额外的~20px的空间将它们推过去,好像liaimg标签有一个边距。但是,如果我查看IEDevToolbar中的属性,则不会应用边距或填充。此外,即使我为所有内容分配宽度并使用IEDevToolbar直接在每个元素上将边距/填充为零,也会发生这种情况。

我完全迷失了这个。

以下是相关代码......有问题的布局上有一个XHTML 1.0 Transitional文档类型:

<style type="text/css">
 .social-widgets {
    position: fixed;
    top: 125px;
    left: 0px;
    background: #f00;
    width: 34px;
  }
  .social-widgets-content {
    list-style: none inside none;
    margin: 0;
    padding: 0;
    text-align: left;
    background: #ff0;
  }
  .social-widgets-content li {
    margin: 10px 0 !important;
    padding:0; 
    width: 34px;
    background: #0f0;
  }
  .social-widgets-content img {
    display:block;
    border-top: 2px solid #e9e8e8;
    border-bottom: 2px solid #e9e8e8;
    border-right: 2px solid #e9e8e8;
    padding: 0px; margin:0px;
    background: #00f;
  }
</style>

<div class="social-widgets">
  <ul class="social-widgets-content">
    <li><a href="#"><img src="/images/button/button.facebook.png"></a></li>
    <li><a href="#"><img src="/images/button/button.twitter.png"></a></li>
    <li><a href="#"><img src="/images/button/button.feedback.png"></a></li>
  </ul>
</div> <!-- /.social-widgets -->

1 个答案:

答案 0 :(得分:2)

这与position:fixed;无关。这是列表样式的问题。使用list-style: none inside none;时,尽管标记设置为none,IE7仍会为列表标记添加间距。解决方案是设置list-style-type: none;而不是使用速记。