这里是我的网站:https://rustinpeace.io
在移动的视图中,我有一个导航链接有负边距。它在触摸按钮时显示。我的问题是这导致我的移动视图水平滚动。
有没有办法让导航栏保持负边距并停止水平滚动?
这是我第一次建网站
@media(max-width: 800px){
html{
overflow-x:auto !important;
}
body{
overflow-x:auto !important;
}
以上内容无效。
这里是我的网站:https://rustinpeace.io
在移动的视图中,我有一个导航链接有负边距。它在触摸按钮时显示。我的问题是这导致我的移动视图水平滚动。
有没有办法让导航栏保持负边距并停止水平滚动?
这是我第一次建网站
@media(max-width: 800px){
html{
overflow-x:auto !important;
}
body{
overflow-x:auto !important;
}
以上内容无效。
2条答案
按热度按时间im9ewurl1#
而不是使用
只需使用溢出:隐藏
这应该行得通。
ac1kyiln2#
让
body
上的overflow
单独存在;只保留浏览器中的默认样式。因为nav的父元素已经是
100vh
高了,最简单的解决方案就是简单地控制那个元素的溢出。我已经把你的代码简化成了下面的一个演示。有一点需要注意:如果有人使用键盘在这些小屏幕上浏览你的网站,你会遇到这种导航设计的问题。一旦有人点击tab键,浏览器就会把屏幕外的链接链接到 windows 中,这会完全打乱你的JS逻辑。解决这个问题的方法是:
1.在打开/关闭图标周围使用实际的
<button>
元素,以便可以通过Tab键访问它们。1.在
tabindex="-1"
导航栏中给予所有链接,这样键盘用户一开始只能看到打开菜单的按钮。当你点击打开按钮时,从链接中删除tabindex
属性,或者将其更新为tabindex="0"
。然后在关闭菜单时将其恢复为tabindex="-1"
。