我正在尝试制作一个水平导航菜单,我的菜单项(li)元素是圆形的,这里是演示,我的问题是链接的文本出现在顶部,如何让它出现在中心,这可能吗,请让我知道,欢迎任何建议。谢谢
问问题
474 次
5 回答
1
只有块项目可以使用边距和填充。锚标签是内联元素。您需要强制它们成为 CSS 中的块元素:
#menu ul li a
{
text-decoration:none;
display:block;
padding:30px 0 0 0;
}
于 2012-06-01T15:51:31.507 回答
1
我刚玩过你的小提琴。我所做的只是让“li”显示:inline-block 并将 li:hover 更改为 #menu li:hover。
#menu ul li
{
float:left;
display:inline-block;
padding:40px 30px;
background-color:slategray;
margin:0 20px 0 0;
height:17px;
-webkit-border-radius:50px;
}
#menu li:hover
{
-webkit-box-shadow:0 0 50px 12px #69CDF5;
background:#cb2326;
}
请在此处查看小提琴:http: //jsfiddle.net/Az8cG/15/
于 2012-06-01T17:03:58.693 回答
1
要回答您针对 Diodeus 发布的第二个问题:
如果你想使用纯 css3 悬停效果,你需要使用 :hover 选择器来做类似的事情:
#menu ul li a:hover {
background-color: #000000;
}
为了获得更好的效果,请使用您可以在此处看到的 CSS3 过渡属性:
于 2012-06-01T16:06:16.443 回答
1
与其搞乱垂直对齐,不如将 line-height 设置为等于圆的高度/宽度。
您没有采用红色背景的问题是它声明的选择器的特异性:li:hover
不足以克服#menu ul li
.
请参阅此处:http: //jsfiddle.net/Az8cG/11/两个修复程序。
于 2012-06-01T16:09:38.113 回答
1
如果文本超过 2 行,您可以使用它来将其保持在中间:
#menu ul li a
{
display:table-cell;
vertical-align:middle;
height:85px;
width:35px;
}
你的第二个问题的答案:
#menu ul li:hover
{
background:red;
}
于 2012-06-01T15:58:12.580 回答