我有一個在<ul>
內部呈現的名稱列表。我應用了一些CSS代碼,但面對一些瀏覽器特定的問題。由於firefox和chrome中CSS的錯位列表元素
鉻:列表元素得到由1行移位。
Firefox:所有列表項都摺疊爲一個項目。
代碼段(JS bin editor)
HTML
<div id='container'>
<ul class='list'>
<li> <div class='rel'>
<div class='abs'> item 1 </div>
</div> </li>
... More items similar to above one
的CSS
#container {
height: 100px;
overflow-y:scroll;
width: 200px
}
.list {
background-color: skyblue;
}
.rel {
position: relative;
}
div.abs {
position: absolute;
left: 20px;
}
我想知道這種不當行爲在這兩個瀏覽器的原因。我寫錯了CSS?
更新:隨着<div class='abs'>
我有很多的代碼,我在這裏沒有添加,也沒有必要和ABS div的內容定位相對於其父即<div class='rel'>
謝謝@Pepe我知道你在Jsbin編輯器中使用margin的替代方法。我只是想知道定位的原因在這裏不起作用的原因嗎? – sachinjain024
通過在您的li元素上使用position:absolute,您可以將它們帶出正常的頁面流。 這意味着它們與其他任何東西都沒有關係,只是它們的第一個具有位置屬性的父對象。這裏是位置相對的ul元素。 這個關係可以通過使用top/bottom/right/left來給出一個值。 您使用過的左側:0px。如果沒有給出top/bottom值,它將使用top:0px。 因此,每個li元素作爲與ul元素的關係:位於左側:20px,top0px。李元素之間沒有任何關係,因此不會互相推低。 – Pepe
非常感謝..我看到這裏有一些混亂。我的ul元素不是'relative',而是有一個相對定位的rel類div。如果相對位置被添加到ul,那麼我認爲你的推理是正確的,但在這裏我的div是相對定位的。你能檢查一下這個嗎? – sachinjain024