2013-06-21 63 views
0

我有兩個浮動菜單。向下滾動時,它們的位置設置爲fixed,以便它們的topleft與窗口相關。我將他們的left屬性設置爲0,它們按預期粘在窗口上。但是,當我將它設置爲1或任何更大的數字時,它們都會粘在它們的容器上。CSS固定屬性相對於基於左屬性的父/窗口

Left set to 1

Left set to 0

任何人有任何想法,爲什麼?

+2

你需要做什麼?你不能只有'left:1';如果你有'left:0',你不需要指定一個單位,但是如果你的left> 0,你需要指定一個單位(px,%,ect)。 – bboy

+0

這兩個鏈接在Chrome中都相同。 – maqjav

+0

px!我覺得很無能。現在工作。謝謝! –

回答

0

您應該使用left:1px而不是left:0。如果你想設置任何屬性爲0,那麼你不需要提供單位(px,em等),但是如果你想將它設置爲任何非零值(這裏是1),你必須提到一個有效的單位。

updated Jsfiddle link

.menuFloat{ z-index: 9999; position: fixed; left: 1px; top: 0; width: 100%;} 
0

BBOY說,在他的評論中已經:

left: 1;是一個無效的值,因爲它缺少單元(CSS中所有的長度值需要的單位,除非值爲0 )。

而這也爲您遇到此行爲的解釋:有了絕對的或固定的位置,一個元素保持在水平位置時,它會在正常的流動,如果它沒有被放置在所有的,如果你這樣做沒有給出left的值(因此應用默認值auto)。而且,由於您使用了無效的值,因此事實上根本沒有給出任何價值。

0

最終答案:

left: 0; - 正確

left: 1; - 不正確

left: 1px;left: 1%; - 正確

爲值> 0時,應該指定一個單元。

很高興你解決了它