导航菜单无法使用

3
如何解决Bootstrap导航栏面临的这3个问题:
  • 当窗口缩小时,菜单无法正确折叠
  • 在菜单链接旁边放置图标而不是下方
  • 当窗口缩小时,让注册/登录按钮链接到另一个页面
以下是演示:

https://jsfiddle.net/whywymam/zpdpsuLn/

HTML代码:
<div class="container">

      <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">

          <navbar>

              <div class="upperRow">

               <div class="navbar-header">
                    <a href="#" class="brand navbar-brand"> <img src="image/logo.png" class="img-responsive"></a>
               </div>

               <div id="btnTopInline">

                   <ul class="nav navbar-nav navbar-right imgicon hidden-xs">

                       <li>
                         <div class="indivColl">
                            <a href="signupLogin.php">
                               <img src="image/jobseekerlogo.png" class="indi">
                               <p class="indit">Job Seeker</p>
                            </a>
                         </div>
                       </li>

                       <li>
                         <div id="empColl">
                            <a href="signupLoginEmp.php">
                               <img src="image/employerlogo.png" class="emp">
                               <p class="empt">Employer</p>
                            </a>
                         </div>
                       </li>

                   </ul>

               </div>

               <!--                for tablet and mobile view-->
                <button type="button" class="btn btn-login pull-right visible-xs">
                    <a href="signupLoginEmp.php">
                        Employer<br>Log In
                    </a>
                </button>

                <button type="button" class="btn btn-login pull-right visible-xs">
                    <a href="signupLogin.php">
                        Job Seeker<br>Log In
                    </a>
                </button>

              </div>

            <div class="middleRow">

                <div class="navbar-inner navbar-default navbar-static-top navcolor">

                          <div class="navbar-header ">

                              <!--button to appear when display is on mobile device-->
                              <button type="button" class="navbar-toggle pull-right" data-toggle="collapse" data-target=".nav-collapse">
                                  <span class="sr-only">Toggle navigation</span>
                                  <span class="icon-bar"></span>
                                  <span class="icon-bar"></span>
                                  <span class="icon-bar"></span>
                              </button>

                          </div>

                          <div class="nav-collapse collapse-in" id="nav-collapse">

                              <ul class="nav  navbar-nav center-block">
                                <li><a href="home.php">Home<img src="image/home.png" width="75" height="65" alt="" title="" /></a></li>
                                <li><a href="about.php">About<img src="image/about.png" width="75" height="65" alt="" title="" /></a></li>
                                <li><a href="pyw.php">Prove Job<img src="image/PYW.png" width="75" height="65" alt="" title="" /></a></li>
                                <li><a href="#">Job<img src="image/jobs.png" width="75" height="65" alt="" title="" /></a></li>
                                <li><a href="rescources.php">Resources<img src="image/resource.png" width="75" height="65" alt="" title="" /></a></li>
                             </ul>

                          </div>


                    </div> <!-- end inner navbar -->

            </div> <!-- end middle row -->

          </navbar>

      </div> <!-- end col-lg-12 col-md-12 col-sm-12 col-xs-12 -->

  </div><!-- end container -->

CSS:

.img-responsive {
max-width: 60%;
margin-bottom: 15%;
padding-top: -3%;
}
.imgicon {
padding-left: 50%;
margin-top: -2%;
}

.middleRow{
padding-top: 10%;
margin-top: 5%;
}

.navcolor{
background-color: transparent;
}

.navbar-default {
margin-top: 3%;
}

.navbar-nav {
float:none;
margin: 0 auto;
display: table;
table-layout: fixed;
text-align: center;
}

#btnTopInline{
display: inline-block;
float: right;
clear: none;
}

@media(min-width:768px) {
  .nav-collapse{
        display: inline;
  }
  }

提前感谢您:)

(需要翻译的内容)

在你的演示中,一切似乎都是固定的吗? - undefined
2个回答

2

这里是我对 HTML 和 CSS 做了一些修改后的代码:

为了让切换按钮正常工作,请使用 data-target=".nav-collapse" 而不是 data-target=".navbar-collapse"

如果要在菜单链接旁边添加图标,请在锚点标签内添加 img 标签。

以下是更改内容:

