我正在努力处理将导航栏与我的徽标内联所需的html标记和css。以下是我所拥有的(需要宽屏幕观看):
http://jsfiddle.net/ewz5r7k6/3/embedded/result/
HTML
<header>
<nav class="container"> <a href="index.html"><img src="http://s2.hulkshare.com/song_images/original/7/0/6/706218dbe06e5490bacd92adf773c870.jpg?dd=1388552400"></a>
<form class="search">
<input type="text" class="input text" placeholder="Keyword">
<input type="text" class="input text" placeholder="Location">
<input type="submit" class="btn submit">
</form>
</nav>
</header>
CSS
html, body {
height: 100%;
}
a {
text-decoration: none;
}
.container {
padding-left: 40px;
padding-right: 40px;
}
header {
padding-top: 30px;
padding-bottom: 30px;
}
header nav {
height: 50px;
line-height: 50px;
}
header ul {
float: right;
}
header ul li {
display: inline-block;
}
header ul li a {
color: rgb(58, 64, 70);
display: block;
font-family:'Whitney SSm A', 'Whitney SSm B', Helvetica, Arial, sans-serif;
font-size: 13px;
height: 21px;
line-height: 21px;
margin-left: 25px;
text-decoration: none;
padding-left:15px;
padding-right:15px;
}
header ul li a.active {
color: #f16162;
}
header img {
height: 50px;
}
.input {
margin:0;
padding: 10px 12px;
font-weight: 300;
border-radius: 3px;
box-sizing: border-box;
vertical-align:middle;
}
.search {
display: inline-block;
}
.search .text {
width: 300px;
margin-right: 30px;
;
}
.search .submit {
background-size: 18px 18px;
background-repeat: no-repeat;
background-position: center;
font-size: 0;
height: 38px;
width: 60px;
vertical-align:middle;
}
.btn {
border-radius: 3px;
background-color: black;
color: #fff;
border: 0;
text-decoration: none;
}
.right {
float:right;
}
通过对表单使用
display:inline-block;
,实现这种布局的最干净、最语义的方式是什么?我似乎可以把所有东西都向左飘,我不确定什么是最好的方法。我应该如何在导航栏中垂直居中窗体,
line-height
是正确的标记吗,或者有更好的方法吗?
没有将元素并排放置的"最佳"方式。这完全取决于情况,但inline-block
和float: left
都是可行的选择。为了方便起见,我通常使用内联块,直到我真正需要浮动。漂浮物往往需要额外的规则来防止副作用,比如必须清除它们或解决溢出问题。
使用内联块时的垂直居中通常使用vertical-align
来完成,尽管这也在很大程度上取决于情况。如果你问我,垂直对齐是CSS中最烦人的事情之一
.search {
display: inline-block;
vertical-align: top;
}
足以使表单与徽标对齐。
只需将img标记设置为垂直居中即可解决问题
img
{
vertical-align:middle;
}
参见演示
请参阅以下链接以更好地理解:float:left;vs显示:内联;vs显示:内联块;vs显示:表格单元格;