【问题标题】:Why aren't all the items in my ul displayed?为什么我的 ul 中的所有项目都没有显示?
【发布时间】:2020-11-18 08:53:21
【问题描述】:

我正在尝试创建一个响应式导航栏,但并非我的 ul 中的所有项目都显示,

问题:

    console.log('works')
    
    document.querySelector('.container__hamburger').addEventListener('click', ()=>{
        document.querySelector('.container__navbar').classList.toggle('showMenu')
    })
    @import url("https://fonts.googleapis.com/css2?family=Roboto&display=swap");
    
    *{
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }
    
    .container {
      display: flex;
      background-color: #2b2f33;
      width: 100%;
      height: 65px;
    }
    
    .container__navbar {
      display: flex;
      font-family: "Roboto", sans-serif;
      width: 100%;
    }
    
    .container__logo {
      display: inline;
      width: 25%;
      margin-right: 30px;
      margin-left: 10px;
    }
    
    .navbar__list {
      display: flex;
      width: 100%;
      list-style: none;
      align-items: center;
      color: #ffffff;
    }
    
    .list__item{
      margin-right: 30px;
    }
    
    
    .container__hamburger {
      display: none;
      color: #ffffff;
      align-self: center;
    }
    
    @media (max-width: 890px) {
    
      .container {
        position: fixed;
      }
    
      .container__navbar {
        position: fixed;
        height: 100%;
        left: 0;
        top: 65px;
        transition: 0.5s;
        background-color: #2b2f33;
        transform: translateX(-100%);
        width: 250px;
      }
    
      .showMenu {
        transform: translateX(0);
      }
    
      .navbar__list {
        display: block;
        overflow-x: hidden;
        overflow-y: scroll;
      }
    
      .container__hamburger {
        display: block;
        margin-left: auto;
        margin-right: 30px;
      }
    
      .list__item {
        width: 100%;
        padding: 10px;
      }
    
    }
    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
        <link rel="stylesheet" href="styles.css" />
      </head>
      <body>
        <div class="container">
          <img
            class="container__logo"
            src="assets/images/gamezonia.png"
            alt="logo"
          />
          <nav class="container__navbar">
            <ul class="navbar__list">
              <li class="list__item">Home</li>
              <li class="list__item">Category 1</li>
              <li class="list__item">Category 2</li>
              <li class="list__item">Category 3</li>
              <li class="list__item">Contact</li>
              <li class="list__item">Item</li>
              <li class="list__item">Item2</li>
              <li class="list__item">Item3</li>
              <li class="list__item">Item4</li>
              <li class="list__item">Item5</li>
              <li class="list__item">Item6</li>
            </ul>
          </nav>
    
          <div class="container__hamburger">
            <i class="fas fa-bars"></i>
          </div>
        </div>
    
        <!-- FONT AWESOME -->
        <script
          src="https://kit.fontawesome.com/96fadf0e69.js"
          crossorigin="anonymous"
        ></script>
        <!-- FONT AWESOME -->
    
        <script src="./index.js"></script>
      </body>
    </html>

【问题讨论】:

  • @EugenSunic 我们不鼓励链接到第三方网站。可执行代码可以嵌入问题中。
  • 我看到了所有的项目。无法复制。
  • @EugenSunic 什么是“那些东西”,iframe 在哪里?如您所见,我已将问题更新为具有可执行代码,并且运行良好。
  • @ScottMarcus 是的,如果栏在右侧,您可以看到所有项目,但如果在下方,您只能看到 4,这取决于高度(栏我指的是开发人员工具)
  • @ScottMarcus,我也可以在 Chrome 和 FF 中看到这个问题。我得到了滚动条,但无法滚动超过第 4 项。在 sn-p 中显示而没有扩展到全屏。

标签: javascript html css


【解决方案1】:

您已将 .container__navbar 向下移动了 65 个像素。您需要使用 height:calc(100% - 65px); 将其从 100% 高度移除

console.log('works')
    
    document.querySelector('.container__hamburger').addEventListener('click', ()=>{
        document.querySelector('.container__navbar').classList.toggle('showMenu')
    })
@import url("https://fonts.googleapis.com/css2?family=Roboto&display=swap");
    
    *{
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }
    
    .container {
      display: flex;
      background-color: #2b2f33;
      width: 100%;
      height: 65px;
    }
    
    .container__navbar {
      display: flex;
      font-family: "Roboto", sans-serif;
      width: 100%;
    }
    
    .container__logo {
      display: inline;
      width: 25%;
      margin-right: 30px;
      margin-left: 10px;
    }
    
    .navbar__list {
      display: flex;
      width: 100%;
      list-style: none;
      align-items: center;
      color: #ffffff;
    }
    
    .list__item{
      margin-right: 30px;
    }
    
    
    .container__hamburger {
      display: none;
      color: #ffffff;
      align-self: center;
    }
    
    @media (max-width: 890px) {
    
      .container {
        position: fixed;
      }
    
      .container__navbar {
        position: fixed;
        height: calc(100% - 65px);
        left: 0;
        top: 65px;
        transition: 0.5s;
        background-color: #2b2f33;
        transform: translateX(-100%);
        width: 250px;
      }
    
      .showMenu {
        transform: translateX(0);
      }
    
      .navbar__list {
        display: block;
        overflow-x: hidden;
        overflow-y: scroll;
      }
    
      .container__hamburger {
        display: block;
        margin-left: auto;
        margin-right: 30px;
      }
    
      .list__item {
        width: 100%;
        padding: 10px;
      }
    
    }
<!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
        <link rel="stylesheet" href="styles.css" />
      </head>
      <body>
        <div class="container">
          <img
            class="container__logo"
            src="assets/images/gamezonia.png"
            alt="logo"
          />
          <nav class="container__navbar">
            <ul class="navbar__list">
              <li class="list__item">Home</li>
              <li class="list__item">Category 1</li>
              <li class="list__item">Category 2</li>
              <li class="list__item">Category 3</li>
              <li class="list__item">Contact</li>
              <li class="list__item">Item</li>
              <li class="list__item">Item2</li>
              <li class="list__item">Item3</li>
              <li class="list__item">Item4</li>
              <li class="list__item">Item5</li>
              <li class="list__item">Item6</li>
            </ul>
          </nav>
    
          <div class="container__hamburger">
            <i class="fas fa-bars"></i>
          </div>
        </div>
    
        <!-- FONT AWESOME -->
        <script
          src="https://kit.fontawesome.com/96fadf0e69.js"
          crossorigin="anonymous"
        ></script>
        <!-- FONT AWESOME -->
    
        <script src="./index.js"></script>
      </body>
    </html>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-22
    • 1970-01-01
    • 1970-01-01
    • 2016-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多