0

My bootstrap navbar looks like the following: enter image description here

When I hover over to each of the menu options, it shows an animated underline looks like this: enter image description here

How can I increase the gap between text and its underline?

Mx.
  • 143
  • 11
  • You might look into [`text-underline-offset`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-underline-offset), though (as of writing) it's only compatible with very recent versions of major browsers. – aaplmath Jan 07 '21 at 01:32
  • Let me confirm what you actually trying to say . you just edited the question which changes your question to a different question –  Jan 07 '21 at 02:07

3 Answers3

0

Using border instead of underline would solve your problem. Try this code.

ul.ml-auto > li > a > span{
    font: 15px Roboto,sans-serif;
    font-weight: 500;
    position: relative;
    display: inline-block;
    color: #FFFFFF80;
    overflow: hidden;
      padding-bottom: 5px;
    }
    ul.ml-auto > li > a > span::before {
    position: absolute;
    content: attr(data-content);
    color: #00FFFF;
    clip-path: polygon(0 0, 0 0, 0% 100%, 0 100%);
    transition: clip-path 275ms ease;
      display: block;
      border-bottom: 1px solid #00FFFF;
      padding-bottom: 3px;
    }
Aryan Twanju
  • 2,464
  • 1
  • 9
  • 12
0

First you can't modify the spacing when use text-decorate: underline

And your code use <:before> Cause span is inline style then its spacing just fix with the content inside it.

My solution is make padding for your and <:before> then use border-bottom inside :before tag

ul.ml-auto > li > a > span{
   ///Adding bottom-padding here
   padding-bottom: 3px; // your spacing you want - 1 cause the border will take 1px of the height
}

ul.ml-auto > li > a > span::before {
   border-bottom: 1px solid red;
   padding-bottom:2px;
}

<!DOCTYPE html>
<html>
   <head>
       <title>Bootstrap Resize</title>
       <meta charset="utf-8"></meta>
       <meta name="viewport" content="width=device-width, initial-scale=1" ></meta>
       <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" />
       <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
   </head>

   <style type="text/css">
    .navbar-custom { 
    background-color: #484848;
    }

    ul.ml-auto > li > a > span{
    font: 15px Roboto,sans-serif;
    font-weight: 500;
    position: relative;
    display: inline-block;
    color: #FFFFFF80;
    overflow: hidden;
    padding-bottom:2px;
    }
    ul.ml-auto > li > a > span::before {
    position: absolute;
    content: attr(data-content);
    color: #00FFFF;
    border-bottom: 1px solid red;
    padding-bottom:2px;
    clip-path: polygon(0 0, 0 0, 0% 100%, 0 100%);
    transition: clip-path 275ms ease;
    }
    ul.ml-auto > li > a > span:hover::before {
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
    }
   </style>

   <body>                 
    <nav class="navbar navbar-custom navbar-expand-lg navbar-dark fixed-top" id="mainNav">
      <div class="container">
        <a  style="font: 20px Arial,sans-serif" class="navbar-brand js-scroll-trigger" href="#">HOME</a>
        <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
          <span class="navbar-toggler-icon"></span>
        </button>

        <div class="collapse navbar-collapse" id="navbarResponsive">
          <ul style="font: 15px Roboto,sans-serif" class="navbar-nav ml-auto">
            <li class="nav-item">
              <a class="nav-link js-scroll-trigger" href="#about"><span data-content="LOREM">LOREM</span></a>
            </li>
            <li class="nav-item">
              <a class="nav-link js-scroll-trigger" href="#expertise"><span data-content="LOREM">LOREM</span></a>
            </li>
            <li class="nav-item">
              <a class="nav-link js-scroll-trigger" href="#portfolio"><span data-content="LOREM">LOREM</span></a>
            </li>
            <li class="nav-item">
              <a class="nav-link js-scroll-trigger" href="#contact"><span data-content="LOREM">LOREM</span></a>
            </li>
          </ul>
        </div>

      </div>
    </nav>
   </body>
</html>
Nghi Nguyen
  • 910
  • 6
  • 10
0

Here is a sample Html for padding-top and bottom of list in Menu

 <nav class="navbar navbar-expand-lg navbar-dark bg-dark"> 
 <a class="navbar-brand" href="#">Navbar</a>
 <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarTogglerDemo01" aria-controls="navbarTogglerDemo01" aria-expanded="false" aria-label="Toggle navigation">
 <span class="navbar-toggler-icon"></span>
 </button>
 <div class="collapse navbar-collapse" id="navbarTogglerDemo01">
 <ul class="ml-auto navbar-nav">
 <li class="nav-item">
 <a class="nav-link" href="">Contact</a>
 </li> 
 <li class="nav-item">
 <a class="nav-link" href="">About me</a>
 </li> 
 <li class="nav-item">
 <a class="nav-link" href="">Features</a>
 </li> 
  </ul> 
   </div>
  </nav>

here is the code for underline


li{
    text-decoration: underline;
    text-underline-position: under;
}