CSS使li元素出现在ul之外

CSS使li元素出现在ul之外,css,positioning,z-index,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&g

考虑到这一准则:

<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>

  • 我很活跃
My.menu div有一个1px的黑色边框,My.active list元素有一个白色背景。现在,我希望我的.active列表元素位于div的“外部”,并与边框重叠,用白色背景部分隐藏它。这是如何实现的

来说明我想要什么

这就是我目前所拥有的,编码好的;

这就是它应该看起来的样子;

这是你要找的z指数吗

div.menu li.active { z-index: 99; ... } 

然后,你可以使用负边距将其定位在“外部”,或者更好地嵌套另一个你可以相对定位的元素。

这是你正在寻找的z指数吗

div.menu li.active { z-index: 99; ... } 

然后,您可以使用负边距将其定位在“外部”,或者更好地嵌套另一个可以相对定位的元素。

使用相对定位

.menu li {
    position: relative;
    top: 1px;
}
要确保这一点,需要注意以下几点:

  • 事实上,这是对所有的李元素是故意的。如果我只把它放在选中的一个上,那么选中的一个将显示为下移
  • 只有当蓝色背景是
    ul
    标签的一部分并且
    li
    标签具有透明背景(当然图像除外)时,这才有效。否则,您可能会覆盖
    ul
    元素的所有边界

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

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

    ...
ul标签本身完全可以拥有一个类。除非你有很好的理由不这样做,否则就这样做:

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

使用相对定位

.menu li {
    position: relative;
    top: 1px;
}
要确保这一点,需要注意以下几点:

  • 事实上,这是对所有的李元素是故意的。如果我只把它放在选中的一个上,那么选中的一个将显示为下移
  • 只有当蓝色背景是
    ul
    标签的一部分并且
    li
    标签具有透明背景(当然图像除外)时,这才有效。否则,您可能会覆盖
    ul
    元素的所有边界

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

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

    ...
ul标签本身完全可以拥有一个类。除非你有很好的理由不这样做,否则就这样做:

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

给你一些CSS黑魔法

下面的工作示例可以跨浏览器工作。请询问您是否希望了解其工作原理


享受。

一些CSS黑魔法

下面的工作示例可以跨浏览器工作。请询问您是否希望了解其工作原理


享受。

活动li是否始终是列表中的第一项?否。如果你看我添加的屏幕截图,它只是一个菜单列表,因此取决于页面。活动li是否始终是列表中的第一项?否。如果你看我添加的屏幕截图,它只是一个菜单列表,因此取决于页面。谢谢,我会试试看。关于UL周围的div,这是因为我截图中的蓝色背景实际上是一个条,它正好穿过屏幕,而列表本身位于一个960px宽的中间包装器中;)@Jean Piere,这就是你需要的理由:P.@Stargazer712 Ahhh cr*P。除了在.menu div中将li向下推一点之外,它什么也不做。它不会像我所希望的那样显示在它的“顶部”。它会做你想做的事情。将top参数更改为100px以查看。如果问题是它没有显示在顶部,请执行以下操作:
。菜单ul{position:relative;z-index:1}。菜单li{position:relative;top:1px;z-index:2}
。其他需要尝试的事情:确保
li
实际上占据了整个容器的大小。应用边框以确保这是正确的。这就是你需要做的,它会起作用的。谢谢,我会试试的。关于UL周围的div,这是因为我截图中的蓝色背景实际上是一个条,它正好穿过屏幕,而列表本身位于一个960px宽的中间包装器中;)@Jean Piere,这就是你需要的理由:P.@Stargazer712 Ahhh cr*P。除了在.menu div中将li向下推一点之外,它什么也不做。它不会像我所希望的那样显示在它的“顶部”。它会做你想做的事情。将top参数更改为100px以查看。如果问题是它没有显示在顶部,请执行以下操作:
。菜单ul{position:relative;z-index:1}。菜单li{position:relative;top:1px;z-index:2}
。其他需要尝试的事情:确保
li
实际上占据了整个容器的大小。应用边框以确保这是正确的。这就是你需要做的,它会起作用的。