强制<a> tag have the same height as parent <li></li></a>

时间:2012-02-19 17:51:41

标签: css

我正在设计一个网站的顶栏,无法弄清楚如何强制下面的<a>元素与父<li>元素具有相同的高度。下面的代码显示了带有绿色背景的<li>元素和带有黄色背景的<a>元素。我想让黄色的盒子跨越绿色盒子的整个高度。将<a>元素的高度设置为100%并不成功。我错过了什么?

<!DOCTYPE html>
<head>
  <style>
    div#topbar {
      width: 100%;
      height: 30px;
      top: 0;
      border: 1px solid black;
    }   
    #topbar ul {
      margin: 0;
      padding: 0;
      list-style: none;
      line-height: 30px;
    }
    #topbar ul li {
      margin: 0;
      padding: 0 10px;
      background-color: green;
      display: inline;
      float: left;
    }
    #topbar a {
      background-color: yellow;
    }
  </style>
</head>
<body>
  <div id="topbar">
    <ul>
      <li><a href="">Item 1</a></li>
      <li><a href="">Item 2</a></li>
    </ul>
  </div>
</body>

3 个答案:

答案 0 :(得分:3)

因为标签是一个内联元素而且没有考虑高度,所以你需要把它设为块,这可以用各种方法制作,但最适合你的情况是'浮动'。

    div#topbar {
  width: 100%;
  height: 30px;
  top: 0;
  border: 1px solid black;
}   
#topbar ul {
  margin: 0;
  padding: 0;
  list-style: none;
  line-height: 30px;
}
#topbar ul li {
  margin: 0;
  padding: 0 10px;
  background-color: green;
  display: inline;
  float: left;
}
#topbar a {
  background-color: yellow;
  float:left; /*add this*/
}

http://jsfiddle.net/YMPe2/

答案 1 :(得分:0)

你试过了吗?

#topbar a {
    background-color: yellow;
    display: inline-block;
}

答案 2 :(得分:0)

a标记应为display:block,然后它将填充父级。并丢失li标记上的填充。