属性text-align: center;一个好方法来中心使用CSS图像?
img {
text-align: center;
}
属性text-align: center;一个好方法来中心使用CSS图像?
img {
text-align: center;
}
除非你需要支持旧版的ie浏览器。
现代的方法是在CSS中使用margin: 0 auto。
例如:http://jsfiddle.net/bKRMY/
HTML:
<p>Hello the following image is centered</p>
<p class="pic"><img src="https://twimg0-a.akamaihd.net/profile_images/440228301/StackoverflowLogo_reasonably_small.png"/></p>
<p>Did it work?</p>
CSS:
p.pic {
width: 48px;
margin: 0 auto;
}
这里唯一的问题是,段落的宽度必须与图像的宽度相同。如果你没有在段落上设置宽度,它将不起作用,因为它将假设100%并且你的图像将向左对齐,当然除非你使用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 >
我看到了这个帖子,它对我很有用:
img { 位置:绝对的; 上图:0; 底部:0; 左:0; 右:0; 保证金:汽车; } < span style=" font - family:宋体;"位置:相对;最小高度:200 px”> < img src = " https://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-icon.png?v=c78bd457575a " > < / div >
(纵横对齐)
实际上,代码的唯一问题是text-align属性应用于标记内的文本(是的,图像也算作文本)。你会想在图像周围放置一个span标签,并将其样式设置为text-align: center,如下所示:
跨度。centerImage { text-align:中心; } <span class="centerImage"><img src="http://placehold. "它/ 60/60 " / > < / span >
图像将居中。对于您的问题,这是最简单、最简单的居中图像的方法,只要您记得将该规则应用于图像的包含span(或div)。
不是recommendad:
另一种方法是将一个封闭段落居中: <p style="text-align:center"><img src="https://via.placeholder.com/300"></p> .
更新:
如果你想开始学习HTML/CSS,我上面的答案是正确的,但它没有遵循最佳实践
如果你正在使用一个带有图像的类,那么下面的步骤就可以了
class {
display: block;
margin: 0 auto;
}
如果它只是一个图像在一个特定的类,你想居中对齐,那么下面将做:
class img {
display: block;
margin: 0 auto;
}
你可以在父元素上使用text-align: center,并将img更改为display: inline-block→,因此它的行为就像一个文本元素,如果父元素有宽度,它将居中!
img {
display: inline-block
}
另一种缩放方法-显示它:
img {
width: 60%; /* Or required size of image. */
margin-left: 20% /* Or scale it to move image. */
margin-right: 20% /* It doesn't matters much if using left and width */
}
我建议有三种方法来居中一个元素:
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 >
边框为0的Display: block和text-align: center元素都不适合我。
这是我的解决方案:
img.center {
position: absolute;
transform: translateX(-50%);
left: 50%;
}
大多数浏览器都支持translateX
如果你想将图像设置为背景,我有一个解决方案:
.image {
background-image: url(yourimage.jpg);
background-position: center;
}
将非背景图像居中取决于您想要将图像显示为内联(默认行为)还是块元素。
内联情况
如果你想保持图像的CSS属性的默认行为,你需要将你的图像包装在另一个块元素中,你必须设置text-align: center;
块格
如果你想把图像看作一个单独的块元素,那么text-align属性没有意义,你应该这样做:
IMG.display {
display: block;
margin-left: auto;
margin-right: auto;
}
你问题的答案是:
属性text-align: center;将图像居中的好方法 使用CSS呢?
是也不是。
是的,如果图像是其包装器中的唯一元素。 不,如果你在图像的包装器中有其他元素,因为所有的子元素都是图像的兄弟姐妹,将继承text-align属性:并且可能你不喜欢这个副作用。
参考文献
内联元素列表 定心的事情
在容器保存图像上,您可以使用css3 Flexbox来完美地将图像置于垂直和水平的中心。
让我们假设你有<div class="container">作为图像持有人:
然后作为CSS,你必须使用:
.container {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
}
这将使这个div中的所有内容完全居中。
我发现,如果我在一个div中有一个图像和一些文本,那么我可以使用text-align:center一次性对齐文本和图像。
HTML:
<div class="picture-group">
<h2 class="picture-title">Picture #1</h2>
<img src="http://lorempixel.com/99/100/" alt="" class="picture-img" />
<p class="picture-caption">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Temporibus sapiente fuga, quia?</p>
</div>
CSS:
.picture-group {
border: 1px solid black;
width: 25%;
float: left;
height: 300px;
#overflow:scroll;
padding: 5px;
text-align:center;
}
CodePen: https://codepen.io/artforlife/pen/MoBzrL?editors=1100
有时我们直接在WordPress管理员的页面中添加内容和图像。当我们将图像插入到内容中并想要对齐该中心时。代码显示为:
**<p><img src="https://abcxyz.com/demo/wp-content/uploads/2018/04/1.jpg" alt=""></p>**
在这种情况下,你可以像这样添加CSS内容:
article p img{
margin: 0 auto;
display: block;
text-align: center;
float: none;
}
Use:
<dev class="col-sm-8" style="text-align: center;"><img src="{{URL('image/car-trouble-with-clipping-path.jpg')}}" ></dev>
我认为这是在Laravel框架中将图像居中的方法。
我找到的最简单的解决方案是添加到我的img-element:
style="display:block;margin:auto;"
看来我不需要像别人建议的那样在auto前面加0。也许这是正确的方法,但对于我的目的来说,没有“0”也足够了。至少在最新的Firefox、Chrome和Edge上是这样。
用CSS将图像居中。
img{
display: block;
margin-left: auto;
margin-right: auto;
}
你可以在这里了解更多
使用网格来堆叠图像。这很简单,这是代码
.grid {
display:grid;
}
.grid img {
display:block;
margin:0 auto;
}
如果您希望将图像垂直和水平地居中,而不考虑屏幕大小,您可以尝试此代码
img{
display: flex;
justify-content:center;
align-items: center;
height: 100vh;
}
如果你的img元素在一个div中,它本身在另一个div中,它的显示被设置为flexbox,就像我这里的例子: (HTML)
<nav class="header">
<div class="image">
<img
src=troll
alt="trollface"
></img>
</div>
<div class="title">
Meme Generator
</div>
<div class="subtitle">
React Course - Project 3
</div>
</nav>
(CSS)
.header{
display: flex;
}
.image{
width: 5%;
height: 100%;
}
.image > img{
width: 100%;
}
你可以这样设置你的。image div垂直对齐:
.image{
width: 5%;
height: 100%;
align-self: center;
}