【问题标题】:How should I fill with color the nav-bar? - css我应该如何为导航栏填充颜色? -CSS
【发布时间】:2020-06-07 17:23:38
【问题描述】:

我想制作一个网站菜单,我用 HTML 和 CSS 制作了以下代码。问题是在 home 与 Home 和 Contact 之间有一个空格。有什么想法可以解决这个问题吗?

li {
    text-decoration: none;
    display: inline;
}

a {
    text-decoration: none;
    color: white;
    padding: 3vh;
    font-family: 'Oswald', sans-serif;
    background-color: #595959;
}

#about, #gallery, #contact {
    float: right;
}

#home {
    float: left;
}

a:hover {
    background-color: #969696;
}
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>NavBar Tutorial</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="main.css">
  <link href="https://fonts.googleapis.com/css2?family=Oswald:wght@500&display=swap" rel="stylesheet">
</head>
<body>
    <header>
        <nav>
            <li><a href="#" id="home">Home</a></li>
            <li><a href="#" id="about">About</a></li>
            <li><a href="#" id="gallery">Gallery</a></li>
            <li><a href="#" id="contact">Contact</a></li>
        </nav>
    </header>
</body>
</html>

【问题讨论】:

  • 您是否尝试过将物品放入包装纸中?
  • 你想让它像这样向左对齐吗:imgur.com/a/e4ayr6b

标签: html css menu navigation


【解决方案1】:

解决方案非常简单。

在您的 CSS 中,您曾说过 about、gallery 和 contact 具有浮动权限。 当你说 home 元素必须浮动到左边时,这会将这 3 个元素带到右边。

所以它会向左对齐,从而在它们之间创建空白区域。如果您想删除空白并将所有这 4 个元素对齐在一起,如下所示:https://imgur.com/a/e4ayr6b 那么代码就很简单了:

#about,
#gallery,
#contact {
  float: left;
}

现在这个向左浮动会将其他 3 个元素与主页按钮对齐。

然后家里仍然会有float: left

如果您不希望这样,那么您的问题并不是说元素应该左对齐还是什么。你刚才说应该删除空白。所以上面的解决方案就可以了。

希望对你有帮助

【讨论】:

    【解决方案2】:

    我认为您实际上可能正在寻找类似的东西。我已将您的项目更改为类与 ID,因为这是更好的做法。

    我也不会在 a 元素上设置填充,因为您可能需要在其他地方使用它。下面是向您展示所需效果的起点,但您应该使用相同的代码重新开始,但修改您的 CSS 类,以便您的标题具有特定的类,而不是立即影响整个站点的该属性,因为它会在以后引起问题开。

    li {
        text-decoration: none;
        display: inline;
    }
    
    a {
        text-decoration: none;
        color: white;
        padding: 3vh;
        font-family: 'Oswald', sans-serif;
        background-color: #595959;
    }
    
    .right-item {
        float: right;
    }
    
    .left-item {
        float: left;
    }
    
    a:hover {
        background-color: #969696;
    }
    
    .nav-wrap {
        background-color: #595959;
        height: 60px;
    }
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <title>NavBar Tutorial</title>
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <link rel="stylesheet" href="main.css">
      <link href="https://fonts.googleapis.com/css2?family=Oswald:wght@500&display=swap" rel="stylesheet">
    </head>
    <body>
        <header>
            <nav>
            <div class="nav-wrap">
                <li><a href="#" class="left-item">Home</a></li>
                <li><a href="#" class="right-item">About</a></li>
                <li><a href="#" class="right-item">Gallery</a></li>
                <li><a href="#" class="right-item">Contact</a></li>
            </div>
            </nav>
        </header>
    </body>
    </html>

    【讨论】:

      【解决方案3】:

      li {
          text-decoration: none;
          display: inline;
      }
      
      a {
          text-decoration: none;
          color: white;
          padding: 3vh;
          font-family: 'Oswald', sans-serif;
          background-color: #595959;
      }
      
      
      a:hover {
          background-color: #969696;
      }
      <!DOCTYPE html>
      <html>
      <head>
        <meta charset="utf-8">
        <title>NavBar Tutorial</title>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="main.css">
        <link href="https://fonts.googleapis.com/css2?family=Oswald:wght@500&display=swap" rel="stylesheet">
      </head>
      <body>
          <header>
              <nav>
                  <li><a href="#" id="home">Home</a></li>
                  <li><a href="#" id="about">About</a></li>
                  <li><a href="#" id="gallery">Gallery</a></li>
                  <li><a href="#" id="contact">Contact</a></li>
              </nav>
          </header>
      </body>
      </html>

      您正在将浮动属性应用于您的菜单项,这是不需要的。

      【讨论】:

        【解决方案4】:

        li {
            text-decoration: none;
            display: inline;
        }
        
        a {
            text-decoration: none;
            color: white;
            padding: 3vh;
            font-family: 'Oswald', sans-serif;
            background-color: #595959;
        }
        a:hover {
        background-color: #969696;
        }
          nav{
        text-align:right;
        
        }
        <!DOCTYPE html>
        <html>
        <head>
          <meta charset="utf-8">
          <title>NavBar Tutorial</title>
          <meta name="viewport" content="width=device-width, initial-scale=1">
          <link rel="stylesheet" href="main.css">
          <link href="https://fonts.googleapis.com/css2?family=Oswald:wght@500&display=swap" rel="stylesheet">
        </head>
        <body>
            <header>
                <nav>
                    <li><a href="#" id="home">Home</a></li>
                    <li><a href="#" id="about">About</a></li>
                    <li><a href="#" id="gallery">Gallery</a></li>
                    <li><a href="#" id="contact">Contact</a></li>
                </nav>
            </header>
        </body>
        </html>

        虽然这对于现实世界的网站来说并不理想。我希望它会有所帮助

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-05-27
          • 1970-01-01
          • 1970-01-01
          • 2013-07-04
          • 2016-05-04
          • 2011-11-22
          相关资源
          最近更新 更多