我正在尝试创建一个HTML和CSS导航菜单,每个菜单项都有一个图像和文本。我可以让这个工作,但我不知道如何定位图像或文本。我希望每个图像都以其容器为中心,其下面的文本以其容器为中心。
这是代码,但我不确定如何获得正确的定位
HTML
<div id="pageTop">
<nav>
<ul>
<li><a href="apps/fade-ifit.html"> <img src="images/search.png" alt="" class="headerCon" /> <navText> Home </navText> </a> </li>
<li><a href="about.html">About</a></li>
<li><a href="help.html">Help</a></li>
<li><a href="home.html">Home</a></li>
<li><a href="about.html">About</a></li>
<li><a href="help.html">Help</a></li>
<li><a href="home.html">Home</a></li>
<li><a href="about.html">About</a></li>
<li><a href="help.html">Help</a></li>
</ul>
</nav>
</div>
CSS
#pageTop {
height: 172px;
border: 1px red dashed;
}
nav {
background-color: #fff;
border: 0px solid #dedede;
border-radius: 10px; /* edges */
box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.055);
color: black;
display: block;
margin: 0px auto;
margin-top: 35px;
overflow: hidden;
width: 995px;
height: 100px;
}
nav ul {
margin: 0px;
padding: 0px;
}
nav ul li {
display: inline-block;
list-style-type: none;
background-color: #c5c5c5;
-webkit-transition: all 0.2s;
-moz-transition: all 0.2s;
-ms-transition: all 0.2s;
-o-transition: all 0.2s;
transition: all 0.2s;
width: 107px;
text-align: center;
}
navtext {
text-align: center;
font-family: Century Gothic, Gillsans-Light, Helvetica;
color: #676767;
font-size: 12px;
}
.headerCon{
}
nav > ul > li > a {
color: #aaa;
display: block;
line-height: 56px;
padding-top: 50px;
text-decoration: none;
}
nav > ul > li:hover {
background-color: black;
}
nav > ul > li:hover > a {
background-color: black;
}
nav > ul > li:hover > a > .caret {
background-color: black;
}
/*
nav > ul > li > div {
background-color: black;
border-top: 0;
border-radius: 0 0 1px 1px;
display: none;
margin: 0;
opacity: 0;
position: absolute;
width: 100px;
visibility: hidden;
z-index: 100;
-webkit-transiton: opacity 0.2s;
-moz-transition: opacity 0.2s;
-ms-transition: opacity 0.2s;
-o-transition: opacity 0.2s;
-transition: opacity 0.2s;
}
*/
nav > ul > li:hover > div {
display: block;
opacity: 1;
visibility: visible;
}
nav > ul > li > div ul > li {
display: block;
}
答案 0 :(得分:3)
您可以使<img>
元素块元素并使用auto
边距对其进行居中。
ul img {
display : block;
margin : 0 auto;
}
另一种方法是使用background images和background position:
ul li.home {
background-image : url(...);
background-position : center;
}
您可能还想删除<li>
元素之间的空格。我喜欢这样做,省略可选的结束标记,这样你就可以:
<ul>
<li><a href=...><img src=... />Item 1
<li><a href=...><img src=... />Item 2
...
</ul>
可以在此处找到删除空格的其他选项:How to remove the space between list items
修改:JSFiddle添加了一个精简版本,以说明这是如何运作的。
答案 1 :(得分:0)
在<li>
<li><a href="..."> <img src="..." class="headerCon" /> <br/>
<navText> Home </navText> </a>
</li>
我也会取出<navText>
,这是无效的HTML
<li><a href="..."> <img src="..." class="headerCon" /> <br/>
Home </a>
</li>