背景色延伸到ul的整个宽度

时间:2020-03-06 14:30:55  来源:igfitidea点击:

我有一个用于水平菜单的简单列表:

<ul>
    <h1>Menu</h1>
    <li>
      <a href="/" class="selected">Home</a>
    </li>
    <li>
      <a href="/Home">Forum</a>
    </li>
</ul>

当我将背景色添加到选定的类时,只有文本才获得该颜色,我希望它可以拉伸该部分的整个距离。

希望这是有道理的。

解决方案

a元素是一个内联元素,这意味着它仅适用于其包含的文本。如果希望背景颜色水平延伸,请将选定的类应用于块级元素。将类应用于li元素应该可以正常工作。

或者,我们可以将其添加到所选类的CSS中:

display: block;

这将使一个元素显示为块元素。

这样的事情会起作用吗?

.selected {
    display: block;
    width: 100%;
    background: #BEBEBE;
}

将选定的类放在&lt;li>上,而不是&lt;a>

默认情况下,<a>元素是内联的。这意味着它们不会建立自己的块,它们只是文本的一部分。我们希望他们建立自己的块,因此应使用a {display:block; }和适当的上下文。这也使我们能够向&lt;a>元素而不是&lt;li>元素添加填充,从而使它们的可点击区域更大,从而更易于使用。

每个人都是正确的,问题是锚点是内联元素,但我想也值得一提的是,列表中也有一个H1. 禁止在此处使用H1,应将其从UL中拉出或者放入LI标签中。