CSS水平列表 - 垂直对齐多行链接

时间:2013-11-08 13:46:52

标签: html css navigation

我有一个基于列表的水平导航栏,一切正常。 但是我已经到了有这么多导航项目的地步,我需要链接文本流到多行。

请参阅下面的codepen和css,了解我目前拥有的内容。

问题是有些链接只是单个单词,所以只需要在一行上。 这些链接与多行上的链接不垂直对齐。 (见链接)

请有人帮我解决此问题,以便所有链接在中间垂直对齐。

由于

-

http://codepen.io/anon/pen/poKru

-

HTML

<ul class="group">
  <li><a href="#">This is<br />a Link</a></li>
  <li><a href="#">Another<br />Link</a></li>
  <li><a href="#">This link<br />is quite long</a></li>
  <li><a href="#">What can<br />I do...</a></li>
  <li><a href="#">...when<br />this happens?</a></li>
  <li><a href="#">Link</a></li>
  <li><a href="#">Link</a></li>
  <li><a href="#">Link</a></li>
  <li><a href="#">Link</a></li>
  <li><a href="#">Link</a></li>
  <li><a href="#">Link</a></li>
  <li><a href="#">Link</a></li>
</ul>

CSS

ul {
  background: #001e78;
  border-radius: 5px;
  padding: 10px;
  margin: 0;
  width: 980px;
}

li {
  display: inline;
}

li:last-child a {
  border: none;
}

a {
  float: left;
  padding: 10px 12px;
  color: #fff;
  text-decoration: none;
  font-weight: bold;
  text-align: center;
  border-right: 1px solid rgba(255,255,255,0.1);
}

a:hover {
  background: rgba(255,255,255,0.1);
}

.group:after {
  content: "";
  display: table;
  clear: both;
}

1 个答案:

答案 0 :(得分:5)

只需将您的li声明更改为

即可
li {
  display: inline-block;
  vertical-align: middle;
}

你应该没事。

这是我的http://codepen.io/anon/pen/urFGA

版本