【问题标题】:How to compute body padding based on navbar height?如何根据导航栏高度计算正文填充?
【发布时间】:2017-09-03 22:37:36
【问题描述】:

创建 ASP.NET MVC 应用程序时,它会自动生成默认导航栏布局,左上角有几个菜单项,右上角有一个“登录”菜单项。

默认情况下,页面内容从导航栏后面开始。正如许多帖子所建议的那样,罪魁祸首是 navbar-fixed-top 类,并且必须在特定于站点的 css 文件中为 body 样式添加 padding-top

我选择了一个合适的顶部填充尺寸,它似乎工作得很好。

当您开始缩短桌面上浏览器的宽度时,就会出现问题。在某一时刻,“登录”菜单项会滚动到下一行。我指定的填充大小不再有效。

我想知道是否有办法根据导航栏高度动态设置填充大小。或者,也许有一种方法可以根据导航栏的当前状态定义两种不同的填充大小?希望我可以在我的 site.css 文件或我的主布局文件中应用这个技巧,这样我就不需要修改每个页面。问候。

【问题讨论】:

  • 默认 MVC 模板带有 padding-top: 50px 到正文。即使它在 sm(tablets) 大小范围内,这对我来说也很好。

标签: css asp.net-mvc twitter-bootstrap


【解决方案1】:

这是我解决同样问题的代码,我不确定我是否保留它,也许它可以帮助你。

(function ($) {

    var lastNavBarHeight = 100;

    checkSize(); // init
    $(window).resize(checkSize);

    // changes size of padding to the nav.navbar when responsive changes are fired
    function checkSize() {
        var navHeight = $("nav.navbar").height();

        if (navHeight !== lastNavBarHeight) {
            $("body").css("padding-top", navHeight + "px");
            lastNavBarHeight = navHeight;
        }
    }
}(jQuery));

【讨论】:

  • 感谢您的帮助。我已经找到了一种更简洁的方法来使用 javascript 来解决这个问题。很快就会发布我的解决方案。问候。
猜你喜欢
  • 1970-01-01
  • 2014-02-04
  • 2018-08-17
  • 1970-01-01
  • 2021-02-19
  • 1970-01-01
  • 2021-04-12
  • 2023-02-05
  • 2016-10-19
相关资源
最近更新 更多