[英]Horizontal li - align element vertically
我在CSS display: inline;
使用<ul>
display: inline;
设置为用作页面顶部的工具栏/菜单,如下所示:
如您所见,文本在垂直方向上完美对齐,但是左侧的img
太高,右侧的输入框略低。 我正在努力移动它们,以使其完全垂直对齐。
以下是我的CSS:
.mynav {
font-weight: 300;
border: 1px solid #ccc;
border-width: 1px 0;
list-style: none;
margin: 0;
padding: 0;
text-align: center;
background-color: #0067b1;
}
.mynav li {
display: inline;
align-items: center;
vertical-align:middle;
line-height:35px;
}
.mynav a {
color: white;
display: inline-block;
padding: 15px;
font-size: 14pt;
text-decoration: none;
}
.mynav input {
margin-left: 25px;
font-family: 'Open Sans', sans-serif;
font-weight: 300;
font-style: italic;
-moz-border-radius: 10px;
border-radius: 10px;
border: none;
padding: 5px;
width: 200px;
height: 25px;
margin-top: 0px;
}
.mynav i
{
font-weight: 300;
color: white;
font-size: 24px;
margin-left: 15px;
}
还有我的HTML(如果需要):
<ul class="mynav">
<li><img src="http://www.advancegroupholdings.com.au/my_logo_nav.png" style="width: 100px; height:25px; padding-right:25px;" /></li>
<li><a href="/">My Jobs</a></li>
<li><a href="/about/">Obtain a Quote</a></li>
<li><a href="/work/">Submit New Instruction</a></li>
<li><a href="/clients/">Settings</a></li>
<li><a href="/contact/">Help</a></li>
<li><input type="text" placeholder="Enter Your Ref or Job Number"/><i class="fa fa-search"></i></li>
</ul>
至于输入框,它的填充为5,我尝试删除该填充没有运气。 我还在输入上设置了margin-top: 0px
,仍然没有运气。
至于徽标,我也很困惑。 我尝试添加margin-top: 5px
,但是它不起作用。
我也在StackOverflow上找到了这两个问题:
第一个无效,第二个想要更改CSS以display: flex
,对我来说它摆脱了水平条,不是吗?
谁能帮助我使徽标和输入框(以及放大镜)垂直居中? 先感谢您!
在这里暴跌
将下两个规则添加到图像将使其正确居中。
display: inline-block;
vertical-align: sub; /* or text-bottom */
至于输入,它看起来正确地居中。
我为您创建了一个小的引导示例。 与您所拥有的有所不同,但是或多或少地提供所需的输出。 如果此解决方案适合您,希望您可以从这里继续。
HTML
<div class="col-md-2"><img src="http://www.advancegroupholdings.com.au/my_logo_nav.png" /></div>
<div class="col-md-1">My Jobs</div>
<div class="col-md-2">Obtain a Quote</div>
<div class="col-md-2">Submit a New Instruction</div>
<div class="col-md-1">Settings</div>
<div class="col-md-1">Help</div>
<div class="col-md-3"><input class="inputHeight" type="text" placeholder="Enter Your Ref or Job Number"/><i class="fa fa-search"></i></div>
</div>
</div>
CSS
.navbar {
width:80%;
font-weight: 300;
border: 1px solid #ccc;
border-width: 1px 0;
margin: 0;
padding: 0;
text-align: center;
background-color: #0067b1;
vertical-align:middle;
line-height:50px;
}
.inputHeight {
margin-left: 25px;
font-family: 'Open Sans', sans-serif;
font-weight: 300;
font-style: italic;
-moz-border-radius: 10px;
border-radius: 10px;
border: none;
padding: 5px;
width: 200px;
height: 25px;
margin-top: 0px;
}
在您的特定示例中,只需添加vertical-align:middle
; 到<img>
和<a>
, <i>
元素! 另外,我建议将<li>
元素设置为内联块,而不是内联,以提高灵活性。
通常,要垂直对齐,图像高度必须等于该行中其他元素的
line-height
,并且必须设置vertical-align:middle
。
如果图像高度为25px,则设置:
.mynav li, .mynav i {
vertical-align:middle;
line-height:25px;
}
img {
vertical-align:middle;
height: 25px;
line-height:25px;
}
在这里,您可以前往: https : //plnkr.co/edit/Xf3uvvjuqykQMjnhVxes?p=preview
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.