gpt4 book ai didi

css - 李 :hover>a affecting other list items

转载 作者:太空宇宙 更新时间:2023-11-04 02:09:05 25 4
gpt4 key购买 nike

我想做的是获得悬停效果,使 anchor 链接稍微向下,但不知何故它会影响所有链接。有人可以指出我在这里做错了什么吗?

nav {
width: 100%;
height: 5rem;
background: red;
}

ul {
margin: 0 auto;
font-size: 0;
}
ul li {
display: inline-block;
line-height: 4.8rem;
position: relative;
}
ul li > a {
text-decoration: none;
color: #FFF;
font-family: "Verdana";
padding: .1rem 1.5rem;
font-size: 1.3rem;
display: block;
overflow: hidden;
position: relative;
transition: 300ms all;
height: 100%;
margin: 0;
}
ul li > a::before, ul li > a::after {
content: '';
width: 100%;
position: absolute;
left: 0;
transition: 200ms all;
}
ul li > a::before {
background: #FFF;
height: .5rem;
top: 0;
transform: translateY(-100%);
}
ul li > a::after {
background: #000;
height: .4rem;
bottom: 0;
transform: translateY(100%);
}
ul li::before {
content: '';
width: 100%;
height: 100%;
top: 0;
left: 0;
background: #CCC;
position: absolute;
opacity: 0;
}
ul li:hover > a {
padding-top: 0.6rem;
padding-bottom: 0.1rem;
}
ul li:hover > a::before, ul li:hover > a::after {
transform: translateY(0);
}
ul li:hover::before {
opacity: 0.3;
}
 <nav>
<ul>
<li><a href="">Link1</a></li>
<li><a href="">Link2</a></li>
<li><a href="">Link3</a></li>
<li><a href="">Link4</a></li>
<li><a href="test.html">Link5</a></li>
</ul>
</nav>

为什么 li:hover > a 会影响所有列表项?

最佳答案

问题不在于您的:hover 选择器,而是li 上的display-blockinline-block 元素在基线上对齐,这意味着当您向其中一个添加 padding-top 时,所有其他元素也会向下移动。要修复它,请将元素 float 到左侧以将它们保持在一行并与顶部对齐:

演示:https://jsfiddle.net/403zexop/

nav {
width:100%;
height:5rem;
background:red;
}

ul {
margin:0 auto;
font-size:0;
overflow: hidden;
li {
display:block;
line-height:4.8rem;
position:relative;
float: left;

>a{
text-decoration:none;
color:#FFF;
font-family:"Verdana";
padding:.1rem 1.5rem;
font-size:1.3rem;
display:block;
overflow:hidden;
position:relative;
transition:300ms all;
height:100%;
margin:0;

&::before,&::after{
content:'';
width:100%;
position:absolute;
left:0;
transition:200ms all;
}

&::before{
background:#FFF;
height:.5rem;
top:0;
transform:translateY(-100%);
}
&::after{
background:#000;
height:.4rem;
bottom:0;
transform:translateY(100%);
}
}

&::before{
content:'';
width:100%;
height:100%;
top:0;
left:0;
background:#CCC;
position:absolute;
opacity:0;
}

&:hover{
>a{
padding-top:0.6rem;
padding-bottom:0.1rem;

&::before,&::after{
transform:translateY(0);
}
}

&::before{
opacity:0.3;
}
}
}

}

注意:我通过将 overflow: hidden; 添加到 ul

来清除 float

关于css - 李 :hover>a affecting other list items,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40125956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com