javascript - Bootstrap 菜单覆盖页面内容

标签 javascript jquery html css twitter-bootstrap

我想在 Bootstrap 中使用始终位于页面顶部的菜单栏。因此我使用了 navbar-fixed-top 类。我使用了这篇文章最后的代码,但遇到了内容可见性的问题

主要内容与菜单部分重叠。

enter image description here

关于 http://getbootstrap.com/examples/starter-template/通过在正文中添加 padding-top: 50px; 来“解决”这个问题。但这不起作用,当菜单环绕并变得大于 50px 时:

enter image description here

bootstrap 中是否有涵盖此问题的类?或者我是否必须添加一个 JavaScript 来监听窗口大小的变化并调整 padding-top?我不知道该怎么做,但这是我唯一想到的,...

代码:

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Bootstrap</title>
    <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.min.css">
    <style>
        h1 {
            font-size: 5em;
        }
        body {
            /*
            padding-top: 50px;
            */
        }
    </style>
</head>
<body>
    <nav class="navbar navbar-inverse navbar-fixed-top">
        <div class="container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="navbar-brand" href="">Project name</a>
            </div>
            <div id="navbar" class="collapse navbar-collapse">
                <ul class="nav navbar-nav">
                    <li class="active"><a href="#">Home</a></li>
                    <li><a href="#about">About</a></li>
                    <li><a href="#contact">Contact</a></li>
                    <li><a href="#item01">Item01</a></li>
                    <li><a href="#item02">Item02</a></li>
                    <li><a href="#item03">Item03</a></li>
                    <li><a href="#item04">Item04</a></li>
                    <li><a href="#item05">Item05</a></li>
                    <li><a href="#item06">Item06</a></li>
                    <li><a href="#item07">Item07</a></li>
                    <li><a href="#item08">Item08</a></li>
                    <li><a href="#item09">Item09</a></li>
                    <li><a href="#item10">Item10</a></li>
                    <li><a href="#item11">Item11</a></li>
                </ul>
            </div><!--/.nav-collapse -->
        </div>
    </nav>

    <div class="container"">
        <div>
            <h1 id="about">My first template</h1>
            <p class="lead">Dummy content, dummy content, dummy content, dummy content, dummy content, dummy content, dummy content, dummy content.</p>
            <p class="lead">Dummy content, dummy content, dummy content, dummy content, dummy content, dummy content, dummy content, dummy content.</p>
            <p class="lead">Dummy content, dummy content, dummy content, dummy content, dummy content, dummy content, dummy content, dummy content.</p>
        </div>
        <div id="contact" style="margin: 100em 0;">Contact us</div>
    </div><!-- /.container -->

    <script src="bower_components/jquery/dist/jquery.min.js"></script>
    <script src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
    <script>
        /* jQuery test. */
        $(function() {
            $('h1').html("Test");
        });
    </script>
</body>
</html>

最佳答案

我不知道有 Bootstrap 类可以解决这个问题。您当然可以像您提到的那样向窗口调整大小添加一个监听器。它会解决你的高度不总是 50px 的问题。应该是这样的:

$(window).on('resize', function(){
    var navHeight = $('nav').height();
    $('body').css('padding-top', navHeight + 'px');
});

这是未经测试的,但应该可以帮助您入门。希望这对您有所帮助!

关于javascript - Bootstrap 菜单覆盖页面内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28280732/

相关文章:

javascript - 使用 JavaScript 或 Jquery 附加具有两个条件的行数据

javascript - 如何使用函数每秒增加一个变量值?

javascript - 我可以订阅打开器窗口的加载事件吗?

jquery - .submit() 打开两个选项卡而不是一个

javascript - Jquery 自动完成在通过前两个字符调用时显示多个值

html - 如何在网格中放置重叠两行的图像

javascript - 谷歌可视化设置栏停靠

javascript - 每次刷新页面时运行的 JSP 函数

jquery - 在滚动中将类事件添加到导航选项卡 li

html - 对所有设备保持相同的大小。 HTML & CSS