如果侧边菜单的高度超过 window,如何修复它?
how make side menu fixed if its height exceeds the window?
我的页面结构如下:
-------------------- //screen begin here
- MMM CCCCCCCCCCCC -
- MMM CCCCCCCCCCCC -
- MMM CCCCCCCCCCCC -
- MMM CCCCCCCCCCCC -
- MMM CCCCCCCCCCCC -
-------------------- //screen end here.
- MMM CCCCCCCCCCCC -
- CCCCCCCCCCCC -
- CCCCCCCCCCCC -
所以左边的菜单MMM
高度超过了屏幕的高度,而且内容ccc
也超过了屏幕的长度,我想要的是让左边的菜单和内容滚动一起直到左侧菜单到达底部,然后左侧菜单应该固定并且内容继续滚动,有帮助吗?
仅仅通过CSS属性"position:fixed"来使菜单"fixed"的位置是致命的。因为即使您滚动该页面,您也永远不会看到菜单的 'overfloating' 区域。 (连属性"overflow: scroll"都帮不了你。)
为了可视化,我使用了您的示例。页面访问者将无法看到标记为 F 的区域。
-------------------- //screen begin here
- MMM CCCCCCCCCCCC -
- MMM CCCCCCCCCCCC -
- MMM CCCCCCCCCCCC -
- MMM CCCCCCCCCCCC -
- MMM CCCCCCCCCCCC -
-------------------- //screen end here.
- FFF CCCCCCCCCCCC -
- CCCCCCCCCCCC -
- CCCCCCCCCCCC -
最好的解决方案是使用媒体查询,如果访问者的屏幕比您的菜单小,请修改字体大小、行高等。简单的说,把菜单区域变小。
这可能是您可以使用的 CSS 标记:
#menu{
font-size: inherit;
line-height: inherit;
background: yellow;
}
@media (max-height: 1024px) {
#menu{
font-size: 0.8em;
line-height: 0.8em;
background: red;
}
}
这应该适用于所有现代浏览器。您仍然可以在此处添加 "fixed",但请记住用户屏幕尺寸的限制。
还有一件事。您可以使用视口大小的排版(基于高度)。更多相关信息:http://css-tricks.com/viewport-sized-typography/
我的页面结构如下:
-------------------- //screen begin here
- MMM CCCCCCCCCCCC -
- MMM CCCCCCCCCCCC -
- MMM CCCCCCCCCCCC -
- MMM CCCCCCCCCCCC -
- MMM CCCCCCCCCCCC -
-------------------- //screen end here.
- MMM CCCCCCCCCCCC -
- CCCCCCCCCCCC -
- CCCCCCCCCCCC -
所以左边的菜单MMM
高度超过了屏幕的高度,而且内容ccc
也超过了屏幕的长度,我想要的是让左边的菜单和内容滚动一起直到左侧菜单到达底部,然后左侧菜单应该固定并且内容继续滚动,有帮助吗?
仅仅通过CSS属性"position:fixed"来使菜单"fixed"的位置是致命的。因为即使您滚动该页面,您也永远不会看到菜单的 'overfloating' 区域。 (连属性"overflow: scroll"都帮不了你。)
为了可视化,我使用了您的示例。页面访问者将无法看到标记为 F 的区域。
-------------------- //screen begin here
- MMM CCCCCCCCCCCC -
- MMM CCCCCCCCCCCC -
- MMM CCCCCCCCCCCC -
- MMM CCCCCCCCCCCC -
- MMM CCCCCCCCCCCC -
-------------------- //screen end here.
- FFF CCCCCCCCCCCC -
- CCCCCCCCCCCC -
- CCCCCCCCCCCC -
最好的解决方案是使用媒体查询,如果访问者的屏幕比您的菜单小,请修改字体大小、行高等。简单的说,把菜单区域变小。
这可能是您可以使用的 CSS 标记:
#menu{
font-size: inherit;
line-height: inherit;
background: yellow;
}
@media (max-height: 1024px) {
#menu{
font-size: 0.8em;
line-height: 0.8em;
background: red;
}
}
这应该适用于所有现代浏览器。您仍然可以在此处添加 "fixed",但请记住用户屏幕尺寸的限制。
还有一件事。您可以使用视口大小的排版(基于高度)。更多相关信息:http://css-tricks.com/viewport-sized-typography/