0

我一直在努力解决这个问题,它似乎非常接近工作,但它不会垂直对齐。我已经尝试了大多数解决方案,同时又回到了相同的表格单元答案。但它在这里不起作用,文本在顶部对齐。有谁知道为什么这不起作用,以及修复它?

jsfiddle:

http://jsfiddle.net/JyvbJ/

HTML:

<a href="#">Open Up</a>​

CSS:

a {
    position: absolute;
    top: 0;
    left: 0;
    width: 240px;
    height: 240px;
    border-radius: 120px;
    -moz-border-radius: 120px;
    -webkit-border-radius: 120px;
    -khtml-border-radius: 120px;
    font-size: 20px;
    line-height: 1;
    text-decoration: none;
    text-align: center;
    margin: 0 auto;
    display: table-cell;
    vertical-align: middle;
}

a:hover {
    color: #000;
    text-decoration: none;
    background-color: rgba(0,0,0,0.8);
    opacity: 1;
    display: block;
}​

它的样子(左:正常 | 右:悬停):

图片:

PS我不能有任何div,因为我希望整个圈子都可以作为链接点击。谢谢

4

3 回答 3

1

position: absolute不与display: table-cell. 删除它和规则display: block中的:hover,它可以工作。小提琴

于 2012-06-14T00:33:54.530 回答
0

line-height元素的 设置为等于height,即:line-height: 240px;

编辑:对于多行支持,将 aspan放在锚标记内,使用 设置样式display table-cell; height: 100%; vertical-align: middle;,并使用 设置包含锚标记的样式,如此display: table;所示。

于 2012-06-13T23:56:18.527 回答
0

尝试检查这篇文章。如果您愿意稍微更改代码,我认为这会有所帮助。没有它,我认为这是不可能的,除非你使用像 jquery 这样的东西。 这是文章的链接, 希望对你有帮助!

编辑:只是为了帮助你多一点:改变一个{位置:绝对;} 到 { display:table-cell; } 并删除行 a:hover { display: block }

于 2012-06-14T01:12:28.260 回答