3

我有一个父 div,里面有一个子 div(子 div 充当弹出菜单)。当子 div 弹出时,它有一个很小的空间,因此它不会与父 div 的左侧对齐。

这是样式:

.ButtonContent
{
    display:none;
    border: solid 1px black;
    width:275px;
    position:absolute;
    left:0;
    margin:0px;
    padding:0px;
    float:left;
    background-color:#FFF;
    border-radius:0 0 4px 4px;
}
.Button
{
    margin:0px;
    padding:0px;
    border: solid 1px black;
    border-radius:4px 4px 4px 4px; 
    width:276px;
    text-align:center;
    position:relative;
}

这是HTML:

<div class="Button" id="Button1" >
    Add <br />
    <div class="ButtonContent" id="ButtonContent1">
         Date purchased:
         <div class="Date" id="datePurchased1"></div><br/>
         Purchase Location:<br />
         <input type="text" maxlength="150" /><br />
         <a>Add</a>
    </div>
</div>
4

2 回答 2

2

由于您有一个绝对定位的元素一个相对定位的带有边框的元素内,left:0因此将其定位在边框内,使其看起来远离一个像素。

快速修复:使它们具有相同的宽度并left:-1px;改为使用。

http://jsfiddle.net/RtGfc/

在我看来,你不需要所有这些 CSS 来实现你想要的外观,也许是一个更好的修复(不接触你的 HTML):

.ButtonContent
{
    border-top: solid 1px black;
    background-color:#FFF;
    border-radius:0 0 4px 4px;
}
.Button
{
    border: solid 1px black;
    border-radius:4px; 
    width:275px;
    text-align:center;
}​

http://jsfiddle.net/RtGfc/1/

于 2012-08-11T04:40:23.697 回答
1

这是两件事:从外部的 1px 边框<div>和您选择将一个放在另一个内部的事实<div>

1px 边框位于 的最左侧标记之外left: 0px;。如果删除边框,它可以工作。

演示:http: //jsfiddle.net/MmwYv/

您希望 .ButtonContent(内部<div>.ButtonContent )显示在外部 .Button 外部<div>。这会引起问题,因为内部的会受到外部测量的限制。如果您将 .ButtonContent 放在外面,它也可以工作。

演示:http: //jsfiddle.net/NxCp4/

于 2012-08-11T04:40:09.697 回答