我想知道是否有可能在一个div内部保持一个img始终居中,无论浏览器大小如何?通过居中我的意思是图像的左/右侧被裁剪以确保图像保持居中而不修改高度.此外,当浏览器宽度小于图像宽度时,是否可以防止出现水平滚动条?
我确信如果我的图像位于CSS中的background-url标记中,这很容易做到,但由于此图像位于SlidesJS轮播内,因此图像必须来自img标记.
目前,我使用了margin:0 auto;只要浏览器宽度大于图像,就保持图像居中.一旦浏览器宽度缩小,图像就不会随着缩小的浏览器大小而调整大小.我还没有弄清楚当浏览器宽度太小时如何删除水平滚动条.
这就是我想要实现的目标:http://imgur.com/Nxh5n
这是页面布局的示例:http://imgur.com/r9tYx
我的代码示例:http://jsfiddle.net/9tRZG/
HTML:
- <div id="wrapper">
- <div id="slides">
- <div class="slides_container">
- <div class="slide"> <!-- Carousel slide #1 -->
- <img src="http://www.placehold.it/200x50/">
- </div>
- <div class="slide"> <!-- Carousel slide #1 -->
- <img src="http://www.placehold.it/200x50/">
- </div>
- <div class="slide"> <!-- Carousel slide #1 -->
- <img src="http://www.placehold.it/200x50/">
- </div>
- </div>
- </div>
- </div>
CSS:
- #wrapper {
- width: 200px;
- margin: 0 auto;
- }
解决方法
试试这个:
http://jsfiddle.net/9tRZG/1/
- #wrapper {
- max-width: 200px; /* max-width doesn't behave correctly in legacy IE */
- margin: 0 auto;
- }
- #wrapper img{
- width:100%; /* the image will now scale down as its parent gets smaller */
- }
-
要裁剪边缘,可以执行以下操作:http://jsfiddle.net/9tRZG/2/
- #wrapper {
- max-width: 600px; /* so this will scale down when the screen resizes */
- margin: 0 auto;
- overflow:hidden; /* so that the children are cropped */
- border:solid 1px #000; /* you can remove this,I'm only using it to demonstrate the bounding Box */
- }
- #wrapper .slides_container{
- width:600px; /* static width here */
- position:relative; /* so we can position it relative to its parent */
- left:50%; /* centering the Box */
- margin-left:-300px; /* centering the Box */
- }
- #wrapper img{
- display:block; /* this allows us to use the centering margin trick */
- margin: 2px auto; /* the top/bottom margin isn't necessary here,but the left/right is */
- }