javascript - 如何使网页的导航栏从左到右对齐?

标签 javascript html css

我在这个网站上工作,我把这个导航栏添加到浏览器的左侧。我在更改导航栏的一侧方面需要帮助,因此与其从左侧打开,不如从浏览器的右侧打开。

function openNav() {
  document.getElementById("mySidenav").style.width = "250px";
  document.getElementById("main").style.marginLeft = "250px";
}

function closeNav() {
  document.getElementById("mySidenav").style.width = "0";
  document.getElementById("main").style.marginLeft = "0";
}
body {
  font-family: "Lato", sans-serif;
}

.sidenav {
  height: 100%;
  width: 0;
  position: fixed;
  z-index: 1;
  top: 0;
  left: 0;
  background-color: dodgerblue;
  overflow-x: hidden;
  transition: 0.5s;
  padding-top: 60px;
}

.sidenav a {
  padding: 8px 8px 8px 40px;
  text-decoration: none;
  font-size: 25px;
  color: white;
  display: block;
  transition: 0.3s;
}

.rightalign {
  display: flex;
  justify-content: flex-end;
}

.sidenav a:hover {
  color: #f1f1f1;
}

.sidenav .closebtn {
  position: absolute;
  top: 0;
  right: 25px;
  font-size: 36px;
  margin-left: 50px;
}

#main {
  transition: margin-left .3s;
  padding: 16px;
}
<div id="mySidenav" class="sidenav">
  <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a>
  <a href="#">About</a>
  <a href="#">Contact</a>
</div>

<div id="main">
  <span class="rightalign" style="font-size:30px;cursor:pointer" onclick="openNav()">&#9776;</span>
</div>

最佳答案

.sidenav 上使用 right: 0 而不是 left: 0,并过渡 margin-right 而不是 #main 上的 margin-left

要左对齐关闭按钮,将 right: 25px 更改为 left: 0 并将 margin-left: 50px 更改为 右边距:50px.

function openNav() {
  document.getElementById("mySidenav").style.width = "250px";
  document.getElementById("main").style.marginRight = "250px";
}

function closeNav() {
  document.getElementById("mySidenav").style.width = "0";
  document.getElementById("main").style.marginRight = "0";
}
body {
  font-family: "Lato", sans-serif;
}

.sidenav {
  height: 100%;
  width: 0;
  position: fixed;
  z-index: 1;
  top: 0;
  right: 0;
  background-color: dodgerblue;
  overflow-x: hidden;
  transition: 0.5s;
  padding-top: 60px;
}

.sidenav a {
  padding: 8px 8px 8px 40px;
  text-decoration: none;
  font-size: 25px;
  color: white;
  display: block;
  transition: 0.3s;
}

.rightalign {
  display: flex;
  justify-content: flex-end;
}

.sidenav a:hover {
  color: #f1f1f1;
}

.sidenav .closebtn {
  position: absolute;
  top: 0;
  left: 0;
  font-size: 36px;
  margin-right: 50px;
}

#main {
  transition: margin-right .3s;
  padding: 16px;
}
<div id="mySidenav" class="sidenav">
  <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a>
  <a href="#">About</a>
  <a href="#">Contact</a>
</div>

<div id="main">
  <span class="rightalign" style="font-size:30px;cursor:pointer" onclick="openNav()">&#9776;</span>
</div>

关于javascript - 如何使网页的导航栏从左到右对齐?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52666210/

相关文章:

javascript - 在 CSS 或 JS 中使用字体字符替换

javascript - 一起增加内联 block 元素的高度?

javascript - 仅使用 CSS 创建可折叠菜单或快捷菜单

java - 用 Java 中的等效字符替换 HTML 5 代码

jquery - 切换开关在 PartialView 中不起作用

javascript - React 和 material-ui/DatePicker : how can I change to year view programmatically?

html - 如何避免 HTML 表格中的 tr 值重叠

javascript - 用于派生 RSA 私钥的数字何时应以 `00` 开头?

javascript - Backbone.js 空数组属性

javascript - 如何使用 node-mongodb-native 在 mongodb find() 的回调中返回一个临时集合?