【问题标题】:How can I align button vertically in nav bar? [duplicate]如何在导航栏中垂直对齐按钮? [复制]
【发布时间】:2019-07-17 17:06:10
【问题描述】:

我正在练习创建一个网站,目前正在尝试复制this site。目前我正在处理导航栏,但无法在导航中垂直对齐按钮。

.header {
  background-color: red;
  padding: 40px 20px;
}

.header h1 {
  background-color: yellow;
  float: left;
}

.header h1 img {
  display: block;
}

.header__nav {
  background-color: aqua;
  float: right;
}

.header__nav li {
  float: left;
  height: 38px;
}

.header__nav li a {
  padding: 0 20px;
  display: inline-block;
  line-height: 38px;
}

.contents {
  background-color: green;
}

.footer {
  background-color: blue;
}
<header class="header clearfix">
  <h1>
    <a href="#"><img src="https://pixelicons.com/wp-content/themes/pexelicons/assets/pic/site-logo/logo.png" alt="Logo"></a>
  </h1>
  <nav class="header__nav">
    <ul class="clearfix">
      <li><a href="#">View icons</a></li>
      <li><a href="#">Buy now</a></li>
      <li><button class="menu">menu</button></li>
    </ul>
  </nav>
</header>
<section class="contents">
  contents
</section>
<footer class="footer">
  footer
</footer>

My working image

我想垂直对齐导航栏的右上角按钮。我知道这可以使用display: flex; 解决,但我想以另一种方式解决。有没有合适的方法来解决这个问题?

【问题讨论】:

    标签: html css vertical-alignment


    【解决方案1】:

    即使您使用display: flex 的解决方案对我来说似乎非常好,您也可以在所有项目(两个链接和按钮)上使用vertical-align: middle;display: inline-block 修复它

    【讨论】:

    • 您能解释一下为什么您的解决方案有效吗?
    • @HaramBae yes: display: inline-block 用于将所有元素定位在水平线上,同时保持块状行为(设置宽度/高度、边距等)和“垂直-align" 用于以某些方式垂直定位元素。如果这对您有用,请通过将答案标记为正确来让其他人知道。
    • 你使用 display:flex 和 text-align:center
    【解决方案2】:

    .header {
      background-color: red;
      padding: 40px 20px;
    }
    
    .header h1 {
      background-color: yellow;
      float: left;
    }
    
    .header h1 img {
      display: block;
    }
    
    .header__nav {
      background-color: aqua;
      float: right;
    }
    
    .header__nav li {
      float: left;
      height: 38px;
    }
    
    .header__nav li a {
      padding: 0 20px;
      display: inline-block;
      <!-- Remove - line-height: 38px; -->
    }
    
    .contents {
      background-color: green;
    }
    
    .footer {
      background-color: blue;
    }
    <!-- new added class -->
    .clearfix{
      display: flex;
      align-items: center;
    }
    <header class="header clearfix">
      <h1>
        <a href="#"><img src="https://pixelicons.com/wp-content/themes/pexelicons/assets/pic/site-logo/logo.png" alt="Logo"></a>
      </h1>
      <nav class="header__nav">
        <ul class="clearfix">
          <li><a href="#">View icons</a></li>
          <li><a href="#">Buy now</a></li>
          <li><button class="menu">menu</button></li>
        </ul>
      </nav>
    </header>
    <section class="contents">
      contents
    </section>
    <footer class="footer">
      footer
    </footer>

    【讨论】:

      猜你喜欢
      • 2017-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-30
      • 2012-08-16
      • 2012-08-16
      • 2017-09-27
      • 1970-01-01
      相关资源
      最近更新 更多