html5 怎么让图片自适应

html-css08

html5 怎么让图片自适应,第1张

图片分为背景图片和通过img标签引入的图片,前者可以通过media query自动的切换不同分辨率的版本,但是在不支持background image size的浏览器中背景图片无法无级的调整大小(也就是在media query切换css的点上可以换一张不同分辨率的图,但是没法儿获得两张分辨率中间大小的版本),而且在很多情况下(比如cms中)并不适合用背景图片。

如果是img标签引入的图片,可以使用延迟加载的方式来加载,在实际加载图片之前先用js检查窗口宽度,然后加载不同分辨率的图片,比如宽度<=480,就加载80px宽度的图片,480 <宽度 <= 768,加载120px的图片, 宽度>768则加载160px的图片,如果宽度是600px怎么办呢,通过百分比来缩放120px的图片达到合适的结果。

这样做的好处是对于移动设备来说,下载的图片会小一些,减少网页加载的时间。但是问题是竖屏向横屏切换或者扩大浏览器窗口宽度时图片会由于放大而产生一定的模糊感。

响应式设计中对于图片的考虑应该从布局设计就开始,尽量使图片在各个窗口宽度下的尺寸不要相差过大,通过排布更多的内容而不是扩大图片的尺寸来填充由于浏览器窗口扩大带来的空间。这样可以有效的减少图片放大模糊的问题。

直接float就可以了

ul, ul li{

box-sizing:border-box

-moz-box-sizing:border-box

-webkit-box-sizing:border-box

}

ul li{display:inlinefloat:leftwidth:50%height:100pxpadding:0 10px}

<ul>

<li></li>

<li></li>

<li></li>

<li></li>

<li></li>

</ul>

可以这么写试试看,图片直接设置为display:block如果宽度是根据窗口缩放的话,可以直接设置为100%;如果定宽就写margin:0 auto图片就是居中的。

网页设计标准尺寸:800*600下,网页宽度保持在778以内,就不会出现水平滚动条,高度则视版面和内容决定。

如果是大屏幕设备,则向页面head部分中添加BASE标记,并将后续的图片、脚本和样式表加载请求定向到一个虚拟路径"/rwd-router"。

当这些请求到达服务器端,htacces文件会决定这些请求所需要的是原始图片还是小尺寸的"响应式图片",并进行相应的反馈输出。对于小屏幕的移动设备,原始尺寸的大图片永远不会被用到。

通过液态网格和液态图片技术,并且在正确的地方使用了正确的HTML标记。

响应式图片技术思想:不仅要同比的缩放图片,还要在小设备上降低图片自身的分辨率。这个技术的实现需要使用几个相关文件,我们可以在Github上获取。

包括一个JavaScript文件(rwd-images.js),一个.htaccess文件,以及一些范例资源文件。大致的原理是,rwd-images.js会检测当前设备的屏幕分辨率。