html - 添加左侧导航栏

标签 html css jsp thymeleaf navbar

我在将现有的顶部对齐导航栏与左侧导航栏集成时遇到了 css 对齐问题。

我使用 thymeleaf 来实现我的顶级导航栏。

header.html:

<html xmlns:th="http://www.thymeleaf.org">
   <head>
      <div th:fragment="header-css">
         <!-- this is header-css -->
         <link rel="stylesheet" type="text/css" href="webjars/bootstrap/3.3.7/css/bootstrap.min.css" />
         <link rel="stylesheet" th:href="@{/css/main.css}" href="../../css/main.css" />
         <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
         <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
      </div>
   </head>
   <body>
      <div class="navbar navbar-inverse navbar-fixed-top" th:fragment="header">
         <div class="container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".nav-collapse" aria-expanded="false">
               <span class="icon-bar"></span>
               <span class="icon-bar"></span>
               <span class="icon-bar"></span>
               </button>
               <a class="navbar-brand" href="#" th:href="@{/}"><img class="logoImg" height="25" width="55" src="http://static1.squarespace.com/static/56bcdc788259b5861e880ebe/t/5a96fae971c10bede98395de/1520548852981/?format=1500w"></img></a>
            </div>
            <div class="navbar-collapse collapse">
               <ul class="nav navbar-nav">
                  <li th:classappend="${module == 'tasks' ? 'active' : ''}">
                     <a href="#" th:href="@{/task}">Tasks</a>
                  </li>
                  <li th:classappend="${#httpServletRequest.getRequestURI() == '/dashboard' ? 'active':''}"><a th:href="@{/dashboard}"><span>Dashboard</span></a></li>
                  <li th:classappend="${#httpServletRequest.getRequestURI() == '/orders' ? 'active':''}"><a th:href="@{/orders}"><span>Orders</span></a></li>
                  <li th:classappend="${#httpServletRequest.getRequestURI() == '/income' ? 'active':''}"><a th:href="@{/income}"><span>Income</span></a></li>
                  <li role="separator" ></li>
               </ul>
               <ul class="nav navbar-nav navbar-right">
                  <li th:if="${#authorization.expression('!isAuthenticated()')}">
                     <a href="/signin" th:href="@{/signin}">
                     <span class="glyphicon glyphicon-log-in" aria-hidden="true"></span>&nbsp;Sign in
                     </a>
                  </li>
                  <li th:if="${#authorization.expression('isAuthenticated()')}">
                     <a href="/logout" th:href="@{#}" onclick="$('#form').submit();">
                     <span class="glyphicon glyphicon-log-out" aria-hidden="true"></span>&nbsp;Sign out
                     </a>
                     <form style="visibility: hidden" id="form" method="post" action="#" th:action="@{/logout}"></form>
                  </li>
               </ul>
            </div>
         </div>
      </div>
   </body>
</html>

