2017-04-07 64 views
1

我有以下代碼:CSS - 如何把絕對的div正確

.menu{ 
 
border: solid red; 
 
border-width: 1px 1px 0px 1px; 
 
background-color:black; 
 
color:white; 
 
width: 60px; 
 
} 
 

 
.dropdown{ 
 
position:absolute; 
 
background-color: grey; 
 
width:100px; 
 
} 
 

 
.dropdown ul{ 
 
list-style:none; 
 
padding:10px; 
 
margin: 0; 
 
} 
 

 
.zoom{ 
 
    zoom:300%; 
 
}
<div class="menu zoom"> 
 
    Click me 
 
    <div class="dropdown"> 
 
    <ul> 
 
     <li>Item 1</li> 
 
     <li>Item 2</li> 
 
     <li>Item 3</li> 
 
    </ul> 
 
    </div> 
 
</div>

我怎樣才能把我的下拉菜單與父同x位置,無需拆卸邊界?我已經嘗試過'box-sizing:border-box',但不知何故它不起作用。

+0

確保'.menu'有'的位置是:相對;'財產 – Jer

回答

1

在父元素上設置position: relative,並將子設置位置設置爲與父元素的左邊界寬度相同的負值。

.menu { 
 
    border: solid red; 
 
    border-width: 1px 1px 0px 1px; 
 
    background-color: black; 
 
    color: white; 
 
    width: 60px; 
 
    position: relative; 
 
} 
 
.dropdown { 
 
    position: absolute; 
 
    background-color: grey; 
 
    width: 100px; 
 
    left: -1px; 
 
} 
 
.dropdown ul { 
 
    list-style: none; 
 
    padding: 10px; 
 
    margin: 0; 
 
} 
 
.zoom { 
 
    zoom: 300%; 
 
}
<div class="menu zoom"> 
 
    Click me 
 
    <div class="dropdown"> 
 
    <ul> 
 
     <li>Item 1</li> 
 
     <li>Item 2</li> 
 
     <li>Item 3</li> 
 
    </ul> 
 
    </div> 
 
</div>

+0

謝謝你的回答。但不知何故,在不同的縮放級別上,我現在的下拉菜單離左邊很遠。在我的網站上很清楚。 – float

+0

只能在100%的縮放下工作 – float

+0

我不確定,我在Chrome和Firefox上測試過它,看起來不錯。 –

0

保持positon:relative,並給予孩子position:absoltetop:100%;left:-1px其中-1取,因爲邊框的寬度爲1左

這裏是t他工作的片斷:

.menu { 
 
    border: solid red; 
 
    border-width: 1px 1px 0px 1px; 
 
    background-color: black; 
 
    color: white; 
 
    width: 60px; 
 
    position: relative; 
 
} 
 
.dropdown { 
 
    position: absolute; 
 
    background-color: grey; 
 
    width: 100px; 
 
    left: -1px; 
 
    top:100% 
 
} 
 
.dropdown ul { 
 
    list-style: none; 
 
    padding: 10px; 
 
    margin: 0; 
 
} 
 
.zoom { 
 
    zoom: 300%; 
 
}
<div class="menu zoom"> 
 
    Click me 
 
    <div class="dropdown"> 
 
    <ul> 
 
     <li>Item 1</li> 
 
     <li>Item 2</li> 
 
     <li>Item 3</li> 
 
    </ul> 
 
    </div> 
 
</div>