CSS 使 li 元素出现在 ul 之外

标签 css positioning z-index

考虑这段代码:

<div class="menu">
<ul>
    <li class="active">I'm active!</li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
</ul>
</div>

我的 .menu div 有一个 1px 的黑色边框,我的 .active 列表元素有一个白色背景。现在,我希望我的 .active 列表元素位于 div 的“外部”,并与边框重叠,将其部分隐藏在白色背景中。这是如何实现的?

为了说明我想要什么;

这就是我目前所拥有的,已编码; http://i.stack.imgur.com/cVZHt.png

这就是它应该的样子; http://i.stack.imgur.com/gp2k2.png

最佳答案

使用相对定位。

.menu li {
    position: relative;
    top: 1px;
}

要确保这有效,需要注意几件事:

  • 这是在所有 li 元素上的事实是有意的。如果我只将它放在选定的对象上,则选定的对象会向下移动。
  • 这仅在蓝色背景是 ul 标签的一部分并且 li 标签具有透明背景(当然除了图像)的情况下有效。否则,您可能会覆盖 ul 元素的所有边框。

还有一件事(只是因为)。你有这个:

<div class="menu">
<ul>
...
</ul>
</div>

ul 标签完全可以自己拥有一个类。除非你有充分的理由不这样做,否则就这样做:

<ul class="menu">
    ...
</ul>

关于CSS 使 li 元素出现在 ul 之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6279304/

相关文章:

ASP.Net Modal Popup 位置

CSS:页脚出现在浏览器大小缩小的主要内容上

javascript - 为什么 removeChild 不删除元素?

html - 内联 block 元素后的意外边距

javascript - Jquery:如何将模式对话框设置为相对于 html 而不是 body 居中显示?

javascript - 相对定位和 z-index?

jquery - z-index 在某处被覆盖

html - 如何将 <table> 放在 <a> 标签内?

css - css选择器引擎的具体实现

html - CSS - 将大 div 放在较小的 div 内 + overflow hidden