html - 使用居中 Logo 调整导航栏中的间距

标签 html css positioning nav spacing

这里我设置了一个带有居中 Logo 的导航栏。唯一的问题是我不能让它在间距上看起来很正确。 Logo 设置为“position: absolute”“left: 50%”和“margin-left: -125px”,因此始终位于中心。现在我只需要让文本以更对称的方式围绕它平衡,但我似乎不知道该怎么做。

这是 HTML

<link rel="stylesheet" href="stylesheet.css"/>
</head>
<body>
    <div class="header">
        <div class="nav">
            <ul>
                <li class="navright"><a href="#">HOME</a></li>
                <li class="navright"><a href="#">MENU</a></li>
                <li id="logo"><a href="#"><img src="Images/pantry logo.png" width="536" height="348"/></a></li>
                <li class="navleft"><a href="#">CONTACT</a></li>
                <li class="navleft"><a href="#">ABOUT</a></li>
            </ul>        
       </div>
  </div><!--end header-->

还有 CSS。

.header {
    width: 960px;
    height: 200px;
    margin: 0 auto;
    text-align: center;
    position: relative;
}

div ul li {
    display: inline-block;
    padding: 105px 70px 40px 0;
    font-family: "Montserrat", "Helvetica", sans-serif;
    font-size: 18px;
    color: #4f4d4b;
    text-decoration: none;
    list-style: none;
}

div ul li a {
    list-style: none;
    text-decoration: none;
    color: #4f4d4b;
}

.nav ul li a:visited {
    text-decoration: none;
    color: #4f4d4b;
}


#logo a img {
    width: 250px;
    height: auto;
    position: absolute;
    left: 50%;
    margin-left: -125px;
    display: inline-block;
}

#logo {
    height: 60px;
    padding-top: 40px;
    width: 250px;
}

可以去现场here.

最佳答案

这是我会做的,这也是我通常做事的方式。

我会采用 li 的填充,然后将 105px 填充添加到标题(或导航)的顶部。接下来,为每个 li 元素添加一些任意的 margin-right(比如 48px),同时当然将 li:last-child 设置为 margin: 0;接下来取下 li#logo 的 padding-top 和 height 并将其更改为:

#logo { width: 250px; position: relative; }

最后,如果您要使用绝对定位,只需使用变换使 Logo 居中。这基本上与 margin-left 做同样的事情,但它更灵活一点。所以图片 CSS 应该是这样的:

#logo a img {
  width: 250px;
  height: auto;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%,-50%);
  transform: translate(-50%,-50%);
}

我使用了这段代码,它非常适合我。如果您仍然遇到问题,我也可以为您制作 fiddle 或其他东西。

关于html - 使用居中 Logo 调整导航栏中的间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22111241/

相关文章:

html - Bootstrap 3 下拉列表显示在 Chrome Inspector 中,但不显示在浏览器中

angularjs - ngAnimate 不使用 ngRepeat 将类添加到图片库

css - 如何在订单列表中创建订单列表?

iphone - 为什么更改 UIScrollView 的框架会更改其 subview 的框架?

javascript - Facebook 中 URL 发生变化的网页部分更新效果

javascript - 使用 Javascript 循环 HTML 元素时获取名称和链接值

css - 隐藏 HTML 页面上的滚动条

css - slider 顶部的 Div

html - 当下拉列表悬停时,它会影响下面的幻灯片

css - 当页面大于屏幕时如何将div定位在屏幕中间