如何使导航栏在较小的浏览器上显示在两行上?

时间:2018-10-04 03:25:56

标签: html css

我有一个使用以下HTML的带有导航栏的网站:

.nav-bar {
  background-color: white;
  display: flex;
  align-items: flex-start;
}

.nav-bar a {
  cursor: pointer;
  display: inline-block;
  background-color: white;
  color: black;
  text-decoration: none;
  font-size: 25px;
  padding: 16px 40px;
  border-radius: 3px;
  margin: 0px;
  transition: 0.3s;
  letter-spacing: 2px;
}

@media only screen and (max-width: 737px) {
  .nav-bar {
    max-width: 737px;
    height: 120px;
  }
}
<div class="nav-bar">
    <a href="#">HOME</a>
    <a href="#">ABOUT</a>
    <a href="#">BOOK</a>
    <a href="#">CONTACT</a>
  </div>

这很好,直到浏览器达到740px或更小,导航栏不再适合一行。我希望它折叠成两行,但会得到一个水平滚动条。我尝试使用媒体查询解决此问题:

但是,这只会在导航栏项下创建一个空白空间,而不会实际折叠它。

2 个答案:

答案 0 :(得分:0)

您需要在flex-wrap中使用.nav-bar属性。如果您的.nav-bar a元素会溢出,这将包装它们。另外,您不需要a元素即可显示为inline-block

.nav-bar {
    background-color: white;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
}

.nav-bar a {
    cursor: pointer;
    background-color: white;
    color: black;
    text-decoration: none;
    font-size: 25px;
    padding: 16px 40px;
    border-radius: 3px;
    margin: 0px;
    transition: 0.3s;
    letter-spacing: 2px;
}

答案 1 :(得分:0)

您应该删除“ display:flex;”。

.nav-bar {
    background-color: white;
    align-items: flex-start;
}

@media only screen and (max-width: 737px) {
    .nav-bar {
        max-width: 737px;
        height: 120px;
        overflow: hidden;
  }
}