【问题标题】:How can I better get my searchbar within my nav to vertically center?如何更好地让导航中的搜索栏垂直居中?
【发布时间】:2022-01-21 02:19:15
【问题描述】:

我已经尝试了很多东西,但似乎无法让我的搜索栏移动(除了左边距:40px;,它工作得很好。但是底部边距是我无法得到的移动。)。我查看了以前的问题,但没有找到解决方案。搜索栏似乎附在导航栏的底部。我想知道我是否有重叠规则或阻止它移动的东西。

另外,你们有没有看到我可以改进我已经拥有的代码的任何方法? (即,如果我正在以艰难的方式做某事并且有更简单的方法等。)任何想法和/或解决方案将不胜感激。

HTML:

<nav>
    <ul>
      <li class="logo"><a href="#"><span class="redtxt">FIT</span><span class="blktxt">ERACY</span></a></li>
      <li>
        <form action="./" method="get">
          <div class="searchbar">
            <input type="text" class="searchbar__input" name="search" placeholder="Search Programs">
            <button type="submit" class="searchbar__button">
              <i class="material-icons">search</i>
            </button>
          </div>
        </form>
      </li>
      <li class="list"><a href="#">Signup</a></li>
      <li class="list"><a href="#">Login</a></li>
      <li class="list"><a href="#"><i class="fas fa-shopping-cart"></i></a></li>
      <li class="list"><a href="#">Contact</a></li>
      <li class="list"><a href="#">Become an Instructor</a></li>
      <li class="list"><a href="#">Categories</a></li>
    </ul>
  </nav>

CSS:

@import url('https://fonts.googleapis.com/css2?family=Crushed&display=swap');

* {
  margin: 0;
  padding: 0;
}

nav {
  width: 100%;
  height: 75px;
  background-color: rgb(104, 103, 115);
  position: fixed;
}

ul li {
  font-family: 'Crushed', cursive;
  text-transform: uppercase;
  display: inline-block;
}

ul li a {
  text-decoration: none;
  color: white;
}
.searchbar {
  display: flex;
  margin-left: 40px;
}
.searchbar__input {
  width: 400px;
  height: 30px;
}

.list {
  float: right;
  margin: 20px;
  padding-top: 8px;
  font-size: 20px
}

.list a:hover {
  color: rgb(103, 30, 30);
}

.logo {
  font-size: 45px;
  margin-left: 13px;
  text-align: center;
  padding-top: 12px;
}

.redtxt {
  color: rgb(103, 30, 30);
}

.blktxt {
  color: black;
}

谢谢!

【问题讨论】:

    标签: html css html-lists nav searchbar


    【解决方案1】:
    ul {
        display: flex;
        flex-direction: row;
        align-items: center;
    }
    

    这应该使标签中的所有内容垂直居中。您将需要使用或删除已添加到徽标和菜单项的某些填充/边距值。

    【讨论】:

    • 非常感谢! (如此简单的修复)。像魅力一样工作,它确实与其他一些属性混淆,并以某种方式重新排列了我的导航栏,但现在我可以清理代码并且它们都完美居中。如果您不介意我问,为什么这会改变一切并起作用?抱歉,我对编码非常陌生(大约 2 周,哈哈)
    • @Scott 看起来填充、边距和字体大小值都是为导航中的不同对齐方式而制作的。我通常的方法是首先将父 div 中的所有内容居中,正如我刚刚发布的答案一样。想了解更多关于 flex-box 有多棒的信息:css-tricks.com/snippets/css/a-guide-to-flexbox
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-27
    • 1970-01-01
    • 2014-09-10
    相关资源
    最近更新 更多