0

我有一个带有以下css的div

.menu{ 
    width:auto; 
    background-color:#FFF; 
    z-index:14; 
    position:absolute; 
    border:1px solid #d7d7d7; 
    border-bottom:2px solid #ccc;   
    display:none; 
    height:auto; 
    padding-top:2px; 
    padding-bottom:2px;  
}

当您单击所需的元素时,我会根据单击的元素的左侧和顶部偏移来定位此 div。

当文档从顶部增加高度时,此 div 不会相应地更改其位置。这使它看起来非常糟糕。

在这种情况下我如何保持其立场

4

4 回答 4

1

试着.menudiv wrapper

html

<div class="mainWrap">
  <div class="menu"></div>
</div>

css

.mainWrap {
 position:relative;
}

.menu{ 
    width:auto; 
    background-color:#FFF; 
    z-index:14; 
    position:absolute; 
    border:1px solid #d7d7d7; 
    border-bottom:2px solid #ccc;   
    display:none; 
    height:auto; 
    padding-top:2px; 
    padding-bottom:2px;  
}
于 2013-03-11T08:55:20.847 回答
1

如果您使用 定位元素absolute,它将根据具有定位的第一个祖先计算偏移量(这意味着position: absolute;position: relative)。

<body>
  <div id="parent1">
    <div id="child1" style="position: absolute"></div>
  </div>
  <div id="parent2" style="position: relative;">
    <div id="child2" style="position: absolute;"></div>
  </div>
  <div id="parent3" style="position: absolute;">
    <div id="child3" style="position: absolute;"></div>
  </div>
</body>

child1计算从body它的父级没有定位的偏移量。child2child3计算他们与父母的偏移量,因为parent2parent3有定位。

有关更多信息,请查看W3C 规范关于绝对定位、相对定位和浮动。

于 2013-03-11T08:40:15.217 回答
0

你有没有位置:相对;在父元素上?

于 2013-03-11T08:28:22.897 回答
0

需要一把小提琴。但我会说在这种情况下使用 position:relative 而不是 position:absolute。

于 2013-03-11T08:17:42.853 回答