你沒有隱藏/顯示任何div。你在上面的代碼中實際做的是當Layer3 div
被徘徊時,你正在改變Layer3copy div
風格爲inline block
- 這就是它移動的原因。一個div默認是一個block
元素 - 這意味着它佔據了一行的整個寬度。當你將它改爲inline-block
時,如果在一行中有足夠的寬度,而不是全部寬度,「正在告訴」div將對齊另一個元素,這就是爲什麼div移動到父div旁邊的原因。
您還需要修改您的選擇器以實現您的要求。
要真正實現你想要的(隱藏,沒有它被移動顯示回Layer3copy
),使用這個CSS代碼:
#Layer3 #Layer3copy{
display: none;
}
#Layer3:hover #Layer3copy{
border: 3px solid red;
display: block;
}
中的第一選擇是給默認定義時layer3
- 集裝箱股利是沒有徘徊 - 其中子Layer3copy
div沒有顯示(display:none
)。
第二選擇是說當layer3
懸停將樣式應用到Layer3copy
並把它轉化爲display:block
- 其是用於divs
默認顯示(它們是塊元素) - 這是越來越顯示它和保持它的初始位置,而不會「運動」。
Here is a working example with the above code.
我還添加了一個纖細的紅色邊框內的div,所以你會明白我的意思的block
元素 - 這是連續服用的整個寬度。
從這種和平的代碼我們看不到div的移動的原因。我建議你創建[JsFiddle](jsfiddle.net)以及更完整的html和你的頁面的CSS。 –
原來是內聯塊嗎?也許如果它是塊元素,並改變爲內聯造成位置的差異。 –