html - 如何在导航栏中对齐图标

标签 html css navbar

所以基本上我希望能够在我的导航栏中对齐我的图标,但它们保持在左侧,当侧边栏打开时,这些图标应该位于同一行并居中。
正如你所看到的,他们停留在左边
图片:
/image/8n3WO.png
如果您想通过将图标对齐在同一行并居中来了解我的意思,请查看下面的 Tom Walkers 导航栏
https://iamtomwalker.com
导航栏代码:

session_start();
?>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="./css/navbar.css?d=<?php echo time(); ?>">
<link rel="stylesheet" type="text/css" href="./css/style.css?d=<?php echo time(); ?>">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
</head>


<nav class="navbar"> 
 <span class="navbar-toggle" id="js-navbar-toggle"> 
     <i class="material-icons">menu</i> 
 </span> 
   <a href="#" class="logo">Test</a> 
     <ul class="main-nav" id="js-menu"> 
         <li><a href="../home" class="nav-links">Home</a></li> 
         <li><a href="../covers" class="nav-links">Covers</a></li> 
         <li><a href="../music" class="nav-links">Music</a></li> 
         <li><a href="../newsletter" class="nav-links">Newsletter</a></li> 
         <li style="display: inline-block;text-align: center; clear:left;"><a href="../newsletter" class="nav-links socials"><i class="material-icons">menu</i> </a></li>  
         <li style="display: inline-block;text-align: center; clear:left;"><a href="../newsletter" class="nav-links socials"><i class="material-icons">menu</i> </a></li>   
         <?php
         if(isset($_SESSION['logged_in'])){
         echo '<li><a href="../account" class="nav-links">Account</a></li> ';
         echo '<li><a href="../manage" class="nav-links">Manage</a></li> ';
         echo '<li><a href="../actions/logout.php" class="nav-links">Logout</a></li> ';
         } 
?>
         
     </ul> 
</nav> 

<script>
 let mainNav = document.getElementById("js-menu"); 
 let navBarToggle = document.getElementById("js-navbar-toggle");
 navBarToggle.addEventListener("click", function() {
 mainNav.classList.toggle("active");
 });
</script>
导航栏 CSS
@import url('https://fonts.googleapis.com/css2?family=Fredericka+the+Great&display=swap');

* { 
box-sizing: border-box;
padding: 0;
margin: 0;
 } 
 
.navbar { 
 font-size: 18px;
 background-color: #151515;
 padding-bottom: 10px;
 border-bottom: 1px solid white;
 } 
 
.main-nav { 
 list-style-type: none;
 display: none;
 clear: left;
 } 

.nav-links, .logo { 
 text-decoration: none;
 font-family: 'Fredericka the Great', cursive;
 color: rgba(255, 255, 255, 0.7);
 }

 .nav-links:hover{ 
 text-decoration: underline;
 }
 
.main-nav li { 
 text-align: center;
 margin: 15px auto;
 } 

.logo { 
 display: inline-block;
 font-size: 22px;
 margin-top: 10px;
 margin-left: 20px;
 }
 
.navbar-toggle { 
 position: absolute;
 top: 10px;
 right: 20px;
 cursor: pointer;
 color: rgba(255, 255, 255, 0.8);
 font-size: 24px;
 } 
 
.active { 
 display: block;
 } 
 
 @media screen and (min-width: 768px) { 
 .navbar {
 display: flex;
 justify-content: space-between;
 padding-bottom: 0;
 height: 70px;
 align-items: center;
 } 
 
.main-nav { 
 display: flex;
 margin-right: 30px;
 flex-direction: row;
 justify-content: flex-end;
 }

 .main-nav li { 
 margin: 0;
 }
 
.nav-links { 
 margin-left: 40px;
 } 
 
.logo { 
 margin-top: 0;
 } 
 
.navbar-toggle { 
 display: none;
 } 
 
.logo:hover, .nav-links:hover { 
color: rgba(255, 255, 255, 1);
 }```

  


  [1]: https://iamtomwalker.com

最佳答案

有几种方法可以做到这一点,但最简单的是,将 display: inline 和 float: left 添加到你的 li css

.main-nav li {
  display: inline;
  float: left;
  margin: 15px auto;
} 
内联显示将使列表项不再阻塞元素,它们将并排放置。
float 只会将它们全部放在父级的任一侧。
您可以从这里设置间距。
https://jsfiddle.net/ywk1cd5h/6/

关于html - 如何在导航栏中对齐图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65727998/

相关文章:

html - 打印 css 被忽略 Bootstrap4

css - 使用 CSS 样式表和类名的 React-Native 样式

jquery - 如果存在很多选项卡,导航选项卡会使用省略号调整宽度

html - 导航栏在 992 处折叠,没有下拉菜单

jquery - 在 Bootstrap 导航菜单中将用户图标移到右侧

html - 在底部垂直对齐列表元素

html - "Failed to load PDF document"HTML5 对象

html - 悬停列表项空间(宽度和高度)而不是文本空间

javascript - 两个不同的 Bootstrap 菜单在同一个按钮上折叠

html - 为什么不显示我的 div 的背景颜色?