簡體   English   中英

引導菜單涵蓋頁面內容

[英]Bootstrap menu covering page content

我想使用帶有Bootstrap的菜單欄,該菜單欄始終位於頁面頂部。 因此,我使用了navbar-fixed-top 我使用了本文結尾處的代碼,但遇到了內容可見性問題

菜單部分重疊了主要內容。

在此處輸入圖片說明

http://getbootstrap.com/examples/starter-template/上 ,通過添加padding-top: 50px;來“解決”問題padding-top: 50px; 到身體。 但這在菜單包裝並且變得大於50px時不起作用:

在此處輸入圖片說明

引導程序中是否有涵蓋該問題的類? 還是我必須添加一個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>

我不知道可以解決此問題的引導程序類。 正如您所提到的,您當然可以在窗口大小調整中添加一個偵聽器。 它將解決您的身高不總是50px的問題。 應該具有以下效果:

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

這未經測試,但可以幫助您入門。 希望這可以幫助!

問題是,當您使用“位置:固定”時,該元素將從“流”中取出,並且相對於窗口而不是相對於其他元素定位。 因此,必須像在引導程序示例中所做的那樣添加邊距,以使菜單不覆蓋基礎內容。 您也可以向主體添加填充,但我寧願在元素上使用空白。

如果您不知道正手菜單的高度,建議您使用@wrxsti編寫的答案。

在CSS中為.navbar一個margin-bottom 那應該解決它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM