angularjs - Bootstrap 3 导航栏固定顶部与内容重叠

标签 angularjs twitter-bootstrap-3 navbar

我正在使用 Bootstrap 3 创建一个页面,其中包含需要修复的导航栏 (navbar-fixed-top) 和下表。当我只使用 navbar-default 时,该表显示正确。一旦我添加 navbar-fixed-top,表格标题似乎就位于导航栏下方。我在这里缺少什么吗?该示例也可以在 Plnkr 中找到:http://plnkr.co/edit/cNVjIDI6C4vOKMHVWWrT?p=preview

<!DOCTYPE html>
<html ng-app="myApp">

<head>
    <title>Interaction Summary Comparision View</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css"></link>

    <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
    <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular.min.js"></script>
    <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular-animate.min.js"></script>
    <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/2.0.1/ui-bootstrap-tpls.min.js"></script>
    <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.3.1/angular-ui-router.min.js"></script>
    <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/spin.js/2.3.2/spin.min.js"></script>
    <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular-spinner/0.8.1/angular-spinner.min.js"></script>
    <script type="text/javascript" src="//cdn.rawgit.com/adonespitogo/angular-loading-spinner/master/angular-loading-spinner.js"></script>
    <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/restangular/1.5.2/restangular.min.js"></script>
    <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
    <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/PapaParse/4.1.2/papaparse.min.js"></script>

    <style>
        .full button span {
            background-color: limegreen;
            border-radius: 32px;
            color: black;
        }

        .partially button span {
            background-color: orange;
            border-radius: 32px;
            color: black;
        }
    </style>

    <!-- Angular logic -->
    <script>
        // Angular App
        var app = angular.module('myApp', ['ui.router', 'ui.bootstrap', 'ngAnimate', 'restangular', 'ngLoadingSpinner']);

        app.factory('dataService', function($http, Restangular) {

            var exports = {};

            exports.getRestangular = function() {
                return Restangular.setBaseUrl("https://cdn.rawgit.com/venkyvb/164b6c12a4f8bc72a02b12234a32bc9c/raw/daa51de397e90387ef51e07e25e971f24c667d0c");
            }

            exports.getData = function() {
                return exports.getRestangular().all("summary.json").getList();
            }

            return exports;
        });

        // Controllers  
        app.controller('SummaryController', function($scope, $rootScope, $filter, dataService) {
            $scope.summary = [];

            dataService.getData().then(function(data) {
                    $scope.summary = data.plain();
                },
                function(data) {
                    // Error
                });

            $scope.downloadCsv = function() {
                window.open('data:text/csv;charset=utf-8,' + escape(Papa.unparse(angular.toJson($scope.summary))));
            };

        });


        app.config(function($stateProvider, $urlRouterProvider) {

            $urlRouterProvider.otherwise('/');

            var summaryList = {
                name: 'SummaryList',
                url: '/',
                templateUrl: '/summary_list.html',
                controller: 'SummaryController',
            };

            $stateProvider.state(summaryList);

        });
    </script>
    <!-- Templates -->
    <script type="text/ng-template" id="/summary_list.html">
        <div class="container-fluid">
            <div class="row">
                <div class="col-sm-12">
                    <nav class="navbar navbar-default navbar-fixed-top">
                        <div class="container-fluid">
                            <div class="navbar-header">
                                <a class="navbar-brand" href="#">Summary View</a>
                            </div>
                            <ul class="nav navbar-nav navbar-right">
                                <li>
                                    <a href="#" ng-click="downloadCsv()"><span class="glyphicon glyphicon-download-alt" title="Download CSV"></span></a>
                                </li>
                            </ul>
                            <form class="navbar-form navbar-right">
                                <div class="form-group">
                                    <input type="text" class="search form-control" ng-model="search.$" placeholder="Search in table">
                                </div>
                            </form>
                        </div>
                    </nav>
                </div>
                <div class="col-sm-12">
                    <div class="panel panel-default">
                        <div class="table-responsive">
                            <table class="table table-hover" ts-wrapper>
                                <thead>
                                    <th>E2E time</th>
                                    <th>Server time</th>
                                    <th>Step</th>
                                    <th>Total</th>
                                </thead>
                                <tr ng-repeat="entry in summary | filter:search" ts-repeat>
                                    <td>{{ entry.e2e_time }}</td>
                                    <td>{{ entry.server_time }}</td>
                                    <td>{{ entry.step }}</td>
                                    <td>{{ entry.total_transactions }}</td>
                                </tr>
                            </table>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </script>

</head>

<body>
    <div class="container-fluid">
        <span us-spinner="{radius:30, width:8, length: 16}"></span>
        <div data-ui-view></div>
    </div>
</body>

</html>

最佳答案

将其添加到您的风格中

 body{
   margin-top:70px;
 }
 @media(max-width: 768px){
   body{
     margin-top:180px;
    }
 }

关于angularjs - Bootstrap 3 导航栏固定顶部与内容重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39050263/

相关文章:

javascript - 如何使对象/属性显示在指令中?

angularjs - 如何将现有的 Angular 应用程序移植到 Electron ?

javascript - Angular 1.5 范围变量在 PouchDB 响应函数中不起作用

javascript - 如何修改注册引导代码以检查电子邮件重复项?

html - 根据屏幕大小将元素列表分成 2 到 3 列

html - 导航栏没有扩展到全宽?

javascript - JavaScript Controller 中的 Angular JS 过滤

html - 如何在引导移动模式下垂直居中列?

html - 导航悬停问题的CSS下拉菜单

reactjs - Reactstrap Bootstrap Navbar在React应用中不起作用