更新时间:2022-10-16 09:12:53
查看: http://jsfiddle.net/thirtydot/x62nV/(和无 overflow:hidden
即可轻松查看
$ c> .imageContainer> span , margin-left
源自 width
$ c> width 是控制将支持的最大图像宽度的任意数字。你可以设置 width:10000px;
< div class =imageContainer>
< span>< img src =http://dummyimage.com/100x100/f0f/fff/>< / span>
< / div>
CSS:
.imageContainer {
border:1px solid#444;
overflow:hidden;
width:100px;
height:100px;
margin:15px;
text-align:center;
}
.imageContainer> span {
display:block;
width:1000px;
margin-left:-450px; / * - (width-container width)/ 2 * /
}
.imageContainer> span> img {
display:inline-block;
}
I have a div with width:100px and height:100px (say) Inside that, there is just an image, for which height is always fixed to 100px.
I want to make the image horizontally center.
Here there are 3 cases:
I want the center part of the image to be visible inside the div.
means, if image's width is 120px.. and as div's width is 100px and overflow:hidden I want image's 10th px to 110th px to be visible (so, the left 10px and right 10px of image are hidden under the div )
Is this possible through some CSS property? (I dont know the width of image which is loading! so I want it to be dynamic. Also want to avoid javascript side calculations to find the extra amount of width and giving margin-left: -ve value bla bla.. )
Also, I can't give the image as background-image for the div!
See: http://jsfiddle.net/thirtydot/x62nV/ (and without overflow: hidden
to easily see the centering)
This will work in all browsers, with the possible exception of IE6.
For .imageContainer > span
, the margin-left
is derived from the width
, and the width
is an arbitrary number which controls the maximal image width that will be supported. You could set width: 10000px; margin-left: -4950px;
to support really wide images, if required.
HTML:
<div class="imageContainer">
<span><img src="http://dummyimage.com/100x100/f0f/fff" /></span>
</div>
CSS:
.imageContainer {
border: 1px solid #444;
overflow: hidden;
width: 100px;
height: 100px;
margin: 15px;
text-align: center;
}
.imageContainer > span {
display: block;
width: 1000px;
margin-left: -450px; /* -(width-container width)/2 */
}
.imageContainer > span > img {
display: inline-block;
}