我正在尝试制作一个基本的CSS按钮。
我在尝试将文本垂直和水平放置在按钮中心时遇到错误。我有以下html。
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
#button
{
background:lightblue;
border-radius: 30px;
width: 15em;
height: 3em;
position:relative;
}
h1 {
vertical-align: center;
text-align: center;
}
</style>
<title>Making a button...</title>
</head>
<body>
<div id="button"><h1>Click Me</h1></div>
</body>
</html>
jsfiddle这个问题:http://jsfiddle.net/CRpvr/
我被告知有一个使用line-height: 100%
的解决方法,但如果我需要多行,这不能很好地工作。什么是最恰当和恰当的方法来实现这一目标?
答案 0 :(得分:4)
答案 1 :(得分:4)
添加display: table-cell; vertical-align: middle
可能适合您。
jsfiddle:http://jsfiddle.net/CRpvr/7/
答案 2 :(得分:4)
简单地改变&#34;身高&#34;在您的按钮ID中,以#34;行高&#34;。我查了一下它就有效了。
答案 3 :(得分:1)
只需在id =“button”上设置填充而不是高度,如下所示:
#button
{
background:lightblue;
border-radius: 30px;
width: 15em;
padding:1em;
position:relative;
}
这将在div上创建一个顶部和底部填充,并将顶部和底部的距离与您的措辞分开。这也消除了对h1 CSS标记中的vertical align属性的需要。
答案 4 :(得分:0)
将line-height:3em;
添加到#button
样式。使其值与高度相同。如果您需要两条线,请将其设置为高度的一半,依此类推。只需确保使font-size
越小,就越多。
如果你想保持font-size
相同,你可以通过将高度调整为你拥有的线数来使按钮更高。
答案 5 :(得分:0)
只需将容器设置为正确的高度,然后以这种方式垂直对齐::
<style type="text/css">
#button
{
background:lightblue;
border-radius: 30px;
width: 15em;
height: 3em;
line-height: 3em; /* <-- this was it ! */
vertical-align: middle;
position:relative;
}
h1 {
vertical-align: middle;
/*vertical-align: center;*/ /* w.t.f? */
text-align: center;
}
</style>
PS,验证你的CSS:vertical-align:center不正确???