使用纯CSS即可实现此操作,甚至不需要媒体查询。
要使图像具有弹性,请简单地添加
max-width:100%
和height:auto
。 图像的max-width:100%
和height:auto
在IE7中有效,但在IE8中无效(是的,又是IE的另一个奇怪bug)。 要解决这个问题,您需要为IE8添加width:auto\9
。来源:http://webdesignerwall.com/tutorials/responsive-design-with-css3-media-queries
CSS:
img {
max-width: 100%;
height: auto;
width: auto\9; /* ie8 */
}
如果您想强制限制图片的最大宽度,只需将其放置在一个容器中,例如:
<div style="max-width:500px;">
<img src="..." />
</div>
这里有一个JSFiddle的例子。不需要JavaScript,在最新的Chrome、Firefox和IE浏览器版本中都可以正常工作(这是我测试过的所有版本)。
使用视口相关单位应该会使您的生活更轻松,假设我们有一张猫的图片:
现在我们想要将这只猫嵌入我们的代码中,同时保持纵横比:
img {
width: 100%;
height: auto;
}
<img src="https://www.petmd.com/sites/default/files/petmd-cat-happy-10.jpg" alt="cat">
到目前为止还不是很有趣,但如果我们想将猫的宽度更改为视口的最大50%怎么办?
img {
width: 100%;
height: auto;
/* Magic! */
max-width: 50vw;
}
<img src="https://www.petmd.com/sites/default/files/petmd-cat-happy-10.jpg" alt="cat">
同一张图片,但现在将其限制在最大宽度为50vw。 vw(=视口宽度)意味着根据提供的数字,图像将是视口的X宽度。这也适用于高度:
img {
width: auto;
height: 100%;
max-height: 20vh;
}
<img src="https://www.petmd.com/sites/default/files/petmd-cat-happy-10.jpg" alt="cat">
这将图像的高度限制在视口的最大20%。
window.onresize = function(){
var img = document.getElementById('fullsize');
img.style.width = "100%";
};
在IE浏览器中,onresize
事件会在每个像素变化(宽度或高度)时触发,因此可能会出现性能问题。通过使用javascript的window.setTimeout()函数来延迟图像调整大小几毫秒。
http://mbccs.blogspot.com/2007/11/fixing-window-resize-event-in-ie.html
.classname img{
resize: both;
width:50px;
height:25px;
}
您是否正在使用jQuery?
因为我在jQuery插件上进行了快速搜索,它们似乎有一些插件可以做到这一点,检查这个,应该可以解决问题:
http://plugins.jquery.com/project/jquery-afterresize
编辑:
这是CSS解决方案,我只需添加 style="width: 100%",至少在chrome和Safari中对我有效。我没有ie,所以请在那里测试,并让我知道,这是代码:
<div id="gallery" style="width: 100%">
<img src="images/fullsize.jpg" alt="" id="fullsize" />
<a href="#" id="prev">prev</a>
<a href="#" id="next">next</a>
</div>
起初,我使用以下的html/css代码:
img {
max-width: 100%;
height: auto;
width: auto\9; /* ie8 */
}
<div>
<img src="..." />
</div>
然后我像这样将<div>
添加了class="img"
:
<div class="img">
<img src="..." />
</div>
一切开始正常运行。
只需使用此代码。大多数人忘记指定最大宽度为图像的最大宽度。
img {
height: auto;
width: 100%;
max-width: 300px;
}
scale
属性来通过css调整图片大小:.image:hover {
-webkit-transform:scale(1.2);
transform:scale(1.2);
}
.image {
-webkit-transition: all 0.7s ease;
transition: all 0.7s ease;
}
更多阅读:
尝试一下
.img{
width:100vw; /* Matches to the Viewport Width */
height:auto;
max-width:100% !important;
}
只有在显示为块级元素和内联块级元素时才有效,这对于弹性项目没有影响,我刚刚花了很长时间才发现。