当屏幕尺寸低于940px时,我必须更改导航栏?我不想让它响应。如果您在940px下调整浏览器窗口大小,您将看到scroolbar-x(底部滚动条)出现,但当您向右滚动时,导航栏位置仍然固定,并且某些菜单不会出现。
也许有些图片会解释我的问题。
答案 0 :(得分:3)
仅在CSS中无法完成。
您提供的示例(Twitter)具有固定位置和所有屏幕尺寸固定大小的导航栏。固定位置意味着滚动条不会影响导航栏的位置,这就是为什么你不能使用x滚动条来查看导航栏的一部分,一旦它小于940px宽,就隐藏在“导航栏”之下浏览器窗口的右边框。
所以你必须选择
实际上,你不能让position
在x方向单向工作而在y方向工作另一条方向。
您可以通过使用CSS检查器编辑Twitter页面中的以下类来了解选项2的含义:
.global-nav .container {
width: auto;
max-width: 865px;
}
.global-nav, .global-nav-outer {
height: auto;
}
第二个选择器实现垂直流动性,一旦内容无法放入一行。
通过进行这些更改,您可以看到选项3的含义:
.topbar {
position: absolute;
/* ... the rest as is */
}
当然,它无法在CSS中完成并不意味着它根本无法完成。这是一个实现你提到的脚本的jsfiddle。这使用MooTools而不是jQuery,我通常将它用于bootstrap。
小提琴:http://jsfiddle.net/uadDW/4/
全屏版本可以更好地查看效果:http://jsfiddle.net/uadDW/4/show/
(感谢@Sherbrow为我提供了基础小提琴。)
答案 1 :(得分:1)
遇到同样的问题并对建议的解决方案感到兴奋,但后来我努力在我自己的代码中实现(是的,noobie)。
事实证明这里与jquery.js存在冲突,我需要在我的代码中的其他位置。
/* code as before .. only added jquery.js link */
从上面的小提琴中的外部资源中删除jquery.js,您将获得原始的所需行为。大鼠!