html - 如何在导航栏上垂直居中菜单项?

标签 html css twitter-bootstrap-3

我尝试将菜单项“TEST 1”、“TEST 2”和“BRAND”垂直居中,但没有成功。 我试过垂直对齐、边距顶部和底部。

我的意思是,我不想将一个放在另一个之上,只是在导航栏的顶部和底部边距之间居中。

如果有人能帮助我,我将不胜感激。

HTML

<nav class="navbar navbar-default">
      <div class="container-fluid">
      <div class="navbar-header">
        <button type="button" class="navbar-toggle collapsed" data-
    toggle="collapse" data-target="#menu-collapse" aria-expanded="false">
    <span class="sr-only">Toggle navigation</span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
    </button>
    <a href="index.html" class="navbar-brand">BRAND</a>
   </div>
   <div class="collapse navbar-collapse" id="menu-collapse">
   <ul class="nav navbar-nav navbar-center">
    <li><a id="menu-right" href="#">TEST 1</a></li>
    <li><a id="menu-right" href="#">TEST 2</a></li>
  </ul>
  <ul class="nav navbar-nav navbar-right">
    <li><a href="#"><button class="btn btn-primary">Start Now</button></a></li>
    <li><a href="#"><button class="btn btn-primary">Member Login </button></a>
     </li>
     </ul> 
      </div>
     </div>
     </nav>

CSS

    #menu-right:hover {
        background: #5d5dc9;
        color:#fff;
    }

    #menu-right {
        color:#337ab7;
        text-transform: uppercase;
        vertical-align: middle;
    }

ul {
  vertical-align: middle;
}


    .button-margin {
        border: 1px solid;
    }

    .navbar-brand {
        margin-right: 200px;
    }


    .navbar {
        margin-bottom: 0;
        font-family: 'Raleway', sans-serif;
        font-size: 1.5em;
        font-weight: 800;
        text-transform: uppercase;
    }

这是codepen网站测试的链接:https://codepen.io/fdcoder81/pen/Kymyyj

非常感谢

最佳答案

如果您将 a 标签的 line-height 设置为导航栏的高度,它应该垂直居中对齐。

顺便说一句,你的:

<a id="menu-right" href="#">

occurences 应该有 classes - 同一个 id 不能分配给多个元素。

<a class="menu-right" href="#">

并相应地改变你的CSS

.menu-right

编辑: 我玩过你的 codepen 东西 - 我不知道这是否是使用 Bootstrap 时要走的路,但它有效。

您的 HTML:

    <html>

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>TEST</title>
    <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
    <link href="https://fonts.googleapis.com/css?family=Roboto:400,900" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css?family=Raleway:400,800" rel="stylesheet">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <link rel="stylesheet" href="css/styles.css">
</head>

<body>
    <header>
        <nav class="navbar navbar-default">
            <div class="container-fluid">
                <div class="navbar-header">
                    <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#menu-collapse" aria-expanded="false">
                        <span class="sr-only">Toggle navigation</span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                    </button>
                    <a href="index.html" class="navbar-brand">BRAND</a>
                </div>
                <div class="collapse navbar-collapse" id="menu-collapse">
                    <ul class="nav navbar-nav navbar-center">
                        <li>
                            <a class="menu-right" href="#">TEST 1</a>
                        </li>
                        <li>
                            <a class="menu-right" href="#">TEST 2</a>
                        </li>
                    </ul>
                    <ul class="nav navbar-nav navbar-right">
                        <li>
                            <a href="#">
                                <button class="btn btn-primary">Start Now</button>
                            </a>
                        </li>
                        <li>
                            <a href="#">
                                <button class="btn btn-primary">Member Login </button>
                            </a>
                        </li>

                    </ul>
                </div>


            </div>



        </nav>

    </header>

    <!--<script src="js/jquery-3.2.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>-->
</body>

</html>

你的 CSS:

.menu-right:hover {
    background: #5d5dc9;
    color: white;
}

.menu-right {
    color:#337ab7;
    text-transform: uppercase;
    line-height: 54px;
}
.button-margin {
    border: 1px solid;
}

.navbar > .container-fluid .navbar-brand {
    margin-right: 200px;
    line-height: 54px;
    padding-top: 0;
    padding-bottom: 0;
}


.navbar {
    margin-bottom: 0;
    font-family: 'Raleway', sans-serif;
    font-size: 1.5em;
    font-weight: 800;
    text-transform: uppercase;
}
.navbar-default .navbar-nav>li>a {
    line-height: 54px;
    padding-top: 0;
    padding-bottom: 0;
}

关于html - 如何在导航栏上垂直居中菜单项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47253321/

相关文章:

javascript - 如何发现具有最大字体大小的元素

html - CSS 没有 overflow hidden - Wordpress

javascript - 检测浏览器是否使用 GPU 加速图形进行渲染

html - 如何为我的 li 元素设置边框

jquery - div底部的对齐按钮

javascript - 无法使用 jquery 设置选择的选定值

javascript - 编辑发帖柜台博主

javascript - 向 slider 添加元素符号,该元素符号会随右侧幻灯片自动更改

jquery - 引导折叠为打开的元素添加类

html - css a nav 隐藏了我的文本