基于Left属性的CSS固定属性相对于父/窗口

时间:2013-06-21 08:26:39

标签: jquery css css-position

我有两个浮动菜单。向下滚动时,其位置设置为fixed,以使其topleft相对于窗口。我将left属性设置为0,它们会按预期粘贴到窗口。但是,当我将其设置为1或任何更大的数字时,它们会坚持使用它们的容器。

Left set to 1

Left set to 0

任何人都知道为什么?

3 个答案:

答案 0 :(得分:0)

你应该使用left:1px而不是left:0。

在CSS中如果要将任何属性设置为0,则不需要提供单位(px,em等),但如果要将其设置为任何非零值(此处为1),则必须提及一个有效的单位。

updated Jsfiddle link

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

答案 1 :(得分:0)

bboy已在评论中说:

left: 1;是一个无效值,因为它缺少单位(CSS中的所有长度值都需要一个单位,除非该值为0)。

这也是你在这里遇到的行为的解释:对于绝对或固定定位,元素保持在正常流程中的水平位置,如果它根本没有定位,如果您没有为left提供值(因此应用了默认值auto)。由于您使用的是无效值,因此事实上您根本没有给出任何值。

答案 2 :(得分:0)

最终答案:

left: 0; - 正确

left: 1; - 不正确

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

表示值> 0,一个应该指定一个单位。

很高兴你解决了它