【问题标题】:Nav bar height isn't properly mobile responsive导航栏高度不能正确移动响应
【发布时间】:2021-09-26 17:40:53
【问题描述】:

我正在尝试做的事情(包括 JSBin)

我的导航栏在桌面上运行良好:当您单击某个项目时,它会扫描到页面的该部分,从标题开始。但是,当我调整到移动设备时,间距是关闭的。当您点击导航栏上的“Section 2”时,您应该会看到导航栏正下方弹出“Section 2”。

参见JSBin 上的示例。(使用开发者工具在移动设备上显示以查看在导航栏周围单击时出现的问题)。

我尝试了什么/我认为问题是什么

我很确定这与此有关:

.anchor:before { 
  display: block; 
  content: " "; 
  margin-top: -75px; 
  height: 75px; 
  visibility: hidden; 
}

我从this Github 页面获得,但我不知道如何根据屏幕大小自动更改 75px 数字。我读了这个question/answer,但仍然不知道如何在我的情况下更改 CSS。

【问题讨论】:

    标签: html css bootstrap-4 responsive-design nav


    【解决方案1】:

    看起来该页面是用于 Bootstrap 的。您正在寻找的内容直接内置在 CSS 中! 看看这个页面。 https://www.w3schools.com/css/css_rwd_mediaqueries.asp

    基本上发生在您身上的是,一旦您的页面缩小到移动设备。它会导致您的按钮(文本元素)堆叠,导致您的导航垂直大于应有的大小! 要回答您的代码问题,请尝试以下操作:

    .anchor:before { 
      display: block; 
      content: " "; 
      margin-top: -75px; 
      height: 75px; 
      visibility: hidden; 
    }
    
    @media only screen and (max-width: 480px) {
      .anchor:before { 
        height: 65px; 
      }
    }
    

    发生的情况是,一旦您的屏幕宽度低于 480 像素(此值可以调整为您需要的任何值),它将运行 height: 65px; 并覆盖其上方的 height 样式。

    当您不希望导航栏调整大小时,另一种方法是设置overflow: hidden;,然后具体定义您想要的高度。 (我个人喜欢使用height: 47px;。对我来说感觉就像一个完美的尺寸)

    这应该可以回答您的问题。但是,您真正应该做的是,一旦您的屏幕缩小到足够小,您应该考虑将所有导航按钮编译到一个下拉菜单中。

    如果您愿意,请查看此页面: https://www.w3schools.com/howto/howto_js_topnav_responsive.asp

    【讨论】:

    • 呃,请不要宣传 w3schools……它不像以前那么糟糕了,但是那里有 很多 更好的资源。请改用 MDN 或其他一些不错的东西。
    • @Chris 我会记住这一点。不知道 w3 有这么糟糕的污名。有什么特别的原因吗?这只是糟糕的代码实践吗?
    • 因为它的内容平庸,带有大量广告。它与 W3C没有任何关系,它的创建者故意选择了这个名称,让它看起来像是某种“官方的”。它的很多内容都已经过时了。
    • @Chris 完全明白!我将开始使用其他网站,例如 MDN
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-24
    • 1970-01-01
    • 1970-01-01
    • 2013-09-27
    • 2014-12-24
    相关资源
    最近更新 更多