admin.html:

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
   <head>
      <div th:replace="fragments/header :: header-css"/>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-smart-table/2.1.8/smart-table.min.js"></script>
      <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans" />
      <link rel="stylesheet" type="text/css" href="webjars/bootstrap/3.3.7/css/bootstrap.min.css" />
      <link rel="stylesheet" th:href="@{/css/main.css}" href="../../css/main.css" />
      <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>  
   </head>
   <body ng-app="uploadFileApp">
      <div th:replace="fragments/header :: header"/>
      <div class="sidebar">
         <div class="sidebarHeader">
            <span>Options</span>
         </div>
         <ul>
            <li><a href="#">Home</a></li>
            <li><a href="#">Service</a></li>
            <li><a href="#">Portfolio</a></li>
            <li><a href="#">About</a></li>
            <li><a href="#">Contact</a></li>
         </ul>
      </div>
      <div class="container" style="margin-top:100px">
         <div  ng-controller="uploadFileController">
            <form class="form-horizontal" id="uploadForm" action="#">
               <div class="form-group">
                  <label class="control-label col-sm-2" for="uploadfile">Upload File:</label>
                  <div class="col-sm-5">
                     <input id="upload" class="form-control" type="file" file-model = "uploadedFile" placeholder="Upload File"></input>
                  </div>
                  <button type="submit" class="uploadButton" ng-click = "doUploadFile()">Upload</button>
               </div>
            </form>
            <div class="col-sm-offset-2">
               <p ng-bind="uploadResult"></p>
            </div>
            <hr/>
         </div>
         <div id="pas-table-div" style="display:none;">
            <h3>PAS MDM Reject Records</h3>
            <div ng-show="loading" >
               <h3>Loading...</h3>
            </div>
            <div class="col-sm-offset-2">
               <p ng-bind="submitResult"></p>
            </div>
            <table st-table="display_records" st-safe-src="employees" ng-init="getData()" ng-show="employees.length"
               class="table table-striped" ng-controller="uploadFileController">
               <thead>
                  <tr>
                     <th>Policy Number</th>
                     <th width="100px">First Name</th>
                     <th st-sort="salary">Last Name</th>
                     <th>Error Description</th>
                     <th>Validated/Corrected in PAS</th>
                     <th>Note</th>
                     <th>Action</th>
                  </tr>
               </thead>
               <tbody>
                  <tr st-select-row="row" st-select-mode="multiple"
                     ng-repeat="row in display_records">
                     <td>{{row.PolicyNumber}}</td>
                     <td>{{row.FirstName}}</td>
                     <td>{{row.LastName}}</td>
                     <td>{{row.ErrorDescription}}</td>
                     <td>{{row.PASValidated}}</td>
                     <td>{{row.Note}}</td>
                     <td><button type="button" class="btn btn-danger" ng-click="deletRecord(row.PolicyNumber)">
                        <i class="glyphicon glyphicon-trash"> </i>
                        </button>
                     </td>
                  </tr>
                  <tr>
                     <td></td>
                     <td></td>
                     <td style="border-bottom: 1px solid #ddd;"></td>
                     <td style="border-bottom: 1px solid #ddd;">
                        <button type="button" class="submitButton" ng-click="submit(employees)">Submit</button>
                     </td>
                     <td></td>
                     <td></td>
                     <td></td>
                  </tr>
               </tbody>
               <tfoot>
                  <tr>
                     <td colspan="5" class="text-center">
                        <div st-pagination="" st-items-by-page="itemsByPage"></div>
                     </td>
                  </tr>
               </tfoot>
            </table>
         </div>
         <script src="/js/jsaApp.js"></script>
         <script src="/js/uploadFileCtrl.js"></script>
      </div>
   </body>
</html>

ma​​in.css:

h1 {
    color: #0000FF;
    display: inline;
}

h2 {
    color: #FF0000;
}

footer {
    margin-top: 60px;
}

div.container {
    position: relative;
    left: 60px;
}


.logoImg {
    background-size: 70.7%;
    background-repeat: no-repeat;
    background-position: 50%;
}

.submitButton {
    background-color:#24b54b;
    -moz-border-radius:6px;
    -webkit-border-radius:6px;
    border-radius:6px;
    border:1px solid #18ab29;
    display:inline-block;
    cursor:pointer;
    color:#ffffff;
    font-family:Arial;
    font-size:17px;
    padding:4px 31px;
    text-decoration:none;
}
.submitButton:hover {
    background-color:#15ad3b;
}
.submitButton:active {
    position:relative;
    top:1px;
}

.uploadButton {
    background-color:#16529c;
    -moz-border-radius:6px;
    -webkit-border-radius:6px;
    border-radius:6px;
    border:1px solid #2958b0;
    display:inline-block;
    cursor:pointer;
    color:#ffffff;
    font-family:Arial;
    font-size:17px;
    padding:4px 31px;
    text-decoration:none;
}
.uploadButton:hover {
    background-color:#0c458a;
}
.uploadButton:active {
    position:relative;
    top:1px;
}

.leftNavbar {
    width: 10%;
    float: left;
}

.navbar .navbar-brand {
  padding-top: 5px;
}
.navbar .navbar-brand img {
  height: 40px;
  width: 70px;
}

