Navbar不适合整个页面

时间:2018-01-26 08:35:28

标签: twitter-bootstrap spring-boot tiles

我有一个问题,我的导航栏不适合整个页面,如下所示: 它发生在我实现用于模板的Apache Tiles之后

enter image description here

我的menu.jsp是:

<nav class="navbar navbar-inverse">
<div class="container">
    <div class="navbar-header">
        <a class="navbar-brand" href="#">Spring Boot</a>
    </div>
    <div id="navbar" class="collapse navbar-collapse">
        <ul class="nav navbar-nav">
            <li class="active"><a href="/flight_information_display">Home</a></li>
            <li><a href="/flight_information_display/about">About</a></li>
        </ul>
    </div>
</div>
</nav>

为什么导航栏不适合整个页面? 我还使用Apache Tiles进行模板化,我的布局是:

<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
<html>
<head>
    <title><tiles:getAsString name="title" /></title>
    <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

    <link rel="stylesheet" type="text/css"
            href="webjars/bootstrap/3.3.7/css/bootstrap.min.css" />

    <!-- 
            <spring:url value="/css/main.css" var="springCss" />
            <link href="${springCss}" rel="stylesheet" />
             -->
    <c:url value="/css/main.css" var="jstlCss" />
    <link href="${jstlCss}" rel="stylesheet" />

</head>

<body>
    <table>
        <tr>
            <td>
                <tiles:insertAttribute name="menu" />
            </td>
        </tr>
        <tr>
            <td>
                <tiles:insertAttribute name="header" />
            </td>
        </tr>
        <tr>
            <td>
                <tiles:insertAttribute name="body" />
            </td>
        </tr>
        <tr>
            <td>
                <tiles:insertAttribute name="footer" />
            </td>
        </tr>
    </table>
</body>

的main.css

h1{
    color:#0000FF;
}

h2{
    color:#FF0000;
}

如果您需要提供任何其他代码,请告知我们。 非常感谢提前

4 个答案:

答案 0 :(得分:0)

尝试将.full-width { width: 100%; }类添加到div中,这样就像<div class="container full-width">一样。如果这不起作用,那么请尝试检查导航栏类,以便在CSS文件中修改它们。

修改

这是bootstrap的常见导航栏:

<nav class="navbar navbar-inverse">
  <div class="container-fluid">
    <div class="navbar-header">
      <a class="navbar-brand" href="#">WebSiteName</a>
    </div>
    <ul class="nav navbar-nav">
      <li class="active"><a href="#">Home</a></li>
      <li><a href="#">Page 1</a></li>
      <li><a href="#">Page 2</a></li>
      <li><a href="#">Page 3</a></li>
    </ul>
  </div>
</nav>

How it looks

答案 1 :(得分:0)

将宽度增加到100%。请尝试以下代码段

&#13;
&#13;
.navbar {
  width: 100%;
}
&#13;
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

<nav class="navbar navbar-inverse">
  <div class="container">
    <div class="navbar-header">
      <a class="navbar-brand" href="#">Spring Boot</a>
    </div>
    <div id="navbar" class="collapse navbar-collapse">
      <ul class="nav navbar-nav">
        <li class="active"><a href="/flight_information_display">Home</a></li>
        <li><a href="/flight_information_display/about">About</a></li>
      </ul>
    </div>
  </div>
</nav>
&#13;
&#13;
&#13;

屏幕截图(拉伸至2台显示器) enter image description here

<强>被修改

更改上述代码的格式

<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
<html>
<head>
    <title><tiles:getAsString name="title" /></title>
    <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

    <link rel="stylesheet" type="text/css"
            href="webjars/bootstrap/3.3.7/css/bootstrap.min.css" />

    <!-- 
            <spring:url value="/css/main.css" var="springCss" />
            <link href="${springCss}" rel="stylesheet" />
             -->
    <c:url value="/css/main.css" var="jstlCss" />
    <link href="${jstlCss}" rel="stylesheet" />

</head>

<body>
    <div>
        <tiles:insertAttribute name="menu" />
    </div>
    <div>
        <tiles:insertAttribute name="header" />
    </div>
    <div>
        <tiles:insertAttribute name="body" />
    </div>
    <div>
        <tiles:insertAttribute name="footer" />
    </div>
</body>

答案 2 :(得分:0)

我怀疑是什么东西:

/css/main.css or  <link href="${jstlCss}" rel="stylesheet" />

将所有内容拉到左侧:当您使用“容器”类时,您的菜单栏+导航应显示为居中,每边都有填充。看起来填充是正确的,但页面被拉了。

注意:容器流体会导致布局没有这种集中式布局,并带有填充。

你的问题在于其他CSS(main.css或$ {jstlCss})。您可以使用F12调试器来查找promlem。寻找去除衬垫的样式 我怀疑你的main.css中有一个叫做“容器”的类

<link href="${jstlCss}" rel="stylesheet" />

答案 3 :(得分:0)

我可以通过更改我的瓷砖布局来解决我的问题。 我用div而不是table

<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
<html>
<head>
    <title><tiles:getAsString name="title" /></title>
    <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

    <link rel="stylesheet" type="text/css"
            href="webjars/bootstrap/3.3.7/css/bootstrap.min.css" />

    <!-- 
            <spring:url value="/css/main.css" var="springCss" />
            <link href="${springCss}" rel="stylesheet" />
             -->
    <c:url value="/css/main.css" var="jstlCss" />
    <link href="${jstlCss}" rel="stylesheet" />

</head>

<body>
    <div>
        <tiles:insertAttribute name="menu" />
    </div>
    <div>
        <tiles:insertAttribute name="header" />
    </div>
    <div>
        <tiles:insertAttribute name="body" />
    </div>
    <div>
        <tiles:insertAttribute name="footer" />
    </div>
</body>