【问题标题】:css z-index between nested elements?嵌套元素之间的css z-index?
【发布时间】:2014-10-04 20:39:58
【问题描述】:

我需要让一个嵌套元素部分显示在其父元素后面,但到目前为止它不起作用。

父元素定位为“相对”,z-index 为 100;嵌套元素的 z-index 为 50,定位为“绝对”,如下例所示:

    <ul class="parent-element">
        <li> some text </li>
        <li> some text </li>
        <li> some text 
                <ul class="nested-element">
                    <li> some text </li>
                    <li> some text </li>
                    <li> some text </li>
                </ul>
   </li>
 </ul>

    <style type="text/css">
    .parent-element {
      position: relative;
      z-index: 1000000000000000000000000;
    {

    .nested-element {
      position: absolute;
      top: 100%;
      left: 0;
      z-index: 1;
    {
</style>

看,无论我给他们什么 z-index,嵌套元素都保持在顶部。它向我建议您不能更改父子元素之间的堆栈顺序,但这将是一个非常好的解决方案,因为我需要嵌套列表部分滑到父列表下方。我该怎么办?

【问题讨论】:

    标签: z-index nested-lists


    【解决方案1】:

    我相信您是正确的,您不能更改父级与其子级之间的堆叠顺序。我过去曾使用clip 属性来模拟在其父级下滑动的子列表,方法是剪掉与父级重叠(位于“下方”)的子级部分。

    编辑这是我过去如何使用剪辑来实现效果的示例,但我不确定这是否是您正在寻找的:http://jsfiddle.net/q4170f3o/3/

    (抱歉,我最初的示例无缘无故地固定了高度。)

    基本上它所做的是将子项的右边缘设置为父项的右边缘并将其剪切为零宽度但在子项的右边缘。然后在悬停时,将左剪辑边界一直向左过渡,同时将子项的右边缘向右移动等于子项宽度的量。不幸的是,如果不为孩子设置宽度,我想不出这将如何工作,但是当我在导航场景中使用它时,我还没有发现这在实践中是一个问题。希望这会有所帮助!

    【讨论】:

    • 剪辑听起来很有用,但在这种情况下,嵌套列表比父列表宽,因此超出了它的右边缘,剪辑只能剪辑到 4 个角对吗?
    • 是的,您只能使用clip 属性剪辑一个矩形区域,因此如果您希望它在父项的两侧都可见,则无法使用。你在寻找什么效果?如果它只是让它从下面只能看到它的地方滑出,比如说在父母的右边,即使孩子更宽,剪辑也应该对你有用。我会举一个我用过的例子,并编辑我的答案来说明我的意思。
    • 我认为由于剪辑剪辑了一个矩形,因此剪辑的子元素的顶部将在其上方有一个间隙,它超出了父元素的宽度。
    • 对不起,我不明白你的问题。你能提供更多关于你想要达到的效果的信息吗?
    • 酷,好的,所以嵌套列表比父级更宽,所以如果我在它上面使用剪辑,它延伸到父级之外的部分将在它上面有一个间隙(这就是为什么我想要使用 z-index,以便能够在整个嵌套列表上使用负边距以使其与上面的元素齐平)。希望这很清楚,如果没有,请告诉我。
    猜你喜欢
    • 1970-01-01
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 2011-11-07
    • 1970-01-01
    相关资源
    最近更新 更多