javascript - 将导航栏移动到媒体查询的右侧

标签 javascript html css css-position

我试图在浏览器窗口达到特定大小时将导航栏移动到右侧的固定位置,并在小于该大小时将其置于顶部。使用下面的代码(如 jsfiddle 中所示),当我调整 html 大小时,导航栏在左侧(而不是右侧)对齐。

问题,如何将导航栏移动到媒体查询屏幕的右侧。根据我在 SO 上发现的几个问题,使用 position: fixed; 应该就足够了。顶部:50%; right:0; 但它没有按预期工作。

(请注意,如果你想在链接到 jsfiddle 上进行测试,你可以拉伸(stretch) html 部分的边界以触发媒体查询)。

片段和jsfiddle :

.navbar {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  background-color: #ddd;
}

.navbar ul,
.navbar li {
  display: inline-block;
}

@media (min-width: 767px) {
  .navbar {
    position: fixed;
    top: 50%;
    right: 0;
    background-color: #ddd;
    width: 0%;
  }
  .navbar ul,
  .navbar li {
    display: block;
  }
}
<nav class="navbar">
  <ul class="navbar-top-right">
    <li><button onclick="jump('header')">home</button></li>
    <li><button onclick="jump('special')">Special</button></li>
    <li><button onclick="jump('menu')">Menu</button></li>
    <li><button onclick="jump('map')">Map</button></li>
    <li><button onclick="jump('about')">About</button></li>
  </ul>
</nav>

最佳答案

是的,您设置正确,这是正确的。但是当你 inpsect 时,你可以看到该元素还设置了 left: 0

media query 中使用 left: initial 重置 left 并设置一些 width 到你的 navbar - 请参见下面的演示:

.navbar {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  background-color: #ddd;
}

.navbar ul,
.navbar li {
  display: inline-block;
}

@media (min-width: 767px) {
  .navbar {
    position: fixed;
    top: 50%;
    right: 0;
    left: initial;
    width: 125px;
    background-color: #ddd;
    /*width: 0%;*/
  }
  .navbar ul,
  .navbar li {
    display: block;
  }
}
<nav class="navbar">

  <ul class="navbar-top-right">
    <li><button onclick="jump('header')">home</button></li>
    <li><button onclick="jump('special')">Special</button></li>
    <li><button onclick="jump('menu')">Menu</button></li>
    <li><button onclick="jump('map')">Map</button></li>
    <li><button onclick="jump('about')">About</button></li>
  </ul>

</nav>

关于javascript - 将导航栏移动到媒体查询的右侧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45773404/

相关文章:

javascript - 为弹出 div 设置 cookie

javascript - Ember.js - 过滤模型的所有属性

javascript - select2 - 在选择时提交表单

javascript - 拖拽 "Div"问题

javascript - 将表格<td>作为复选框,如何在<td>上实现点击和拖动多选

javascript - 如何使用 jquery 将 html 模板创建为字符串?

css - 将 div 扩展到 bootstraps 容器之外

javascript - 从所有其他列表项中删除类

javascript - 动态创建类名。仅

html - 在元素中水平和垂直居中文本