gpt4 book ai didi

css - 底部边框 CSS 过渡不跨越

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

再玩一些伪元素,我想模拟悬停在左侧的列表项元素的底部边框。不幸的是,我可以设法让该行增加文本的长度,而不是整个列表项的边框长度。

我在列表项上加了边框所以你知道我的意思

HTML:

<div id="orangeNavBar">
<ul>
<li>Home</li>
<li>Products</li>
<li>Company</li>
<li>Contact</li>
</ul>
</div>

CSS:

body
{
margin: 0;
}

*
{
margin: 0;
padding: 0;
}

#orangeNavBar
{
height: 45px;
width: 627px;
background-color: #E87966;
margin-left: auto;
margin-right: auto;
margin-top: 15px;
}

ul
{
list-style:none;
}

ul li
{
float: left;
display: inline-block;
font-family: verdana;
font-size: .9em;
font-weight: bold;
color: white;
height: 45px;
box-sizing: border-box;
padding: 13.5px 20px;
transition: color .3s;
border: 1px solid black;

}

ul li::after
{
display: block;
content: "";
background: black;
height: 2px;
width: 0px;
transition: width 0.2s ease;
}

ul li:hover::after
{
width: 100%;
}

ul li:hover
{
color: black;
}

Link to Codepen

最佳答案

如果添加以下 CSS,它应该会按预期工作:

ul li {
position: relative;
}

ul li:after {
position: absolute;
bottom: 0;
left: 0;
}

position: relative需要确保伪元素受 <li> 的宽度和高度约束。而不是整个 <body> .

position: absolute;对于伪元素,您可以将元素锚定到 bottom: 0; left: 0; 的左下角 ( <li> )元素。

关于css - 底部边框 CSS 过渡不跨越,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38381668/

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