无法导航到顶部..中间完成flex,导航将无法到达顶部

时间:2018-03-18 20:28:13

标签: html css css3 flexbox

我需要帮助,这是我的代码。我已经完成了登陆页面所需的操作,但无法使导航栏粘在顶部,它只是挂在屏幕中间的上方。

不知道如何处理flex,或者在这个例子中是flex问题,还是什么? 我已经尝试过相对位置,绝对位置,弹性开始结束位置,所有内容,看着这个我已经筋疲力尽了。找不到解决方案。

这是Snipt视图

* {
  margin: 0;
  padding: 0;
}

body {
  margin: 0;
  font-family: Arial;
  font-size: 17px;
  color: #99b525;
  line-height: 1.6;
}

#showcase {
  background-image: url('img/lap-top.jpeg');
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  opacity: 0.9;
  padding: 0 20px;
  text-shadow: -2px 3px 2px #666;
  text-align: center;
}

#showcase h1 {
  font-size: 50px;
  line-height: 1.2;
}

#showcase p {
  font-size: 20px;
}

#showcase .header .button {
  font-size: 18px;
  text-decoration: none;
  padding: 10px 20px;
  margin-top: 20px;
  border: 1px solid #777;
  border-radius: 15px;
  color: #a3bd3b;
  -webkit-transition: background-color 0.8s ease-out;
  -moz-transition: background-color 0.8s ease-out;
  -o-transition: background-color 0.8s ease-out;
  transition: background-color 0.8s ease-out;
}

#showcase .header .button:hover {
  background: #a3bd3b;
  color: #fff;
  text-shadow: none;
}

.header {
  border: 3px solid #7c9c28;
  border-radius: 50px 25px 50px 25px;
  padding: 25px;
  background: #232323ad;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}


/*---------------------------------------------------*/

nav {
  width: 100%;
  height: 60px;
  background-color: transparent;
}

nav ul {
  float: left;
}

nav ul li {
  float: left;
  list-style: none;
  padding: 0px 4em;
}

nav ul li a {
  font-family: Arial;
  color: #222;
  font-size: 20px;
  padding: 24px 14px;
  text-decoration: none;
}
<header id="showcase">
  <nav>
    <ul>
      <li><a href="index.html">Home</a></li>
      <li><a href="#">Portfolio</a></li>
      <li><a href="#">About Me</a></li>
      <li><a href="#">Contact</a></li>
    </ul>
  </nav>
  <div class="header">
    <h1>Welcome to the beach</h1>
    <p>Lorem ipsum dolar sit anet, amat der is tlen af serf nsajs jsiqo msnf kaiwks.</p>
    <a href="#" class="button">Read More</a>
  </div>
</header>

如何做到这一点?

2 个答案:

答案 0 :(得分:0)

尝试删除#showcase高度。 如果你想要粘性菜单试试

position:fixed;

答案 1 :(得分:-1)

你的理由 - 内容&#39;中心&#39;导致这个问题,因为它试图将所有东西都推到中间。

如果您坚持使用flexbox方法(并且取决于您希望网页其余部分的位置),您可以将其更改为flex-start(以便所有内容都移动到页面顶部)。

#showcase {
  background-image: url('img/lap-top.jpeg');
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center; /* change to flex-start */
  opacity: 0.9;
  padding: 0 20px;
  text-shadow: -2px 3px 2px #666;
  text-align: center;
}

但是,假设您想要您的内容并且#34;欢迎来到海滩&#34;在中间,我的个人解决方案是将其添加到您的导航样式:

nav {
     position:fixed;
     top:0;
}