如何在 CSS 框中对齐文本和图像?

发布于 2024-08-15 19:58:15 字数 486 浏览 3 评论 0 原文

我想在 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

图像正确居中,文本仅几乎正确居中。它位于图像的基线处。为什么?

I would like to vertically align some text and an image in a CSS box.

I tried several methods, here is the code for the last one I tried called "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> 

Here is a screenshot of the result in the newest version of Firefox: http://screencast.com/t/Yzg2MzAzNW

The image is centered correctly, the text is only centered nearly correctly. It sits at the baseline of the image. Why?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

夜空下最亮的亮点 2024-08-22 19:58:15

垂直对齐被彻底误解了。您读过此内容吗?

至于为什么文本位于图像的基线处,这是因为图像和文本都在div的流中。它们不会重叠。要使文本也居中(意味着它位于图像上方),您必须将文本放入 divspan 中,然后调整其位置(将其设置为相对并尝试左侧和顶部)。

干杯

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 a span and adjust its positioning (set it to relative and experiment with left and top).

Cheers

琉璃梦幻 2024-08-22 19:58:15

更改以下内容

<div style="border-color:blue; height:200px; display:table-cell; vertical-align:middle;">
2:38<img style="vertical-align:middle" src="images/stopwatch-button-play.png">
</div> 

change the following

<div style="border-color:blue; height:200px; display:table-cell; vertical-align:middle;">
2:38<img style="vertical-align:middle" src="images/stopwatch-button-play.png">
</div> 
向地狱狂奔 2024-08-22 19:58:15

您可以使用背景位置属性。

看起来像这样。

背景: url(path/to/image.whatever) 顶部; //将其与顶部对齐。

您甚至可以执行诸如 top lefttop 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 or top right etc.

w3schools has everything you need to know about backgrounds.

白衬杉格子梦 2024-08-22 19:58:15

如果您的文本只有一行高,您可以将行高设置为图像的高度。它将垂直居中文本。然后图像上的position:absolute将防止它干扰div中文本的位置:

<div style="border-color:blue; height:200px; ">
<div style="line-height:30px;margin-top:85px">2:38<img style="position:absolute" src="images/stopwatch-button-play.png"></div>
</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:

<div style="border-color:blue; height:200px; ">
<div style="line-height:30px;margin-top:85px">2:38<img style="position:absolute" src="images/stopwatch-button-play.png"></div>
</div> 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文