<a>元素:hover效果失效排查:嵌套<li>中无法触发translateY
问题:嵌套在内的元素hover时translateY位移不生效,父元素 则正常
我尝试为嵌套在
代码片段
CSS代码:
a { cursor: pointer; text-decoration: none; font-family: 'Ubuntu', sans-serif; font-size: 1.2rem; font-weight: bold; color: white; transition: all 0.3s ease-in; } a:hover { color: aquamarine; transform: translateY(-10px) }
HTML代码:
<nav id="navbar"> <a id="nav-brand" href="">MrinB</a> <div id="div-items"> <ul id="ul-items"> <li class="li-items"><a id="a" href=""> Home</a></li> <li class="li-items"><a id="a" href="">Contact</a></li> <li class="li-items"><a id="a" href="">About Me</a></li> </ul> </div> </nav>
问题原因
解决方案
给标签设置display: inline-block或display: block,让它成为支持transform的元素类型:
修改后的CSS:
a { cursor: pointer; text-decoration: none; font-family: 'Ubuntu', sans-serif; font-size: 1.2rem; font-weight: bold; color: white; transition: all 0.3s ease-in; /* 添加这行,将a转为行内块元素 */ display: inline-block; } a:hover { color: aquamarine; transform: translateY(-10px); }
额外优化建议
HTML中多个标签使用了相同的id="a",这违反了HTML规范(id属性必须全局唯一),容易导致后续样式选择器、JavaScript元素选择出现异常。建议改为class属性,比如class="nav-link":
修改后的HTML片段:
<li class="li-items"><a class="nav-link" href=""> Home</a></li> <li class="li-items"><a class="nav-link" href="">Contact</a></li> <li class="li-items"><a class="nav-link" href="">About Me</a></li>
内容的提问来源于stack exchange,提问作者Mrin B
相关产品推荐
相关产品推荐

