Reputation: 17
When I zoom out to 67% on my browser the image will appear at the bottom of the page as I want to appear when the page is not zoomed out when its normal (screenshot).
But the image appear like this on my page as normal view.
This is my CSS
.fix {
position: relative;
left: 30%;
bottom: 10%;
}
Upvotes: 1
Views: 134
Reputation: 535
To center a element in the page, you should use this CSS :
.element {
position: relative;
left: 50%;
-webkit-transform: translateX(-50%);
-moz-transform: translateX(-50%);
-ms-transform: translateX(-50%);
transform: translateX(-50%);
}
It also works with position: absolute
and position: fixed
properties.
The left: 50%
property will center the left side of the .element
to the horizontal center of the page.
The transform: translateX(-50%)
property will translate the .element
50% of its width to the left (because of the negative value).
This way, the .element
will always be horizontally centered no matter what its width is.
The next problem you show on the image, is that it overlap the text. To avoid it, you should place this element after the text.
Here is an example :
.fix {
position: absolute;
bottom: 0;
left: 50%;
-webkit-transform: translateX(-50%);
-moz-transform: translateX(-50%);
-ms-transform: translateX(-50%);
transform: translateX(-50%);
}
body {
position: relative;
padding-bottom: 100px; /* height of the image */
}
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<img src="http://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-logo-med.png" alt="Stack Overflow" class="fix" />
Another example if you want the image to be fixed at the bottom :
.fix {
position: fixed;
bottom: 0;
left: 50%;
-webkit-transform: translateX(-50%);
-moz-transform: translateX(-50%);
-ms-transform: translateX(-50%);
transform: translateX(-50%);
}
body {
position: relative;
padding-bottom: 100px; /* height of the image */
}
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<img src="http://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-logo-med.png" alt="Stack Overflow" class="fix" />
Upvotes: 1
Reputation: 3142
Given the fact that the text is black and the image has also black content, try to keep it as a img
element and not as a background image.
You can try to add a padding-bottom
to the img
's parent element equals to the height
of the image.
Upvotes: 0