给定HTML:
<div id="title">Text</div>
<div class="circlecontainer">
<div class="circle">Hello</div>
</div>
和CSS:
div {
display: inline-block;
}
.circlecontainer {
background: #E0E;
text-align:center;
line-height:200px;
width:200px;
height:200px;
}
.circle {
width:100px;
height:100px;
border-radius: 50px;
font-size:20px;
color:#fff;
background:#000
}
.circle:hover {
width:200px;
height:200px;
border-radius: 100px;
}
JSFiddle:http://jsfiddle.net/S329D/4/
我希望黑色圆圈在没有悬停时垂直居中。
但是当我设置vertical-align:middle
时,文字看起来搞砸了:
为什么会这样?
答案 0 :(得分:2)
这是因为线高仍然是200px。试试这个:
div {
display: inline-block;
}
.circlecontainer {
background: #E0E;
text-align:center;
line-height:200px;
width:200px;
height:200px;
}
.circle {
line-height: 100px;
position: relative;
vertical-align: middle;
width:100px;
height:100px;
border-radius: 50px;
font-size:20px;
color:#fff;
background:#000
}
.circle:hover {
width:200px;
line-height: 200px;
height:200px;
border-radius: 100px;
}
答案 1 :(得分:0)
如果删除边框半径,则框不居中,因此圆圈也不居中
您需要使用margin-top
。我已编辑your fiddle
答案 2 :(得分:0)
只需在circle div元素中添加span标签,其样式为“vertical-align:middle;”并删除“vertical-align:middle;”圈子类。
<div class="circle">
<span style=" vertical-align: middle;">Hello</span>
</div>
问题是因为圆类改变的高度也会影响文本元素。有了跨度,它没有。
答案 3 :(得分:0)
只需在.circle中设置一个行高,然后按.circle:hover将其设置为行高。
.circle {
line-height:100px;
.circle:hover {
line-height:200px;