<body>
         <div class="navbar">
            <div class="navbar-inner">
               <div class="container">
                  <div class="navbar-header">
                     <a href="#" class="brand navbar-brand"> <img src="image/logo.png" class="img-responsive"></a>
                  </div>
                  <ul class="nav navbar-nav navbar-right imgicon hidden-xs">
                     <div id="indivColl">
                        <a href="signupLogin.php">
                           <img src="image/jobseekerlogo.png" class="indi">
                           <p class="indit">Job Seeker</p>
                        </a>
                     </div>
                     <div id="empColl">
                        <a href="signupLoginEmp.php">
                           <img src="image/employerlogo.png" class="emp">
                           <p class="empt">Employer</p>
                        </a>
                     </div>
                  </ul>
                  <!--                for tablet and mobile view-->
                  <button type="submit" id="btn-login-header" class="btn btn-login pull-right visible-xs mobile-login" 
                     id="header-mobile-login-button" data-target="#indivColl">
                  Employer<br>Log In
                  </button>
                  <button type="submit" id="btn-login-header" class="btn btn-login pull-right visible-xs mobile-login" 
                     id="header-mobile-login-button" data-target="#empColl">
                  Job Seeker<br>Log In
                  </button>

                  <button type="button" class="navbar-toggle btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
                  <span class="icon-bar">Toggle navigation</span>
                  <span class="icon-bar"></span>
                  <span class="icon-bar"></span>
                  </button>

                  <div class="nav-collapse collapse in" id="navbar-collapse">
                     <ul class="nav navbar-nav">
                        <li><a href="home.php">Home<img src="image/home.png" width="75" height="65" alt="" title="" /></a></li>
                        <li><a href="about.php">About<img src="image/about.png" width="75" height="65" alt="" title="" /></a></li>
                        <li><a href="pyw.php">Prove Your Worth<img src="image/PYW.png" width="75" height="65" alt="" title="" /></a></li>
                        <li><a href="#">Job<img src="image/jobs.png" width="75" height="65" alt="" title="" /></a></li>
                        <li><a href="rescources.php">Resources<img src="image/resource.png" width="75" height="65" alt="" title="" /></a></li>
                     </ul>
                  </div>
               </div>
            </div>
         </div>
   </body>

在CSS中添加这个。
@media(min-width:768px) {
      .nav-collapse{
            display: block;
      }
 }

如何确保导航菜单在所有屏幕尺寸下都居中显示?我尝试使用center-block和nav-justified,但没有起作用。 - undefined

0
首先:对于响应式布局的工作,Bootstrap需要与行和列一起使用。你需要将导航栏放在里面。
<div class="row">
    <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
         <navbar>
         </navbar>
    </div>
</div>

第二点:我没有测试过,但我认为在导航栏的li标签内部,你需要创建一个带有text-align: center属性的div,或者将这个属性放在li标签上。在div内部放置文本和图标,每个都有一个包含float: left和clear: both属性的class。
<ul class="nav navbar-nav navbar-right imgicon hidden-xs">
            <div id="indivColl">
            <a href="signupLogin.php"><img src="image/jobseekerlogo.png" class="indi"><p class="indit">Job Seeker</p></a>
            </div>

            <div id="empColl">
            <a href="signupLoginEmp.php"><img src="image/employerlogo.png" class="emp"><p class="empt">Employer</p></a>
            </div>
        </ul>

在上面,你需要将每个div放在一个li中。在img中插入class,并将p标签替换为span标签,然后将相同的class添加到span中。 这个例子是一个假设,我没有测试过,但你可以在www.w3cschools.com上搜索更多关于float和clear的信息。

你代码中的导航栏逻辑完全错误。你有一个导航栏内嵌在另一个导航栏中,有两个容器。你需要重新审查一下bootstrap、html和css的概念,伙计!把这个和你的进行比较:

    <div class="navbar navbar-default navbar-static-top navcolor">

<div class="navbar-header">
  <a href="#" class="navbar-brand"> <img src="image/logo.png" class="img-responsive"></a>
</div>

<!-- for tablet and mobile view-->
<button type="submit" id="btn-login-header" class="btn btn-login pull-right navbar-btn visible-xs mobile-login" id="header-mobile-login-button" data-target="#indivColl">  Job Seeker Log In </button>
<button type="submit" id="btn-login-header" class="btn btn-login pull-right navbar-btn visible-xs mobile-login" id="header-mobile-login-button" data-target="#empColl"> Employer Log In </button>

<div class="navbar-header">
  <!--button to appear when display is on mobile device-->
  <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
    <span class="sr-only">Toggle navigation</span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
  </button>
</div>

<div class="collapse navbar-collapse" id="navbar-collapse">
  <ul class="nav navbar-nav">
    <li><a href="home.php">Home</a><img src="image/home.png" width="75" height="65" alt="" title="" /></li>
    <li><a href="about.php">About</a><img src="image/about.png" width="75" height="65" alt="" title="" /></li>
    <li><a href="pyw.php">Prove Your Worth</a><img src="image/PYW.png" width="75" height="65" alt="" title="" /></li>
    <li><a href="#">Job</a><img src="image/jobs.png" width="75" height="65" alt="" title="" /></li>
    <li><a href="rescources.php">Resources</a><img src="image/resource.png" width="75" height="65" alt="" title="" /></li>
    <li class="imgicon hidden-xs">
      <div id="indivColl">
        <a href="signupLogin.php"><img src="image/jobseekerlogo.png" class="indi"><p class="indit">Job Seeker</p></a>
      </div>
    </li>
    <li class="imgicon hidden-xs">
      <div id="empColl">
        <a href="signupLoginEmp.php"><img src="image/employerlogo.png" class="emp"><p class="empt">Employer</p></a>
      </div>
    </li>
  </ul>
</div>

我不会详细介绍CSS或完整的Bootstrap规则,但我认为这段代码对你可能有用。别忘了使用浮动和清除类名 ^^

这是一种方法。再见,如果我的回答对你有帮助,请点赞!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接