这其中,遇到了网站图片尺寸问题,手机屏幕都比较小,怎么让上传的规则不一的图片在手机上显示的更加美观呢?
那就利用css的强大功能吧。
先附上代码:
img
{
max-width:500px
myimg:expression(onload=function(){
this.style.width=(this.offsetWidth
>
500)?”500px”:”auto”}
)
}
解析下其中的几个数字吧。
这里规定了最大尺寸是宽500px,超过500px
则自动等比例缩小到500px
上面这段代码可能在某些浏览器下效果不好,比如存在高度不自动缩放等问题
那么可以试试下面的代码
我们再附上一段代码,对全局都是有效,如果是针对正文内容,在img前加个限制
比如我下面写的,否则可能导致logo等图片变形
.context
img{
max-width:500px
//IE7、FF等其他非IE浏览器下最大宽度为500px
width:500px
//所有浏览器中图片的大小为500px
width:expression(document.body.clientWidth>300?”300px”:”auto”)
//当图片大小大于500px,自动缩小为500px
overflow:hidden
}
有几个方法,各有优劣 你自己斟酌,部分也说不细需要你自己百度具体做法:
定死宽高中的一个,另一个未定死的数值就会按比例来,如果多了overflow切掉,好处是容易操作,兼容性好,坏处很多,图片内容不能全部展示、可能切掉希望展示的内容只适用于很少情况。
设为背景图使用css3的background-size配合background-position来解决,contain和cover两个值效果不错,基本能解决你想要的所有效果,缺点是不兼容低版本浏览器、需要通过内联css样式解决、不是img标签浏览器搜索引擎不友好、不符合HTML语义化标准。
使用css3的flex定位,网上有具体的操作,一时说不明白都是用得到的时候自己去搜。好处是完全语义化符合标准,基本能解决你的问题,缺点是,学习成本高,兼容性稍差,有些手机上表现有问题。
js方案,都js了自己写就是了。缺点是需要用js,写不好会有bug,相对麻烦一些,加载时候页面可能会有抖动。
服务器方案,客户上传的图片到服务器走一圈,做成自己希望的大小,而且有一个服务器插件不仅可以截取到目的大小而且还能针对图片内容截取(例如尽可能保留人物面部、智能判断页面重点),这个试过效果很不错,不过具体哪个插件不记得了,估计搜也能搜到。优点是比较智能自己设置好了几乎完美,几乎不再需要麻烦的css,页面也相对比较规整,缺点是需要服务器端支持。
如果可以比拘泥于容器,让容器兼容图片,网上有很多的gallery插件,类似谷歌图片,摆布也不错,优点是不用考录图片和div的问题了,缺点是需要从新设计及相关技术....
设置对应图片的width和htight的具体数值就可以了。举例一个:1
2
3
4
5
6
img{
width:auto
height:auto
max-width:100%
max-height:100%
}
这样设置图片的话,可以使图片在指定的空间内缩放。
举例:
1
2
3
4
<div style="width:50pxheight:40px">
<img src="a.jpg">
<!--这里我们假如图片的实际尺寸是320X320-->
</div>
根据上面4个css可以知道:
图片被缩放后在div的尺寸是:
width:50px(因为图片的width:100%)
height:50px(这里height是在width:100%被缩放后的尺寸。)
我们可以发现这个50px的高度仍然超出了div的40px的高度,不符合max-height
这个时候,max-height:100%就会发挥作用,
在max-height:100%的作用下,图片被缩放后在div的尺寸是:
width:40px
height:40px
这个尺寸符合max-height和max-width