Można użyć element pseudo umieszczony nad border-bottom
:
h1 {
font-size: 30px;
color: #000;
border-bottom: 1px solid #ccc;
padding-bottom: 5px;
}
h1::after {
content: "";
display: block;
border-bottom: 1px solid orange;
width: 25%;
position: relative;
bottom: -6px; /* your padding + border-width */
}
<h1>Navigation</h1>
Korzystanie element pseudo jak to sprawia, że bardzo łatwo dodać animację . Może animowanie granicy po najechaniu na części strony:
h1 {
font-size: 30px;
color: #000;
border-bottom: 2px solid #ccc;
padding-bottom: 5px;
}
h1::after {
content: "";
display: block;
border-bottom: 2px solid orange;
width: 0;
position: relative;
bottom: -7px; /* your padding + border-width */
transition: width .6s ease;
}
.section:hover h1::after {
width: 25%;
}
<div class="section">
<h1>Navigation</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas aliquet accumsan odio, sit amet molestie tortor ultricies vel. Donec nibh purus, fermentum eget dolor ac, tincidunt scelerisque urna. Ut gravida id eros sed placerat. Etiam vel mi erat. Etiam rhoncus massa ultricies quam malesuada pretium. Fusce elementum diam in turpis rutrum auctor. Vestibulum venenatis bibendum euismod. Praesent ex justo, blandit non urna et, porta interdum enim.
</p>
</div>