2017-07-06 119 views
0

我想在悬停在我的列表元素(或者我的锚点标签在这些列表元素中)时创建一个过渡效果。伪元素::隐藏同胞元素的内容之前

不幸的是,当我使用我创建的transition :: :: before伪元素(或者:: after,我不确定)隐藏技术上它的同级内容是什么,那是锚标签中的文本。

我试着在ul,li和一个标签上操作z-index无济于事。这个问题可能出现在我对位置的使用中:绝对在我的转换中,但我无法知道我做错了什么。

这里的HTML和CSS和JSFiddle link

html, body { 
 
    height: 100%; 
 
    margin: 0; 
 
    padding: 0; 
 
    font-family: 'Open Sans', sans-serif; 
 
} 
 

 
#headercontainer { 
 
    background-color: #4f2f65; 
 
    height: 125px; 
 
    position: relative; 
 
} 
 

 
#headercontainer ul { 
 
    height: 100%; 
 
    display: table; 
 
    text-align: center; 
 
    list-style: none; 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 

 
#sitelogo { 
 
    padding-top: 0px; 
 
} 
 

 
#headercontainer ul li { 
 
    display: table-cell; 
 
    vertical-align: middle; 
 
    position: relative; 
 
} 
 

 
#headercontainer ul li a { 
 
    color: #fff; 
 
    font-size: 20px; 
 
    text-decoration: none; 
 
} 
 

 
a::before { 
 
    content: ''; 
 
    display: block; 
 
    height: 0px; 
 
    background-color: #fff; 
 
    position: absolute; 
 
    bottom: 0; 
 
    width: 100%; 
 
    transition: all ease-in-out 200ms; 
 
} 
 

 
a:hover::before { 
 
    height: 125px; 
 
} 
 

 
header::after { 
 
    content: ''; 
 
    display: table; 
 
    clear: both; 
 
} 
 

 
#headerlinkslist a:hover { 
 
    color: red; 
 
} 
 

 
.headerlinks { 
 
    padding-left: 80px; 
 
    padding-right: 80px; 
 
}
<body> 
 
    <header> 
 
     <div id="headercontainer"> 
 
      <ul id="headerlinkslist"> 
 
       <li id="sitelogo"></li> 
 
       <li><a href="" class="headerlinks">RULES</a></li> 
 
       <li><a href="" class="headerlinks">NEWS</a></li> 
 
       <li><a href="" class="headerlinks">STATS</a></li> 
 
       <li><a href="" class="headerlinks">SUBMIT</a></li> 
 
       <li><a href="" class="headerlinks">LOGIN/REGISTER</a></li> 
 
     </div> 
 
    </header> 
 
</body>

+1

什么是您所希望达到的过渡? – Ryan

+0

@Ryan OP的转换是在链接悬停时隐藏链接文本。 – disinfor

+0

该问题的可重复片段应该出现在问题本身*中。请修改您的问题以包含复制问题所需的所有代码,最好是作为可运行的SO-snippet。 *(不是像JSFiddle这样的外部资源)* – Santi

回答

3

得到母体li一个z-index,然后使用z-index: -1伪元素来推动它的a落后,但在顶部li

您还需要关闭ul

html, 
 
body { 
 
    height: 100%; 
 
    margin: 0; 
 
    padding: 0; 
 
    font-family: 'Open Sans', sans-serif; 
 
} 
 

 
#headercontainer { 
 
    background-color: #4f2f65; 
 
    height: 125px; 
 
    position: relative; 
 
} 
 

 
#headercontainer ul { 
 
    height: 100%; 
 
    display: table; 
 
    text-align: center; 
 
    list-style: none; 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 

 
#sitelogo { 
 
    padding-top: 0px; 
 
} 
 

 
#headercontainer ul li { 
 
    display: table-cell; 
 
    vertical-align: middle; 
 
    position: relative; 
 
    z-index: 1; 
 
} 
 

 
#headercontainer ul li a { 
 
    color: #fff; 
 
    font-size: 20px; 
 
    text-decoration: none; 
 
    transition: color .25s; 
 
} 
 

 
a::before { 
 
    content: ''; 
 
    display: block; 
 
    height: 0px; 
 
    background-color: #fff; 
 
    position: absolute; 
 
    bottom: 0; 
 
    width: 100%; 
 
    transition: all ease-in-out 200ms; 
 
    z-index: -1; 
 
} 
 

 
a:hover::before { 
 
    height: 125px; 
 
} 
 

 
header::after { 
 
    content: ''; 
 
    display: table; 
 
    clear: both; 
 
} 
 

 
#headerlinkslist a:hover { 
 
    color: red; 
 
} 
 

 
.headerlinks { 
 
    padding-left: 80px; 
 
    padding-right: 80px; 
 
}
<body> 
 
    <header> 
 
    <div id="headercontainer"> 
 

 
     <ul id="headerlinkslist"> 
 
     <li id="sitelogo"></li> 
 
     <li><a href="" class="headerlinks">RULES</a></li> 
 
     <li><a href="" class="headerlinks">NEWS</a></li> 
 
     <li><a href="" class="headerlinks">STATS</a></li> 
 
     <li><a href="" class="headerlinks">SUBMIT</a></li> 
 
     <li><a href="" class="headerlinks">LOGIN/REGISTER</a></li> 
 

 
     </ul> 
 
    </div> 
 

 
    </header> 
 
</body>

+1

不错的优雅的解决方案。干得好,伙计。我也会添加一个转换到锚标签的颜色参数,(只是个人观点,尽管)。 – Ryan

+1

@Ryan谢谢,同意,补充:) –

+0

@MichaelCoker非常感谢你,我非常感谢这样一个清晰和简洁的答案。 :) 虽然问题:为什么我必须给我的锂元素的Z-索引0?如果这不是默认的0? 我会将锚标记的颜色参数更改为与背景相同的紫色,忘记提及这一点。 – TTBDV