所以基本上我希望能够在我的导航栏中对齐我的图标,但它们保持在左侧,当侧边栏打开时,这些图标应该位于同一行并居中。
正如你所看到的,他们停留在左边
图片:
/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/