我是网站设计的新手,我的导航栏中有一些我无法解决的缺陷。
以下是代码:
https://jsfiddle.net/b02nm6ae/#update
CSS:
.nav_wrapper {
z-index: 9999;
padding: 0;
margin: 0;
width: 100%;
min-width: 50px;
}
.nav_wrapper ul {
display: block;
position: relative;
position: fixed;
/* fixes automatic values set by ul */
margin: 0;
padding: 0;
}
.nav_wrapper ul li {
list-style: none;
display: list-item;
background-color: #993300;
float: left;
}
/* hides the submenu by default */
.nav_wrapper ul ul {
display: none;
position: absolute;
}
/* makes the sub menu appear on hover over list element */
.nav_wrapper ul li:hover > .sub_nav1 {
display: list-item;
list-style: none;
}
/* lists the list items on top of one another */
.nav_wrapper ul .sub_nav1 li {
float: none;
position: relative;
}
.nav_wrapper ul li a{
display: block;
text-decoration: none;
color: #ffffff;
padding: 12px;
}
.nav_wrapper li a:hover{
color: #000;
background-color: #ffffff;
}
/* Dropdown Menu arrow */
.nav_wrapper ul li > a:after {
content: '\25BE';
}
.nav_wrapper ul li > a:only-child:after {
content: '';
}
HTML:
<body>
<!-- NAV -->
<div class="nav_wrapper">
<ul class="nav">
<li><a href="#">Home</a></li>
<li><a href="#">Calandar</a></li>
<li><a href="#">About Us</a>
<ul class="sub_nav1">
<li><a href="#">The Pastor</a></li>
<li><a href="#">History</a></li>
<li><a href="#">About Byzantines</a></li>
</ul>
</li>
<li><a href="#">Mass Times</a></li>
<li><a href="#">Contact Us</a></li>
</ul>
<div>
<!-- SECTION 1 -->
</body>
</html>
答案 0 :(得分:1)
一旦你浮动li
,那么居中就变得有问题了。在这些情况下,通常首选使用display:inline-block
和中心,然后将text-align:center
应用于父ul
。
这确实有white-space
的缺点,但有一些方法,其中一种(字体大小)我在这里使用过。
对于具有更高高度的单个元素......这是由伪元素引起的...所以在它上面打了一个快速补丁。坦率地说,我会将一个类应用于父li
并在li
上使用伪元素,但这完全是另一个辩论。
body {
font-family: 'Didact Gothic', sans-serif;
padding: 0;
margin: 0;
background-color: #CCCCFF;
}
.nav_wrapper ul {
display: block;
margin: 0;
padding: 0;
text-align: center;
font-size: 0;
/* remove whitespace */
}
.nav_wrapper ul li {
list-style: none;
display: inline-block;
vertical-align: top;
background-color: #993300;
position: relative;
font-size: 1rem;
/* font-size reset */
}
/* hides the submenu by default */
.nav_wrapper ul ul {
display: none;
top: 100%;
left: 0;
position: absolute;
}
/* makes the sub menu appear on hover over list element */
.nav_wrapper ul li:hover > .sub_nav1 {
display: block;
width: 100%;
}
/* lists the list items on top of one another */
.nav_wrapper ul .sub_nav1 li {
position: relative;
width: 100%;
}
.nav_wrapper ul li a {
display: block;
text-decoration: none;
color: #ffffff;
padding: 12px;
}
.nav_wrapper li a:hover {
color: #000;
background-color: #ffffff;
}
/* Dropdown Menu arrow */
.nav_wrapper ul> li > a:after {
content: '\25BE';
line-height: 0;
}
.nav_wrapper ul li > a:only-child:after {
content: '';
}
&#13;
<div class="nav_wrapper">
<ul class="nav">
<li><a href="#">Home</a>
</li>
<li><a href="#">Calendar</a>
</li>
<li><a href="#">About Us</a>
<ul class="sub_nav1">
<li><a href="#">The Pastor</a>
</li>
<li><a href="#">History</a>
</li>
<li><a href="#">About Byzantines</a>
</li>
</ul>
</li>
<li><a href="#">Mass Times</a>
</li>
<li><a href="#">Contact Us</a>
</li>
</ul>
<div>
&#13;
答案 1 :(得分:0)
嗯,我注意到如果我将25像素高度设置为
.nav_wrapper ul li a
删除了额外的空格,例如..
.nav_wrapper ul li a{
height:25px;
display: block;
text-decoration: none;
color: #ffffff;
padding: 12px;
}