如何在所有屏幕尺寸的网页上居中图像

Posted

技术标签:

【中文标题】如何在所有屏幕尺寸的网页上居中图像【英文标题】:How to center images on a web page for all screen sizes 【发布时间】:2011-08-19 14:18:52 【问题描述】:

我的 html 有问题。我已经在互联网上搜索了所有内容,但仍然没有真正的答案。

我有一个包含一些图片的网站,我希望它们位于中间。现在,在我的屏幕上,它们在中间,但那是因为我通过将它们移到一侧来将它们放在那里。当我的朋友看它时,图像是偏离中心的。

Here's the website;如果您在 13.5 英寸的屏幕上,它看起来会在中间。

【问题讨论】:

投票转向网站管理员 stackexchange 网站,因为它更适合这个问题 bdonlan 投票支持移动您的问题;你不需要去找网站管理员,除非问题真的被移动了。问题将自动重定向。 @bdonlan 这是一个特定的 CSS 问题,而不是网站管理员问题。它应该留在这里。 @bdonlan - 这绝对是不是一个网站管理员的问题。 HTML 和 CSS 问题属于 SO。 我求求你:不要使用<center>。 CSS 有一个standardized way to do this since 1996,并且在大多数时间里浏览器支持一直很稳固。为什么要以你大半辈子已经过时的方式来做? 【参考方案1】:

试试这样的...

<div id="wrapper" style="width:100%; text-align:center">
<img id="yourimage"/>
</div>

【讨论】:

@connor.p np。不要忘记将最有帮助的帖子标记为答案。 +1 表示通用示例,而且,平心而论,我使用几乎相同的解决方案(除了我依赖display: block; 的默认行为)。 @connor.p,正如 Thomas 所说,请接受最有帮助的答案(如果您的问题已解决),如果您觉得其他答案有帮助,请考虑对这些答案进行投票... :)【参考方案2】:

文本对齐:居中

text-align:center 样式应用于包含元素的元素将使这些元素居中。

<div id="method-one" style="text-align:center">
  CSS `text-align:center`
</div>

Thomas Shields mentions this method



边距:0 自动

margin:0 auto 样式应用于块元素会将其置于其所在元素的中心。

<div id="method-two" style="background-color:green">
  <div style="margin:0 auto;width:50%;background-color:lightblue">
    CSS `margin:0 auto` to have left and right margin set to center a block element within another element.
  </div>
</div>

user1468562 mentions this method


中心标签

我最初的回答是你可以使用&lt;center&gt;&lt;/center&gt; 标签。为此,只需将您想要的内容放在标签之间居中即可。 As of HTML4, this tag has been deprecated,不过。 &lt;center&gt; 今天仍然得到技术支持(9 年后更新此内容),但我会推荐上面包含的 CSS 替代方案。

<h3>Method 3</h1>
<div id="method-three">
  <center>Center tag (not recommended and deprecated in HTML4)</center>
</div>

您可以在in this jsfiddle 看到这三个代码示例。

我决定我应该修改这个答案,因为我之前给出的答案已经过时了。当我建议它作为解决方案时,它已经被弃用了,这就是 9 年后现在避免它的更多理由。

【讨论】:

当然 &lt;center&gt; 有效,但它不是有效的 HTML5 - 随着浏览器摆脱旧的、不推荐使用的标签,这将成为一个问题。 哦,没问题 :) 请小心,预计 6 年后它可能不再起作用;) @DalexL HTML 不是一种语言,它是一种标记。而且 CSS 不是 HTML 的第三方,它们都是由 W3C 开发和维护的。他们齐头并进。 @Thomas 请注意写在“语言”一词之后的(标记)。然而,它是一种语言,而不是编程或脚本。 CSS 不是 HTML,HTML 不是 CSS。无论谁维护它们,它们都不相同。产品本身应该是功能齐全的,它们不应该强迫客户同时使用两者。如果是这样,为什么不将它们合并为一个呢?问题已经回答了,没必要发起火焰战争之类的事情了。 @DalexL aak 对不起,我错过了“标记”——我不是想打架。我只是指出 CSS 不再是 HTML 的“第三方”,就像 Paint 是 Windows 的第三方一样,这就是为什么有一个 HTML 样式标签仅用于实现 CSS。这就是为什么他们不赞成使用标记来使用标记并不完全奇怪,你知道吗?【参考方案3】:

在您的具体情况下,您可以将包含的 a 元素设置为:

a 
    display: block;
    text-align: center;

JS Bin demo.

【讨论】:

【参考方案4】:
<div style='width:200px;margin:0 auto;> sometext or image tag</div>

这是横向工作

【讨论】:

以上是关于如何在所有屏幕尺寸的网页上居中图像的主要内容,如果未能解决你的问题,请参考以下文章

为啥屏幕宽度低于 300px 时图像尺寸不减小?

如何在不同的屏幕尺寸上居中评论图标?

如何水平居中对齐标签以快速适应所有屏幕尺寸

使用自动布局居中以适用于所有屏幕尺寸?

居中图像 React Native 加载屏幕

如何使背景图像适合所有屏幕尺寸?