如何使导航栏项目 CSS 居中

新手上路,请多包涵

我有一个导航栏,它跨越整个页面的宽度。我还添加了一个 jQuery 脚本,以便它在滚动一段时间后更改为 position:fixed,但我认为这不会影响这个问题。

我的问题是我无法将导航栏 <li> 置于中心。我已经尝试了无数在互联网上找到的东西,甚至下载了一些模板来拼接。没有运气。我确定我只是遗漏了一些东西,但我希望 <li> 在导航栏中间轻拍,但我尝试过的所有方法要么让它们稍微偏离,将它们浮动到左侧,或使它们无法正确调整大小。

这是我的 HTML:

 <!doctype html>

<html lang="en">
    <head>
        <link rel="stylesheet" type="text/css" href="stylesheet.css">
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
        <script src="script.js" type="text/javascript"></script>
    </head>

    <body>
        <h1>Blah blah blah</h1>

        <!--START NAVBAR-->
        <div class="nav">
            <ul>
                <li><a>Home</a></li>
                <li><a>Home</a></li>
                <li><a>Home</a></li>
            </ul>
        </div>
        <!--STOP NAVBAR-->

        <div class="content">
            <p>
            Lorem ipsum dolor sit amet...
            </p>
            <p>

            Nullam pellentesque nunc luctus...
            </p><p>
            Donec sodales fermentum orci...
            </p><p>
            Ut venenatis tellus ...
            </p><p>
            Nullam quis molestie nunc...

            </p>
        </div>

    </body>

和CSS:

 body{
background-image:url("woodPatternShadow.png");
background-size:75% auto;
padding:0;
font-family:"Verdana";
}

.nav{
height:40px;
background-color:rgba(0,0,0,0.25);
left:0;
right:0;
box-shadow: inset 0 3px rgba(255, 255, 255, 0.4), inset 0 10px 4px rgba(255, 255, 255, 0.3),inset 0 10px 20px rgba(255,255,255,0.25), inset 0 -15px 30px rgba(28,0,0,0.3);
border:1px solid rgba(0,0,0,0.1);
margin:0;
position:absolute;
}

#fixNav{
position:fixed;
top:0px;
}

.nav ul{
}

.nav ul li{
}

.nav ul li a{
}

.content{
background-color:white;
border-radius:20px;
padding:10px;
width:70%;
margin:100px auto 0;
}

空的选择器是我想不通的地方。

有人可以帮我解决这个问题吗?

原文由 Aaa 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 422
2 个回答

ul 设置为 text-align: center 并在 li 元素上设置 display: inline-block

 .nav ul {
   list-style: none;
   text-align: center;
}

.nav ul li {
   display: inline-block;
}

带有 display: inline-block 的元素被视为内联元素,即使它们在大多数方面都像块元素一样,因此在容器上设置 text-align: center 将使内联元素居中 li 它的。

显然,这是一个简单的功能性答案——您需要添加样式来调整 lia 元素的呈现。这段代码所做的只是删除默认项目符号并将 li 元素居中。

原文由 Ennui 发布,翻译遵循 CC BY-SA 3.0 许可协议

只需添加这个

 nav {
    background-color: rgb(0, 0, 0);
    overflow: hidden;
    font-family: consolas;
    align-items: center;
}
nav a {
    text-decoration: none;
    padding: 20px;
    text-align: center;
    float: center;
    color: white;
    margin-left: auto;
    margin-right: auto;
}
 <nav align="center">
        <a href="#">Home</a>
        <a href="#">Videos</a>
        <a href="#">Resources</a>
        <a href="#">Projects</a>
        <a href="#">About Us</a>
    </nav>

原文由 VedantK3 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题