The simplest solution I found was to add this to my img-element:
style="display:block;margin:auto;"
It seems I don't need to add "0" before the "auto" as suggested by others. Maybe that is the proper way, but it works well enough for my purposes without the "0" as well. At least on latest Firefox, Chrome, and Edge.
There are three methods for centering an element that I can suggest:
Using the text-align
property
.parent {_x000D_
text-align: center;_x000D_
}
_x000D_
<div class="parent">_x000D_
<img src="https://placehold.it/60/60" />_x000D_
</div>
_x000D_
Using the margin
property
img {_x000D_
display: block;_x000D_
margin: 0 auto;_x000D_
}
_x000D_
<img src="https://placehold.it/60/60" />
_x000D_
Using the position
property
img {_x000D_
display: block;_x000D_
position: relative;_x000D_
left: -50%;_x000D_
}_x000D_
.parent {_x000D_
position: absolute;_x000D_
left: 50%;_x000D_
}
_x000D_
<div class="parent">_x000D_
<img src="https://placehold.it/60/60" />_x000D_
</div>
_x000D_
The first and second methods only work if the parent is at least as wide as the image. When the image is wider than its parent, the image will not stay centered!!!
But: The third method is a good way for that!
Here's an example:
img {_x000D_
display: block;_x000D_
position: relative;_x000D_
left: -50%;_x000D_
}_x000D_
.parent {_x000D_
position: absolute;_x000D_
left: 50%;_x000D_
}
_x000D_
<div class="parent">_x000D_
<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" />_x000D_
</div>
_x000D_
img{
display: block;
margin-right: auto;
margin-left: auto;
}
Use:
<dev class="col-sm-8" style="text-align: center;"><img src="{{URL('image/car-trouble-with-clipping-path.jpg')}}" ></dev>
I think this is the way to center an image in the Laravel framework.
I would use a div to center align an image. As in:
<div align="center"><img src="your_image_source"/></div>
If you are using a class with an image then the following will do
class {
display: block;
margin: 0 auto;
}
If it is only an image in a specific class that you want to center align then following will do:
class img {
display: block;
margin: 0 auto;
}
Sometimes we directly add the content and images on the WordPress administrator inside the pages. When we insert the images inside the content and want to align that center. Code is displayed as:
**<p><img src="https://abcxyz.com/demo/wp-content/uploads/2018/04/1.jpg" alt=""></p>**
In that case you can add CSS content like this:
article p img{
margin: 0 auto;
display: block;
text-align: center;
float: none;
}
Actually, the only problem with your code is that the text-align
attribute applies to text (yes, images count as text) inside of the tag. You would want to put a span
tag around the image and set its style to text-align: center
, as so:
span.centerImage {_x000D_
text-align: center;_x000D_
}
_x000D_
<span class="centerImage"><img src="http://placehold.it/60/60" /></span>
_x000D_
The image will be centered. In response to your question, it is the easiest and most foolproof way to center images, as long as you remember to apply the rule to the image's containing span
(or div
).
I came across this post, and it worked for me:
img {_x000D_
position: absolute;_x000D_
top: 0;_x000D_
bottom: 0;_x000D_
left: 0;_x000D_
right: 0;_x000D_
margin: auto;_x000D_
}
_x000D_
<div style="border: 1px solid black; position:relative; min-height: 200px">_x000D_
<img src="https://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-icon.png?v=c78bd457575a">_x000D_
_x000D_
</div>
_x000D_
(Vertical and horizontal alignment)
display: block
with margin: 0
didn't work for me, neither wrapping with a text-align: center
element.
This is my solution:
img.center {
position: absolute;
transform: translateX(-50%);
left: 50%;
}
Only if you need to support ancient versions of Internet Explorer.
The modern approach is to do margin: 0 auto
in your CSS.
Example here: 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;
}
The only issue here is that the width of the paragraph must be the same as the width of the image. If you don't put a width on the paragraph, it will not work, because it will assume 100% and your image will be aligned left, unless of course you use text-align:center
.
Try out the fiddle and experiment with it if you like.
To center an image with CSS.
img{
display: block;
margin-left: auto;
margin-right: auto;
}
You can learn more here
You can use text-align: center
on the parent and change the img
to display: inline-block
→ it therefore behaves like a text-element and is will be centered if the parent has a width!
img {
display: inline-block
}
One more way to scale - display it:
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 */
}
Another way of doing it would be centering an enclosing paragraph:
<p style="text-align:center; border:1px solid black"><img src="https://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-icon.png?v=c78bd457575a"></p>
_x000D_
You can do:
<center><img src="..." /></center>
To center a non background image depends on whether you want to display the image as an inline (default behavior) or a block element.
Case of inline
If you want to keep the default behavior of the image's display CSS property, you will need to wrap your image inside another block element to which you must set text-align: center;
Case of block
If you want to consider the image as a block element of its own, then text-align
property does not make a sens, and you should do this instead:
IMG.display {
display: block;
margin-left: auto;
margin-right: auto;
}
The answer to your question:
Is the property text-align: center; a good way to center an image using CSS?
Yes and no.
text-align
property: and may be you would not like this side effect.References
I discovered that if I have an image and some text inside a div
, then I can use text-align:center
to align the text and the image in one swoop.
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
If you want to set the image as the background, I've got a solution:
.image {
background-image: url(yourimage.jpg);
background-position: center;
}
Simply change parent align :)
Try this one on parent properties:
text-align:center
That doesn't always work... if it doesn't, try:
img {
display: block;
margin: 0 auto;
}
Use this to your img
CSS:
img {
margin-right: auto;
margin-left: auto;
}
.img-container {
display: flex;
}
img {
margin: auto;
}
this will make the image center in both vertically and horizontally
On the container holding image you can use a CSS 3 Flexbox to perfectly center the image inside, both vertically and horizontally.
Let's assume you have <div class="container"> as the image holder:
Then as CSS you have to use:
.container {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
}
And this will make all your content inside this div perfectly centered.
Source: Stackoverflow.com