body {
  padding: 0;
  margin: 0;
  height: 100vh;
}
.buttons {
  position: absolute;
  right: 0;
  top: 0;
  a {
    display: block;
    text-decoration: none;
    padding: 5px 10px;
    margin: 5px;
    background: #000;
    color: #ccc;
  }
}
.sidebar {
  background: #1a1c1d;
  color: #787d80;
  width: 200px;
  height: 100%;
  text-align: center;
  transform-origin: left;
  transform-style: preserve-3d;
  transition: all 0.5s;
  overflow: hidden;

  &.hideDown {
    transform: rotateY(90deg) skewY(10deg);
  }
  &.hideUp {
    transform: rotateY(90deg) skewY(-10deg);
  }
  .sidebarHeader {
    padding: 20px 10px;
    font-weight: 700;
  }
  ul {
    padding: 0;
    margin: 0;
    list-style-type: none;
    li {
      padding: 15px 10px;
      a {
        text-decoration: none;
        color: inherit;
        transition: color 0.5s;
        &:hover {
          color: #ccc;
        }
      }
    }
  }
}

左侧导航栏与现有的顶部导航栏重叠,并隐藏了我在 div 标签中定义的内容。 (上传 功能是 admin.html)

没有左侧导航栏:

Without left navbar

使用左侧导航栏: With left navbar

谁能指导我如何解决这个问题?

PS:我想在 admin.html 而不是 header.html 中添加左侧导航栏,因为我使用的是 header.html 也用于登录页面,它不应该有左侧导航栏。

最佳答案

admin.html

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
   <head>
      <div th:replace="fragments/header :: header-css"/>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-smart-table/2.1.8/smart-table.min.js"></script>
      <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans" />
      <link rel="stylesheet" type="text/css" href="webjars/bootstrap/3.3.7/css/bootstrap.min.css" />
      <link rel="stylesheet" th:href="@{/css/main.css}" href="../../css/main.css" />
      <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>  
   </head>
   <body ng-app="uploadFileApp">
      <div th:replace="fragments/header :: header"/>
      <div class="sidebar">
         <div class="sidebarHeader">
            <span>Options</span>
         </div>
         <ul>
            <li><a href="#">Home</a></li>
            <li><a href="#">Service</a></li>
            <li><a href="#">Portfolio</a></li>
            <li><a href="#">About</a></li>
            <li><a href="#">Contact</a></li>
         </ul>
      </div>
      <div class="container uploadposition">
         <div  ng-controller="uploadFileController">
            <form class="form-horizontal" id="uploadForm" action="#">
               <div class="form-group">
                  <label class="control-label col-sm-2" for="uploadfile">Upload File:</label>
                  <div class="col-sm-5">
                     <input id="upload" class="form-control" type="file" file-model = "uploadedFile" placeholder="Upload File"></input>
                  </div>
                  <button type="submit" class="uploadButton" ng-click = "doUploadFile()">Upload</button>
               </div>
            </form>
            <div class="col-sm-offset-2">
               <p ng-bind="uploadResult"></p>
            </div>
            <hr/>
         </div>
         <div id="pas-table-div" style="display:none;">
            <h3>PAS MDM Reject Records</h3>
            <div ng-show="loading" >
               <h3>Loading...</h3>
            </div>
            <div class="col-sm-offset-2">
               <p ng-bind="submitResult"></p>
            </div>
            <table st-table="display_records" st-safe-src="employees" ng-init="getData()" ng-show="employees.length"
               class="table table-striped" ng-controller="uploadFileController">
               <thead>
                  <tr>
                     <th>Policy Number</th>
                     <th width="100px">First Name</th>
                     <th st-sort="salary">Last Name</th>
                     <th>Error Description</th>
                     <th>Validated/Corrected in PAS</th>
                     <th>Note</th>
                     <th>Action</th>
                  </tr>
               </thead>
               <tbody>
                  <tr st-select-row="row" st-select-mode="multiple"
                     ng-repeat="row in display_records">
                     <td>{{row.PolicyNumber}}</td>
                     <td>{{row.FirstName}}</td>
                     <td>{{row.LastName}}</td>
                     <td>{{row.ErrorDescription}}</td>
                     <td>{{row.PASValidated}}</td>
                     <td>{{row.Note}}</td>
                     <td><button type="button" class="btn btn-danger" ng-click="deletRecord(row.PolicyNumber)">
                        <i class="glyphicon glyphicon-trash"> </i>
                        </button>
                     </td>
                  </tr>
                  <tr>
                     <td></td>
                     <td></td>
                     <td style="border-bottom: 1px solid #ddd;"></td>
                     <td style="border-bottom: 1px solid #ddd;">
                        <button type="button" class="submitButton" ng-click="submit(employees)">Submit</button>
                     </td>
                     <td></td>
                     <td></td>
                     <td></td>
                  </tr>
               </tbody>
               <tfoot>
                  <tr>
                     <td colspan="5" class="text-center">
                        <div st-pagination="" st-items-by-page="itemsByPage"></div>
                     </td>
                  </tr>
               </tfoot>
            </table>
         </div>
         <script src="/js/jsaApp.js"></script>
         <script src="/js/uploadFileCtrl.js"></script>
      </div>
   </body>
