我希望产生这个页面上的效果:http://jonrohan.me/guide/css/creating-triangles-in-css/ - 但只有CSS,没有JavaScript(这对JavaScript来说是微不足道的。)
我所说的效果如下:
到目前为止,我所能达到的最好成绩是:
http://jsfiddle.net/nottrobin/2FSvx/
但我不喜欢我的解决方案中固有的<nav>
的重复。
有没有人有他们能想到的聪明的CSS / 3技术,以便当你向下滚动<header>
消失时,<nav>
自然会骑到页面顶部?
答案 0 :(得分:2)
您的示例存在一些问题,如果我向下或向上滚动网页,有时两个导航会重叠,内容会显示两次并重叠。
据我所知,没有这样的技术只能使用CSS获得相同的效果,需要使用JS。
您只能以静态方式(正常页面流),固定方式(相对于浏览器窗口)或绝对/相对(相对于位置设置为相对的最近父级)使用CSS定位元素。
您不能像使用JavaScript那样“收听”滚动事件,因此您无法相对于滚动量定位元素,也无法实时更改其位置值,因为即使这样您也需要JavaScript。
CSS是一种表示性标记语言,使用CSS规则分配给元素的属性不能在事件基础上更改。
你可以像你一样做,但这意味着更多的标记语言,更多的CSS和更多的维护困难。
您应该使用JS来优化用户的体验,如果用户已禁用JS,他/她将看到正常的页面行为,否则nav元素将保持静止,就像所有其他网站一样。