我需要帮助定位导航 Div
I Need Help Positioning A Navigation Div
我有一个非常具体的问题,我似乎无法解决。我正在尝试将徽标(锚标记内的 img 标记)定位到我的导航 div 左侧,并将其他三个链接定位在导航右侧 div。我还尝试在中间垂直对齐图像和链接(我试过 verticle-align)。这是代码:
body {
min-width: 1200px;
}
a.nav {
text-decoration: none;
font-size: 18px;
}
#header {
background-color: black;
}
#headtop {
width: 1200px;
margin: 0 auto;
text-align: right;
}
#logo {
width: 45px;
height: 45px;
border: 1px solid #00ffff;
float: left;
}
<div id="header">
<div id="headtop">
<a href="index.html">
<img src="logo.jpg" alt="Home" id="logo">
</a>
<a href="about.html" class="nav">About</a>
<a href="gallery.html" class="nav">Gallery</a>
<a href="contact.html" class="nav">Contact</a>
</div>
</div>
所以首先,我设置了最小宽度,这样页面一达到设置的宽度就会折叠成滚动条。我希望 headtop 的高度约为 68px。但是当我设置高度时,我仍然无法垂直对齐文本或徽标。我尝试将 padding-top 添加到链接中,但它什么也没做。他们停留在页面顶部。我什至尝试为 headtop 设置内边距,这很有效,但是当我折叠页面时,有一段白色,因为出于某种原因 header 背景没有延伸到整个页面。为什么我的链接会卡在页面顶部,为什么我不能在不影响 headertop 宽度的情况下设置内边距?
非常感谢任何建议或帮助。
首先,像这样更改您的 HTML 以从导航容器中获取图像(我添加了一个图像用于显示目的)
<div id="header"> <a href="index.html">
<img src="http://upload.wikimedia.org/wikipedia/en/thumb/5/57/CBC_Logo_1966-1974.svg/618px-CBC_Logo_1966-1974.svg.png" alt="Home" id="logo" />
</a>
<div id="headtop"> <a href="about.html" class="nav">About</a>
<a href="gallery.html" class="nav">Gallery</a>
<a href="contact.html" class="nav">Contact</a>
</div>
</div>
现在,像这样更改您的 CSS,这样您就可以垂直对齐项目并按需要显示所有元素:
body {
}
#headtop {
text-decoration: none;
font-size: 18px;
position: absolute;
top: 50%;
right:20px;
transform: translateY(-50%);
}
a {
margin:0 20px;
color:#fff
}
#header {
background-color: black;
position:relative;
height:68px
}
#logo {
position: absolute;
top: 50%;
transform: translateY(-50%);
}
#logo {
width: 45px;
height: 45px;
border: 1px solid #00ffff;
position:relative
}
请注意,我删除了您拥有的 min-width(但您可以根据需要添加)。除此之外,我只是在 header 中添加了 position:relative
属性,然后将 transform property 用于要垂直对齐的项目。
我做了一个jsfiddle所以你可以玩一下
我有一个非常具体的问题,我似乎无法解决。我正在尝试将徽标(锚标记内的 img 标记)定位到我的导航 div 左侧,并将其他三个链接定位在导航右侧 div。我还尝试在中间垂直对齐图像和链接(我试过 verticle-align)。这是代码:
body {
min-width: 1200px;
}
a.nav {
text-decoration: none;
font-size: 18px;
}
#header {
background-color: black;
}
#headtop {
width: 1200px;
margin: 0 auto;
text-align: right;
}
#logo {
width: 45px;
height: 45px;
border: 1px solid #00ffff;
float: left;
}
<div id="header">
<div id="headtop">
<a href="index.html">
<img src="logo.jpg" alt="Home" id="logo">
</a>
<a href="about.html" class="nav">About</a>
<a href="gallery.html" class="nav">Gallery</a>
<a href="contact.html" class="nav">Contact</a>
</div>
</div>
所以首先,我设置了最小宽度,这样页面一达到设置的宽度就会折叠成滚动条。我希望 headtop 的高度约为 68px。但是当我设置高度时,我仍然无法垂直对齐文本或徽标。我尝试将 padding-top 添加到链接中,但它什么也没做。他们停留在页面顶部。我什至尝试为 headtop 设置内边距,这很有效,但是当我折叠页面时,有一段白色,因为出于某种原因 header 背景没有延伸到整个页面。为什么我的链接会卡在页面顶部,为什么我不能在不影响 headertop 宽度的情况下设置内边距?
非常感谢任何建议或帮助。
首先,像这样更改您的 HTML 以从导航容器中获取图像(我添加了一个图像用于显示目的)
<div id="header"> <a href="index.html">
<img src="http://upload.wikimedia.org/wikipedia/en/thumb/5/57/CBC_Logo_1966-1974.svg/618px-CBC_Logo_1966-1974.svg.png" alt="Home" id="logo" />
</a>
<div id="headtop"> <a href="about.html" class="nav">About</a>
<a href="gallery.html" class="nav">Gallery</a>
<a href="contact.html" class="nav">Contact</a>
</div>
</div>
现在,像这样更改您的 CSS,这样您就可以垂直对齐项目并按需要显示所有元素:
body {
}
#headtop {
text-decoration: none;
font-size: 18px;
position: absolute;
top: 50%;
right:20px;
transform: translateY(-50%);
}
a {
margin:0 20px;
color:#fff
}
#header {
background-color: black;
position:relative;
height:68px
}
#logo {
position: absolute;
top: 50%;
transform: translateY(-50%);
}
#logo {
width: 45px;
height: 45px;
border: 1px solid #00ffff;
position:relative
}
请注意,我删除了您拥有的 min-width(但您可以根据需要添加)。除此之外,我只是在 header 中添加了 position:relative
属性,然后将 transform property 用于要垂直对齐的项目。
我做了一个jsfiddle所以你可以玩一下