我在Wordpress中创建了一个网站,该网站的链接周围有一个灰色框,当你将鼠标悬停在这些框上时,它们会变成蓝色,并从框中下拉一个箭头。我的问题是,它们是绝对放置的,所以如果导航链接更长或更短,箭头就不会居中到导航框。我能够用纯CSS来达到这个效果。这是我的密码。
HTML
<div id="nav">
<div class="navwrapper">
<div class="main-nav">
<?php bones_main_nav(); // Adjust using Menus in Wordpress Admin ?>
</div>
<div class="clearfix"></div>
</div>
</div>
CSS
.main-nav ul a{
color: #0f0f0f;
text-decoration: none;
}
.main-nav ul li a{
color: #0f0f0f;
text-decoration: none;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
background-color: #efefef;
padding: 10px;
}
.main-nav ul a:hover{
color: #fff;
text-decoration: none;
background-color: #5dbbe0;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
position: relative;
}
.main-nav ul li {
float: left;
margin: 25px 0 0 15px;
}
.main-nav ul a:hover:after{
content: ' ';
position: absolute;
width: 0;
height: 0;
left: 18px;
top: 36px;
text-align: center;
border-width:10px 10px 0;
border-style: solid;
border-color: #5dbbe0 transparent;
display: block;
}
当前使用三角形的问题之一是在内联元素中嵌套块元素 由于我们必须使用显示:块;为了形成CSS3三角形,我们还将display:block添加到父元素中。 我还将三角形的位置更改为位置:相对,因为我想将其相对于锚元素进行定位 最后使用边距:0 auto以水平对齐三角形。我假设你对每个锚使用相同的高度,假设这是你的导航,所以最后使用底部:-20px相应地调整三角形的垂直位置,例如 请在此处查看演示:http://jsfiddle.net/radialglo/Am48P/7/ 我将a:hover:after更改为a:after,只是为了演示。.main nav ul a{颜色:#0f0f;文字装饰:无;}.主导航ul li a{颜色:#0f0f;文字装饰:无;-webkit边界半径:10px;-moz边界半径:10px;边界半径:10px;背景颜色:#efefef;填充:10px;显示:块;}.main nav ul a:悬停{颜色:#fff;文字装饰:无;背景颜色:#5dbbe0;-webkit边界半径:10px;-moz边界半径:10px;边界半径:10px;位置:相对;}.主导航ul li{float:左;边距:25px 0 0 15px;列表样式:无;}.main nav ul a:在{内容:";/*位置:绝对*/位置:相对;底部:-20px;/*根据需要调整垂直高度*/宽度:0;高度:0;/*左:18px;*//*顶部:36px*/文本对齐:居中;边框宽度:10px 10px 0;边框样式:实心;边框颜色:#5dbbe0透明;边距:0自动;显示:块;}