我有两个浮动菜单。向下滚动时,它们的位置设置为fixed
,以便它们的top
和left
与窗口相关。我将他们的left
属性设置为0
,它们按预期粘在窗口上。但是,当我将它设置为1
或任何更大的数字时,它们都会粘在它们的容器上。CSS固定属性相对于基于左属性的父/窗口
任何人有任何想法,为什么?
我有两个浮动菜单。向下滚动时,它们的位置设置为fixed
,以便它们的top
和left
与窗口相关。我将他们的left
属性设置为0
,它们按预期粘在窗口上。但是,当我将它设置为1
或任何更大的数字时,它们都会粘在它们的容器上。CSS固定属性相对于基于左属性的父/窗口
任何人有任何想法,为什么?
您应该使用left:1px而不是left:0。如果你想设置任何属性为0,那么你不需要提供单位(px,em等),但是如果你想将它设置为任何非零值(这里是1),你必须提到一个有效的单位。
.menuFloat{ z-index: 9999; position: fixed; left: 1px; top: 0; width: 100%;}
BBOY说,在他的评论中已经:
left: 1;
是一个无效的值,因为它缺少单元(CSS中所有的长度值需要的单位,除非值为0 )。
而这也为您遇到此行为的解释:有了绝对的或固定的位置,一个元素保持在水平位置时,它会在正常的流动,如果它没有被放置在所有的,如果你这样做没有给出left
的值(因此应用默认值auto
)。而且,由于您使用了无效的值,因此事实上根本没有给出任何价值。
最终答案:
left: 0;
- 正确
left: 1;
- 不正确
left: 1px;
或left: 1%;
- 正确
为值> 0时,应该指定一个单元。
很高兴你解决了它
你需要做什么?你不能只有'left:1';如果你有'left:0',你不需要指定一个单位,但是如果你的left> 0,你需要指定一个单位(px,%,ect)。 – bboy
这两个链接在Chrome中都相同。 – maqjav
px!我觉得很无能。现在工作。谢谢! –