</html>

ma​​in.css

h1 {
    color: #0000FF;
    display: inline;
}

h2 {
    color: #FF0000;
}

footer {
    margin-top: 60px;
}


/*div.container {
    position: relative;
    left: 60px;
}*/

.uploadposition{
position:absolute;
right:0px;
top:100px;
width:85%;
}

.navbar-inverse {
    margin-bottom: 0px !important;
    position: relative !important;
}


.logoImg {
    background-size: 70.7%;
    background-repeat: no-repeat;
    background-position: 50%;
}

.submitButton {
    background-color:#24b54b;
    -moz-border-radius:6px;
    -webkit-border-radius:6px;
    border-radius:6px;
    border:1px solid #18ab29;
    display:inline-block;
    cursor:pointer;
    color:#ffffff;
    font-family:Arial;
    font-size:17px;
    padding:4px 31px;
    text-decoration:none;
}
.submitButton:hover {
    background-color:#15ad3b;
}
.submitButton:active {
    position:relative;
    top:1px;
}

.uploadButton {
    background-color:#16529c;
    -moz-border-radius:6px;
    -webkit-border-radius:6px;
    border-radius:6px;
    border:1px solid #2958b0;
    display:inline-block;
    cursor:pointer;
    color:#ffffff;
    font-family:Arial;
    font-size:17px;
    padding:4px 31px;
    text-decoration:none;
}
.uploadButton:hover {
    background-color:#0c458a;
}
.uploadButton:active {
    position:relative;
    top:1px;
}

.leftNavbar {
    width: 10%;
    float: left;
}

.navbar .navbar-brand {
  padding-top: 5px;
}
.navbar .navbar-brand img {
  height: 40px;
  width: 70px;
}

body {
  padding: 0;
  margin: 0;
  height: 100vh;
}
.buttons {
  position: absolute;
  right: 0;
  top: 0;
  a {
    display: block;
    text-decoration: none;
    padding: 5px 10px;
    margin: 5px;
    background: #000;
    color: #ccc;
  }
}
.sidebar {
  background: #1a1c1d;
  color: #787d80;
  width: 200px;
  height: 100%;
  text-align: center;
  transform-origin: left;
  transform-style: preserve-3d;
  transition: all 0.5s;
  overflow: hidden;

  &.hideDown {
    transform: rotateY(90deg) skewY(10deg);
  }
  &.hideUp {
    transform: rotateY(90deg) skewY(-10deg);
  }
  .sidebarHeader {
    padding: 20px 10px;
    font-weight: 700;
  }
  ul {
    padding: 0;
    margin: 0;
    list-style-type: none;
    li {
      padding: 15px 10px;
      a {
        text-decoration: none;
        color: inherit;
        transition: color 0.5s;
        &:hover {
          color: #ccc;
        }
      }
    }
  }
}

Check Updated Screenshot Here...

关于html - 添加左侧导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50112179/

相关文章:

html - 如果它出现在父项的末尾,如何隐藏具有特定类的 div?

c# - 如何将当前的aspx页面保存为html

html - CSS 溢出问题

html - 上边距不起作用

CSS 文档模板

java - 在 spring view : IllegalStateException: Neither BindingResult nor plain target object 中使用 commandName

html - CSS 样式表可以是双向的吗?

javascript - css - 如何使 svgs 响应?

java - 如何从 jquery get 方法获取文本响应?

java - 属性未从 View 发送到 Controller