我想在网页的标头放在左侧,徽标在左侧,水平导航栏在右侧。

问题是,每当我缩小浏览器窗口时,导航栏就会移至标题容器的边框下方,从而违反了页面的结构。

像这样:


有什么解决办法吗?我只能想到使父容器的Header适应子容器的高度,但是我不知道如何实现。还是应该以某种方式使用媒体查询?

我写了下面的代码。



header {
  height: 100px;
  background-color: gray;
  background-image: url('img/background.gif');
}
#logo {
  float: left;
}
nav {
  float: right;
}
ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
}
li {
  float: left;
}
li a {
  display: block;
  color: white;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}
li a:hover {
  background-color: #111;
}

<header>
  <img id="logo" src="images/logo.png">
  <nav>
    <ul>
      <li><a href="#home">Home</a>
      </li>
      <li><a href="#about">About</a>
      </li>
      <li><a href="#services">Services</a>
      </li>
      <li><a href="#gallery">Gallery</a>
      </li>
      <li><a href="#blog">Blog</a>
      </li>
      <li><a href="#contacts">Contacts</a>
      </li>
    </ul>
  </nav>
</header>

最佳答案

您可以使用flex模型或min-height +溢出来处理浮动元素。您也可以同时使用两者,在受支持的情况下,float属性将被flex覆盖。 ,

header {
  min-height: 100px;
  background-color: gray;
  background-image: url('img/background.gif');
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  align-items:center;
  overflow:hidden; /* for float if flex not supported */
}
#logo {
  float: left;
  /* to deal with flex */
  flex-shrink:0;
  margin:auto;/* or 0 or auto auto auto 0 or ... */
}
nav {
  float: right;
}
ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
}
li {
  float: left;
}
li a {
  display: block;
  color: white;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}
li a:hover {
  background-color: #111;
}

<header>
  <img id="logo" src="http://dummyimage.com/140x45&text=logo.png">
  <nav>
    <ul>
      <li><a href="#home">Home</a>
      </li>
      <li><a href="#about">About</a>
      </li>
      <li><a href="#services">Services</a>
      </li>
      <li><a href="#gallery">Gallery</a>
      </li>
      <li><a href="#blog">Blog</a>
      </li>
      <li><a href="#contacts">Contacts</a>
      </li>
    </ul>
  </nav>
</header>

关于html - 如何制作 header 在左侧,徽标在右侧的标题?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42040694/

10-10 00:01