当我将页面设置为 75% 宽度时,如何使此导航栏具有足够的响应能力,元素不会发生变化?

问题描述 投票:0回答:1

当我将页面大小调整到大约 75% 宽度时,导航栏中的元素会变得混乱。例如,右侧的按钮会改变大小,导航链接会偏离中心。

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

*,
*::before,
*::after {
  box-sizing: border-box;
}

* {
  margin: 0;
  padding: 0;
  font: inherit;
  font-family: 'Roboto', sans-serif;
}

.navbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 11% 20px 11%;
  width: 100%;
}

.navbar ul {
  display: flex;
  list-style: none;
  padding-left: 10%;
}

.navbar ul li a {
  color: #4c4d5f;
  text-decoration: none;
  font-size: 16px;
  padding: 10px 23px 10px 15px;
}

.logo {
  width: 150px;
  height: auto;
}

.dropdown_menu {
  display: none;
}

.start,
.login {
  border: 1px solid #00b289;
  border-radius: 4px;
  font-size: 13px;
  line-height: 16px;
  font-weight: 700;
  text-align: center;
  letter-spacing: .6px;
  text-transform: uppercase;
}

.start {
  border-radius: 4px;
  background-color: #00b289;
  color: #fff;
  margin-left: 17px;
  padding: 12px 27px 9px;
  text-align: center;
}

.login {
  padding: 12px 27px 9px;
  background-color: transparent;
  color: #00b289;
}

.login:hover {
  background-color: #00b289;
  color: #fff;
}

.dropdown {
  display: none;
}

.nav-links .product:hover+.dropdown {
  display: block;
  position: absolute;
  background: white;
  margin-top: 15px;
  margin-left: -15px;
}
<header>
  <nav class="navbar">
    <img src="bonsai-logo.svg" class="logo">
    <ul>
      <li><a>Product <i class="fas fa-caret-down"></i></a></li>
      <div class="dropdown_menu">
        <li><a>Feauture 1</a></li>
        <li><a>Feauture 2</a></li>
        <li><a>Feauture 3</a></li>
      </div>
      <li><a href="">Templates <i class="fas fa-caret-down"></i></a></li>
      <li><a href="">Pricing</a></li>
      <li><a href="">Reviews</a></li>
    </ul>
    <div class="nav-buttons">
      <button class="login">Log in</button>
      <button class="start">Start Free</button>
    </div>
  </nav>
</header>

我尝试使用百分比来填充 div 和元素,但仍然遇到同样的问题。我只是希望在调整页面大小时徽标和导航之间的空间变小,以便其他所有内容保持不变。

这是我正在尝试重新创建的网站(我还没有尝试使其响应移动设备):Bonsai

html css responsive-design frontend
1个回答
0
投票

首先,您可以通过使用 Flexbox 并将空白设置为 nowrap 来防止按钮换行。

.nav-buttons {
  display: flex;
  white-space: nowrap;
}

为了确保链接和按钮相对于徽标一起移动,应将它们包装在容器中:

<div class="nav-right">
  <!-- Your links and buttons here -->
</div>

使用以下CSS

.nav-right {
  display: flex;
  align-items: center;
}

模仿示例站点中的固定最大宽度行为:

.navbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 78px;
  max-width: 70rem;
}

header {
  display: flex;
  justify-content: center;
  padding: 0 2.5rem;
}
© www.soinside.com 2019 - 2024. All rights reserved.