【问题标题】:Bootstrap Navbar paddingBootstrap 导航栏填充
【发布时间】:2021-04-12 20:02:16
【问题描述】:

我的引导导航栏如下所示: 当我将鼠标悬停在每个 LOREM 上时,它看起来像这样: 如何修改我的代码,使 LOREM 在导航栏的顶部和底部具有相等的间距,如下所示:

请注意,下划线必须保持原样。我只需要 LOREM 在没有悬停时具有相等的间距。这是我的 HTML 和 CSS 代码:

<!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: 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: 2px solid #00FFFF;
    padding-bottom: 4px;
    }
    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 py-2" 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>

【问题讨论】:

    标签: html css bootstrap-4 frontend


    【解决方案1】:

    您只需要删除overflowpadding-bottom 就可以了

    ul.ml-auto > li > a > span {
        font: 15px Roboto,sans-serif;
        font-weight: 500;
        position: relative;
        display: inline-block;
        color: #FFFFFF80;
    }
    

    现场演示:

    .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;
    }
    
    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: 2px solid #00FFFF;
      padding-bottom: 4px;
    }
    
    ul.ml-auto>li>a>span:hover::before {
      clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
    }
    <!DOCTYPE html>
    <html>
    
    <head>
      <title>Bootstrap Resize</title>
      <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" />
    </head>
    
    <body>
      <nav class="navbar navbar-custom navbar-expand-lg navbar-dark fixed-top py-2" 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>

    【讨论】:

      【解决方案2】:

      调整a标签的内边距

      .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: 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: 2px solid #00FFFF;
        padding-bottom: 4px;
      }
      ul.ml-auto > li > a > span:hover::before {
        clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
      }
      .nav-link {
        padding: .5rem 1rem 0;
      }
      <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>
      
      <nav class="navbar navbar-custom navbar-expand-lg navbar-dark fixed-top py-2" 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>

      【讨论】:

        【解决方案3】:

        原因是 span 标签的底部填充。您只应用了底部填充。

        解决方案- 在顶部和底部应用相等的填充。正如我在下面申请的那样。

         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;
         padding-top: 5px;/*New added for equal space*/
        }
        

        【讨论】:

          猜你喜欢
          • 2017-11-18
          • 2018-02-07
          • 2018-08-14
          • 1970-01-01
          • 1970-01-01
          • 2018-08-17
          • 2022-09-22
          • 1970-01-01
          • 2019-03-25
          相关资源
          最近更新 更多