如何垂直居中导航栏元素(Twitter Bootstrap)?

Posted

技术标签:

【中文标题】如何垂直居中导航栏元素(Twitter Bootstrap)?【英文标题】:How to center navbar elements vertically (Twitter Bootstrap)? 【发布时间】:2012-07-09 15:43:30 【问题描述】:

这是我目前为止的 CSS/LESS CSS 代码:

//make navbar taller
@navbarHeight: 60px;

//make navbar link text 18px
.navbar-inner 
    font-size: 18px;


//make navbar brand text 36px
.navbar .brand 
    font-size: 36px;

产生这个:

仅供参考,我正在使用 Twitter Bootstrap 演示代码,我没有更改 html(除了更改品牌名称)。

如您所见,品牌名称在导航栏中垂直居中,但导航链接却不是(它们向顶部高一点)。只有在我更改导航栏的高度后,问题才变得明显。如何让它们垂直居中(例如 this 网站)?

如果有任何帮助,突出显示 Chrome 中的元素会显示:

【问题讨论】:

将您的代码添加到jsfiddle.net 【参考方案1】:

.brand 类使用的 line-height 与 Bootstrap 中使用的基本文本不同,还有一些其他关键区别。

原始引导导航栏 LESS 中的相关部分 -

对于.brand

.brand 
  // Vertically center the text given $navbarHeight
  @elementHeight: 20px;
  padding: ((@navbarHeight - @elementHeight) / 2 - 2) 20px ((@navbarHeight - @elementHeight) / 2 + 2);
  font-size: 20px;
  line-height: 1;

对于导航栏中的链接:

.navbar .nav > li > a 
  @elementHeight: 20px;
  padding: ((@navbarHeight - @elementHeight) / 2 - 1) 10px ((@navbarHeight - @elementHeight) / 2 + 1);
  line-height: 19px;

您可能需要使用 @elementHeightline-heightpadding 的值来设置 .navbar .nav > li > a 选择器以反映更大的 60 像素 @navbarHeight(这些默认值用于40 像素@navbarHeight)。也许尝试使用 40px @elementHeight 和/或 29px 行高开始。

【讨论】:

谢谢。操纵.navbar .nav > li > aline-height 就成功了(更改@elementHeight 似乎没有效果)。 .brand 单独不起作用。 Bootstrap 的“.nav .brand”会覆盖它。必须插入“.nav .brand”并遵循您的代码,然后它才会覆盖引导程序的原始填充。 我只使用行高,类似于我的徽标高度。效果很好:) 谢谢【参考方案2】:

如果上面的答案没有帮助,而且你还没有接触过html,我唯一能想到的就是css。您可能想查看引导示例使用的 css 并相应地修改 .navbar-inner.navbar .brand 的大小。

【讨论】:

【参考方案3】:

你可以试试这个:

display: table-cell;

【讨论】:

【参考方案4】:

我刚刚在 Bootstrap 3 上遇到了类似的问题,但与品牌元素有关。最后我使用了以下css:

.navbar-brand 
  font-size: 3em;
  line-height: 1em;

由于 50 像素的图像,我的导航栏的大小增加了,顶部和底部边距为 10 像素。不确定这是否有任何帮助。

【讨论】:

以上是关于如何垂直居中导航栏元素(Twitter Bootstrap)?的主要内容,如果未能解决你的问题,请参考以下文章

如何将这些 Twitter bootstrap 3 导航栏链接居中?

Twitter Bootstrap - 如何水平或垂直居中元素

如何在导航栏中垂直居中文本?

请问如何设置bootstrap导航栏中的菜单项居中均匀分布?谢谢

未使用 Twitter Bootstrap 修复导航栏内容时居中?

在 Twitter Bootstrap 3 中为大屏幕居中固定顶部导航栏