【问题标题】:Centering navbar icon text - Rails app using Bootstrap居中导航栏图标文本 - 使用 Bootstrap 的 Rails 应用程序
【发布时间】:2015-09-11 11:12:08
【问题描述】:

我有一个使用 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;
}

如何让每个&lt;span class="nav-icon-text"&gt;水平居中于下方与其关联的图标?谢谢!

【问题讨论】:

  • 我认为如果您有一个在线工作示例(在 jsfiddle.net 或类似服务上),您将更有可能获得帮助。

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


【解决方案1】:

HPJAJ,您好。尝试使用line-height: XXpx; 并使此值与您的图标具有相同的像素高度。这是一种让您的文本垂直居中的简单方法。我也认为&lt;span&gt; 也可能有一些padding-top,所以请记住这一点。

已添加到帖子中

明白了,你的意思是水平的。

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

删除类表明您的文本居中。

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

这是一个有效的 Fiddle。

<!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>

【讨论】:

  • 我在最初的解释中并不清楚它需要水平居中,而不是垂直居中。我相应地编辑了问题。谢谢@AngularJR!
  • 嗨,没关系。我在这里又看了你的代码。请参阅主帖中的更新。
  • 这就是问题所在。谢谢@AngularJR !!
猜你喜欢
  • 1970-01-01
  • 2021-12-31
  • 2019-09-21
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-10
相关资源
最近更新 更多