使用内联块元素上的box-align垂直居中文本

时间:2012-07-18 06:50:22

标签: html firefox css3 webkit

我试图将文本垂直居中在一个内联块元素中(特别是在webkit浏览器中)。几乎就是< button>元素开箱即用。

我尝试使用box-align,就像这个问题Vertical align text in block element一样,但我不想在元素上设置显式宽度:我希望它适合其内容,即我想要显示:内联块类型行为。

在Firefox中,-moz-box似乎按我想要的方式运行,但在Safari和Chrome中,-webkit-box使div想要水平填充其容器。

[oops,不能发布图片,因为我是菜鸟]

使用各种设置的示例来设置here

在实际的< button>上查看webkit的检查器element,它默认显示:inline-block,但它服从-webkit-box-align,好像它被设置为display:-webkit-box。请参阅fiddle我明确设置display:inline-block和-webkit-box-align:end on< button>演示。

似乎通过添加额外的< div>在混合中,我可以得到我想要的行为,但我真的不愿意这样做。我也知道显示器:用于垂直居中的table-cell技术;这不合适,因为它有其他副作用。

webkit的行为是否正确? < button>如何?元素执行什么< div>不能?是否有一些我没有发现的引擎盖下的webkit CSS属性可以使< div>表现得像< button>?甚至更好,任何跨浏览器的方式这样做?

1 个答案:

答案 0 :(得分:2)

使用css的line-height属性。使它等于包含文本的框的高度。

http://www.w3schools.com/cssref/pr_dim_line-height.asp