How do I get an image to stay centered when its fluid width (percentage based) container is too small to show the whole image?
You might have a container that holds some content such as two We'll name outer rectangle Since we're dealing with percentages and probably working with a responsive design, this may not always be the case. If If the most interesting part of Fortunately, a solution is possible. Even better, no extra markup is required.
.container, the inner rectangle .content and the image img. This arrangement is perfectly fine, as long as .content is always wider than img. When It Breaks
.content is ever thinner than img, cropping will occur:
The Problem
img is in the center, we need to get the browser to crop both edges evenly - leaving the best part of it visible, no matter what width of .content is.
The Solution
.content {
width: 90%; /* or whatever is required */
text-align: center; /* ensures the image is always in the h-middle */
overflow: hidden; /* hide the cropped portion */
}
img {
position: relative; /* allows repositioning */
left: 100%; /* move the whole width of the image to the right */
margin-left: -200%; /* magic! */
}