属性text-align: center;一个好方法来中心使用CSS图像?

img {
    text-align: center;
}

当前回答

这将不起作用,因为text-align属性适用于块容器,而不是内联元素,而img是一个内联元素。请参阅W3C规范。

用这个代替:

img。中心{ 显示:块; 保证金:0自动; } < span style=" font - family:宋体;"> <img class="center" src ="https://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-icon.png?v=c78bd457575a"> < / div >

其他回答

在容器保存图像上,您可以使用css3 Flexbox来完美地将图像置于垂直和水平的中心。

让我们假设你有<div class="container">作为图像持有人:

然后作为CSS,你必须使用:

.container {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
}

这将使这个div中的所有内容完全居中。

我建议有三种方法来居中一个元素:

Using the text-align property .parent { text-align: center; } <div class="parent"> <img src="https://placehold.it/60/60" /> </div> Using the margin property img { display: block; margin: 0 auto; } <img src="https://placehold.it/60/60" /> Using the position property img { display: block; position: relative; left: -50%; } .parent { position: absolute; left: 50%; } <div class="parent"> <img src="https://placehold.it/60/60" /> </div>


第一种和第二种方法只在父元素至少和图像一样宽的情况下才有效。当图像比其父图像宽时,图像将不会保持居中!!

但是: 第三种方法是一个很好的方法!

这里有一个例子:

img { 显示:块; 位置:相对; 左:-50%; } .parent { 位置:绝对的; 左:50%; } < div class = "父" > <img src="http://imgsv.imaging.nikon.com/lineup/lens/zoom/normalzoom/af-s_dx_18-140mmf_35-56g_ed_vr/img/sample/img_01.jpg" /> < / div >

你可以:

<中心> < img src = "…"/ > < /中心>

实际上,代码的唯一问题是text-align属性应用于标记内的文本(是的,图像也算作文本)。你会想在图像周围放置一个span标签,并将其样式设置为text-align: center,如下所示:

跨度。centerImage { text-align:中心; } <span class="centerImage"><img src="http://placehold. "它/ 60/60 " / > < / span >

图像将居中。对于您的问题,这是最简单、最简单的居中图像的方法,只要您记得将该规则应用于图像的包含span(或div)。

将非背景图像居中取决于您想要将图像显示为内联(默认行为)还是块元素。

内联情况

如果你想保持图像的CSS属性的默认行为,你需要将你的图像包装在另一个块元素中,你必须设置text-align: center;

块格

如果你想把图像看作一个单独的块元素,那么text-align属性没有意义,你应该这样做:

IMG.display {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

你问题的答案是:

属性text-align: center;将图像居中的好方法 使用CSS呢?

是也不是。

是的,如果图像是其包装器中的唯一元素。 不,如果你在图像的包装器中有其他元素,因为所有的子元素都是图像的兄弟姐妹,将继承text-align属性:并且可能你不喜欢这个副作用。

参考文献

内联元素列表 定心的事情