我有一个使用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">
水平居中其关联图标?谢谢!
答案 0 :(得分:1)
HPJAJ ,你好。尝试使用line-height: XXpx;
并将此值设置为与图标相同的px高度。这是一种将文本垂直放在中间的简便方法。我也认为<span>
也可能有一些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>
&#13;