限制绝对定位元素的位置的最佳方法是什么,理想情况下是在纯CSS中?
我知道以下是不可能的,但我想我正在寻找的东西看起来像:
.stickyElement{ bottom-max:auto; bottom-min:0px; top-max: auto; top-min: 100px; }
这将允许元素移动到其包含定位元素的顶部不小于100像素的位置.
一个例子(和我的初始)用例是一个菜单,作为页面的一部分滚动,但是当它到达视口顶部时停止滚动. (粘性菜单?)在此页面上可以看到一个例子:
http://spektrummedia.com/startups
我完全期望这不可能没有使用一些Javascript,但我以为我会把它放在那里.
解决方法
位置:粘
近年来W3C已经有discussions个.一个建议是为position属性添加一个粘性值.
.content { position: -webkit-sticky; position: -moz-sticky; position: -ms-sticky; position: -o-sticky; position: sticky; top: 10px; }
Chrome 23.0.1247.0及更高版本目前支持此功能作为实验功能.要启用它,请输入about:flag的URL地址,然后按Enter键.然后搜索“实验性WebKit功能”,并在启用和禁用之间切换.
在html5rocks网站上,有一个工作demo.
严格来说,这是粘性内容的实现,而不是限制元素相对于另一元素的最小或最大位置的通用方法.但是,粘性内容可能是您描述的行为类型的唯一实际应用.