Увеличьте процент больше, чем 50%
, чтобы ширина была равна 0, и вы избежите этой ошибки
.hover-underline-menu {
width: 100%;
}
.hover-underline-menu ul {
padding: 1rem 0;
}
.hover-underline-menu .menu {
background-color: #2C3840;
}
.hover-underline-menu .menu a {
color: #fff;
padding: 1rem 2rem;
}
.hover-underline-menu .menu a {
position: relative;
}
.hover-underline-menu .menu a::after {
content: "";
position: absolute;
top: calc(100% - 0.125rem);
border-bottom: 0.125rem solid white;
left: 51%;
right: 51%;
transition: all 0.5s ease;
}
.hover-underline-menu .menu a:hover::after {
left: 0;
right: 0;
transition: all 0.5s ease;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/foundation/6.5.0/css/foundation.min.css" rel="stylesheet"/>
<nav class="hover-underline-menu">
<ul class="menu align-center">
<li><a href="#">One</a></li>
<li><a href="#">Two</a></li>
<li><a href="#">Three</a></li>
<li><a href="#">Four</a></li>
</ul>
</nav>
Вы также можете упростить свой код, как показано ниже, без использования псевдоэлемента:
.hover-underline-menu {
width: 100%;
}
.hover-underline-menu ul {
padding: 1rem 0;
}
.hover-underline-menu .menu {
background-color: #2C3840;
}
.hover-underline-menu .menu a {
color: #fff;
padding: 1rem 2rem;
background:
linear-gradient(white,white) bottom no-repeat;
background-size:0% 0.125rem;
transition: all 0.5s ease;
}
.hover-underline-menu .menu a:hover {
background-size:100% 0.125rem;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/foundation/6.5.0/css/foundation.min.css" rel="stylesheet"/>
<nav class="hover-underline-menu">
<ul class="menu align-center">
<li><a href="#">One</a></li>
<li><a href="#">Two</a></li>
<li><a href="#">Three</a></li>
<li><a href="#">Four</a></li>
</ul>
</nav>