How to center a (background) image within a div?
#doit {
background: url(url) no-repeat center;
}
try background-position:center;
EDIT: since this question is getting lots of views, its worth adding some extra info:
text-align: center
will not work because the background image is not part of the document and is therefore not part of the flow.
background-position:center
is shorthand for background-position: center center
; (background-position: horizontal vertical
);
Use background-position:
background-position: 50% 50%;
For center or positioning the background image you should use background-position
property .
The background-position property sets the starting position of a background image from top
and left
sides of the element .
The CSS Syntax is background-position : xvalue yvalue;
.
"xvalue" and "yvalue" supported values are length units like px
and percentage and direction names like left, right and etc .
The "xvalue" is the horizontal position of the background and starts from top of the element . It means if you use 50px
it will be "50px" away from top of the elements . And "yvalue" is the vertical position that has the same condition .
So if you use background-position: center;
your background image will be centered .
But I always use this code :
.yourclass {
background: url(image.png) no-repeat center /cover;
}
I know it is so confusing but it means :
.yourclass {
background-image: url(image.png);
background-position: center;
background-size: cover;
background-repeat: no-repeat;
}
And I know that too the background-size
is a new property and in the compressed code what is /cover
but these codes means fill
background sizing and positioning in windows desktop background .
You can see more details about background-position
in here and background-size
in here .