<li>中的内联块独立边距

时间:2015-10-25 10:14:05

标签: html css margin

我有以下菜单:

.menu ul {
  list-style: none;
}
.menu ul li {
  height: 35px;
  text-align: center;
  line-height: 35px;
}
li.current {
  background-color: #3eb5f1;
  color: white;
}
li.current::after {
  content: "";
  height: 11px;
  width: 8px;
  display: inline-block;
  background-image: url("../images/nav-arrow.png");
}
<div class="menu">
  <ul>
    <li class="current">Home page</li>
    <li>Inventory</li>
  </ul>
</div>

如图所示,li.current元素有一个图标,但我想添加一个边距。但是,当我在margin中定义li.current::after时,它会影响整个元素; <li class="current">内的文字不仅仅是图标。

如何设置li.current::after的余量?图片 - http://oi59.tinypic.com/108658l.jpg

1 个答案:

答案 0 :(得分:2)

而不是display: inline-block,将伪元素的位置设置为绝对值。然后,您可以向其应用左边距,而不会影响&#34;主页&#34;的文本位置:

&#13;
&#13;
.menu ul {
  list-style: none;
}
.menu ul li {
  height: 35px;
  text-align: center;
  line-height: 35px;
}
li.current {
  background-color: #3eb5f1;
  color: white;
}
li.current::after {
  content: "image";
  height: 11px;
  width: 8px;
  position: absolute;
  margin-left: 50px;
}
&#13;
<div class="menu">
  <ul>
    <li class="current">Home page</li>
    <li>Inventory</li>
  </ul>
</div>
&#13;
&#13;
&#13;