如何在 CSS 框中对齐文本和图像?
我想在 CSS 框中垂直对齐一些文本和图像。
我尝试了几种方法,这是我尝试的最后一种方法的代码,称为“display:table-cell-method”,
<div style="border-color:blue; height:200px; display:table-cell; vertical-align:middle;">
2:38<img src="images/stopwatch-button-play.png">
</div>
这是最新版本的 Firefox 中结果的屏幕截图:http://screencast.com/t/Yzg2MzAzNW
图像正确居中,文本仅几乎正确居中。它位于图像的基线处。为什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
垂直对齐被彻底误解了。您读过此内容吗?
至于为什么文本位于图像的基线处,这是因为图像和文本都在div的流中。它们不会重叠。要使文本也居中(意味着它位于图像上方),您必须将文本放入
div
或span
中,然后调整其位置(将其设置为相对并尝试左侧和顶部)。干杯
vertical alignment is thoroughly misunderstood. Have you read this?
as for why the text sites at the baseline of the image, it is because the image and the text are both in the flow of the div. they will not overlap. to have the text centered too (implying it lies over the image), you will have to put the text into a
div
or aspan
and adjust its positioning (set it to relative and experiment with left and top).Cheers
更改以下内容
change the following
您可以使用背景位置属性。
看起来像这样。
背景: url(path/to/image.whatever) 顶部; //将其与顶部对齐。
您甚至可以执行诸如
top left
或top right
等操作。w3schools 拥有您需要了解的有关背景的所有信息。
You can use the background-position property.
it looks like this.
background: url(path/to/image.whatever) top; //aligns it to the top.
you can even do something like
top left
ortop right
etc.w3schools has everything you need to know about backgrounds.
如果您的文本只有一行高,您可以将行高设置为图像的高度。它将垂直居中文本。然后图像上的position:absolute将防止它干扰div中文本的位置:
If your text is only one line high, you can set line-height to the height of your image. It will center the text vertically. Then position:absolute on your image will prevent it from disturbing the positioning of the text in the div: