中心导航栏图标文本 - 使用Bootstrap的Rails应用程序

时间:2015-06-25 02:38:21

标签: html css ruby-on-rails twitter-bootstrap

我有一个使用Bootstrap的4.x Rails应用程序。导航栏中包含Font Awesome图标。将鼠标悬停在某个图标上时,带有一个文字的<span>会在下方显示该图标。

我遇到的问题是让这个单词的文字水平居中图标。现在,图标堆叠在文本上方,应该是;但是,文本与左侧对齐,未与图标的水平中心对齐。

这是我的HTML:

  

<div class="navbar-collapse collapse">
  <ul class="nav navbar-nav navbar-right">
    <li id="nav-microphone"><%= link_to '#', class: "col-xs-offset-1 col-xs-2" do %>
      <i class="fa fa-microphone fa-3x"></i><br>
      <span class="nav-icon-text">mute</span>
      <% end %>
    </li>
    <li id="nav-video"><%= link_to '#', class: "col-xs-offset-1 col-xs-2" do %>
      <i class="fa fa-video-camera fa-3x"></i><br>
      <span class="nav-icon-text">off</span>
      <% end %>
    </li>
    <li id="nav-exit"><%= link_to '#', class: "col-xs-offset-1 col-xs-2" do %>
      <i class="fa fa-sign-out fa-3x"></i><br> 
      <span class="nav-icon-text">hangup</span>
      <% end %>
    </li>
    <li id="nav-settings"><%= link_to '#', class: "col-xs-offset-1 col-xs-2" do %>
      <i class="fa fa-cog fa-3x"></i><br> 
      <span class="nav-icon-text">settings</span>
      <% end %>
    </li>
  </ul>
</div>

这是我关联的CSS:

.navbar {
  min-height: 80px;
  border-radius: 0;
}

.navbar-default {
  background-color: #98172c;
  border-color: #98172c;
}

.fa {
  color: white;
}

.mojo-logo {
  max-height: 60px;
}

#nav-microphone, #nav-video, #nav-exit {
  display: none;
}

.navbar-nav > li > a {
  padding-bottom: 20px;
}

.nav-icon-text {
  display: none;
  color: white;
  font-size: 16px;
  margin: 0;
  padding: 0;
  text-align: center;
  font-family: Garamond Pro;
}

.navbar-nav > li > a:hover .nav-icon-text {
  display: block;   
}

.nav > li > a {
  padding: 10px 22px;
}

.nav > li {
  padding-top: 10px;
  min-height: 99px;
  min-width: 95px;
  text-align: center;
}

如何让每个<span class="nav-icon-text"> 水平居中其关联图标?谢谢!

1 个答案:

答案 0 :(得分:1)

HPJAJ ,你好。尝试使用line-height: XXpx;并将此值设置为与图标相同的px高度。这是一种将文本垂直放在中间的简便方法。我也认为<span>也可能有一些padding-top,所以请记住这一点。

已添加到帖子

罗杰,你的意思是水平。

我放了你的代码,发现你在导航栏中有col-xs-1 col-xs-offset-2的问题 对于这个演示,我打开了你没有显示的部分。喜欢文字和图标。

删除类显示您的文本居中。

正如您将在下面的代码中看到的那样。

这是一个有效的 Fiddle

enter image description here

&#13;
&#13;
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    
    <meta name="description" content="">
    <meta name="author" content="">
    <link rel="icon" href="../../favicon.ico">

    <title>Starter Template for Bootstrap</title>

    <!-- Bootstrap core CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
<style>
  
    
.navbar {
  min-height: 80px;
  border-radius: 0;  
}

.navbar-default {
  background-color: #98172c;
  border-color: #98172c;
}

.fa {
  color: white;
}

.mojo-logo {
  max-height: 60px;
}

#nav-microphone, #nav-video, #nav-exit {
  display: block;
}

.navbar-nav > li > a {
  padding-bottom: 20px;
}

.nav-icon-text {
  display: block;
  color: white;
  font-size: 16px;
  margin: 0;
  padding: 0;
  text-align: center;
  font-family: Garamond Pro;
}

.navbar-nav > li > a:hover .nav-icon-text {
  display: block;
  color:darkorange;    
}

.nav > li > a {
  padding: 10px 0px;
  
}

.nav > li {
  padding-top: 10px;
  min-height: 99px;
  min-width: 95px;
  text-align: center;
}    
    
</style>

</head>

<body>

    
<div class="navbar-collapse collapse navbar-default">
  <ul class="nav navbar-nav navbar-right ">
    <li id="nav-microphone"><a href="#" >
      <i class="fa fa-microphone fa-3x"></i><br>
      <span class="nav-icon-text">mute</span>
      </a>
    </li>
    <li id="nav-video"><a href="#" >
      <i class="fa fa-video-camera fa-3x"></i><br>
      <span class="nav-icon-text">off</span>
      </a>
    </li>
    <li id="nav-exit"><a href="#" >
      <i class="fa fa-sign-out fa-3x"></i><br> 
      <span class="nav-icon-text">hangup</span>
      </a>
    </li>
    <li id="nav-settings"><a href="#" >
      <i class="fa fa-cog fa-3x"></i><br> 
      <span class="nav-icon-text">settings</span>
      </a>
    </li>
  </ul>
</div>

    <!-- Bootstrap core JavaScript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
    
</body>
</html>
&#13;
&#13;
&#13;