响应式图像正确设置方法,代码如下:
PC,平板,手机显示良好:
我们用<picture>标签来实现同时适配不同像素密度、不同大小的屏幕。srcset
属性用来指定多张图像,适应不同像素密度的屏幕。
通过 媒体查询,来为不同宽度的屏幕设置不同的图片。
其中,1x 2x 3x 代表设备像素比。
通常 pc的设备像素比为1,iphone7为2,iphone7 plubs为3,一些手机为4,还有一些为1.5,3.65等非整数值。
在下面,所有的设备像素比都要用同一张图片,这样才能显示正常。
<picture> <source srcset="res/static/img/banner1-1920.jpg, res/static/img/banner1-1920.jpg 2x, res/static/img/banner1-1920.jpg 3x, res/static/img/banner1-1920.jpg 4x" media="(min-width: 1920px)"> <source srcset="res/static/img/banner1-1680.jpg, res/static/img/banner1-1680.jpg 2x, res/static/img/banner1-1680.jpg 3x, res/static/img/banner1-1680.jpg 4x" media="(min-width: 1680px)"> <source srcset="res/static/img/banner1-1536.jpg, res/static/img/banner1-1536.jpg 2x, res/static/img/banner1-1536.jpg 3x, res/static/img/banner1-1536.jpg 4x" media="(min-width: 1536px)"> <source srcset="res/static/img/banner1-1440.jpg, res/static/img/banner1-1440.jpg 2x, res/static/img/banner1-1440.jpg 3x, res/static/img/banner1-1440.jpg 4x" media="(min-width: 1440px)"> <source srcset="res/static/img/banner1-1366.jpg, res/static/img/banner1-1366.jpg 2x, res/static/img/banner1-1366.jpg 3x, res/static/img/banner1-1366.jpg 4x" media="(min-width: 1366px)"> <source srcset="res/static/img/banner1-1200.jpg, res/static/img/banner1-1200.jpg 2x, res/static/img/banner1-1200.jpg 3x, res/static/img/banner1-1200.jpg 4x" media="(min-width: 1200px)"> <source srcset="res/static/img/banner1-992.jpg, res/static/img/banner1-992.jpg 2x, res/static/img/banner1-992.jpg 3x, res/static/img/banner1-992.jpg 4x" media="(min-width: 992px)"> <source srcset="res/static/img/banner1-768.jpg, res/static/img/banner1-768.jpg 2x, res/static/img/banner1-768.jpg 3x, res/static/img/banner1-768.jpg 4x" media="(min-width: 768px)"> <source srcset="res/static/img/banner1-480.jpg, res/static/img/banner1-480.jpg 2x, res/static/img/banner1-480.jpg 3x, res/static/img/banner1-480.jpg 4x" media="(min-width: 480px)"> <source srcset="res/static/img/banner1-300.jpg, res/static/img/banner1-300.jpg 2x, res/static/img/banner1-300.jpg 3x, res/static/img/banner1-300.jpg 4x" media="(max-width: 480px)"> <img srcset="res/static/img/banner1.jpg, res/static/img/banner1.jpg 2x,res/static/img/banner1.jpg 3x,res/static/img/banner1.jpg 4x" height=613> </picture>
上面代码表示:
网页窗口宽度大于等1920像素时,显示res/static/img/banner1-1920.jpg;大于等于1680像素,小于1920像素时,显示res/static/img/banner1-1680.jpg等等。如果在上面的宽度都没有找到,则显示默认图res/static/img/banner1.jpg。
对于IE等不支持picture标签的浏览器,可以用 picturefill.js: https://scottjehl.github.io/picturefill/ 实现此功能。
附常用的屏幕分辨率:
normal:
450(480 or 320)or 576
768
992
1200及以上
baidu tongji:
1920px
1440px
1366px
1536px
1680px
1600 px
1280px
2560px
------
CSS @media 參考裝置尺寸:
/* 手機直 */ @media (max-width: 480px) { } /* 手機橫 */ @media (max-width: 767px) { } /* 平板 */ @media (min-width: 768px) and (max-width: 979px) { } /* 平板橫 */ @media (min-width: 980px) { } /* 桌機 小於1200 */ @media (max-width: 1139px) { } /* 桌機 大於 1200 */ @media (min-width: 1200px) { } /* 桌機 大於 1240 */ @media (min-width: 1240px) { }
Bootstrap 4媒体查询
// Extra small devices (portrait phones, less than 576px) // No media query since this is the default in Bootstrap // Small devices (landscape phones, 576px and up) @media (min-width: 576px) { ... } // Medium devices (tablets, 768px and up) @media (min-width: 768px) { ... } // Large devices (desktops, 992px and up) @media (min-width: 992px) { ... } // Extra large devices (large desktops, 1200px and up) @media (min-width: 1200px) { ... }
Bootstrap 3媒体查询
/*========== Mobile First Method ==========*/ /* Custom, iPhone Retina */ @media only screen and (min-width : 320px) { } /* Extra Small Devices, Phones */ @media only screen and (min-width : 480px) { } /* Small Devices, Tablets */ @media only screen and (min-width : 768px) { } /* Medium Devices, Desktops */ @media only screen and (min-width : 992px) { } /* Large Devices, Wide Screens */ @media only screen and (min-width : 1200px) { } /*========== Non-Mobile First Method ==========*/ /* Large Devices, Wide Screens */ @media only screen and (max-width : 1200px) { } /* Medium Devices, Desktops */ @media only screen and (max-width : 992px) { } /* Small Devices, Tablets */ @media only screen and (max-width : 768px) { } /* Extra Small Devices, Phones */ @media only screen and (max-width : 480px) { } /* Custom, iPhone Retina */ @media only screen and (max-width : 320px) { }
原创文章,转载请注明,来自lenix的博客,地址https://blog.p2hp.com/archives/6792
最后更新于 2019年9月25日
相关博文
响应式图像正确设置方法