移动优先的响应式布局

前面的话

  随着移动互联网的兴起,不一样设备的分辨率相差较大,若是在不一样的设置上显示同一个页面,则用户体验差。响应式网页设计是一种方法,使得一个网站可以兼容多个终端,而不用为每一个终端制做特定的版本。它使得一个网站能够在任何类型的屏幕上,均可以被轻松地浏览和使用。采用响应式设计,在不一样设备中,网站会从新排列,展示出不一样的设计风格,以完美的适配任何尺寸的屏幕前端

 

设计原则

  关于响应式设计,有渐进增长和优雅降级两个设计原则android

  渐进加强(progressive enhancement),是指基本需求获得知足、实现,再根据不一样浏览器及不一样分辨率设备的特色,利用高级浏览器下的新特性提供更好的体验。好比,圆角、阴影、动画等后端

  优雅降级(graceful degradation)则正好相反,现有功能已经开发完备,但须要向下兼容版本和不支持该功能的浏览器。虽然兼容性方案的体验不如常规方案,但保证了功能可用性浏览器

  移动优先的响应式布局采用的是渐进加强原则,制做响应式网站时,先搞定手机版,而后再去为更大设备去设计和开发更复杂的功能。特征是使用min-width匹配页面宽度。从上到下书写样式时,首先考虑的是移动设备的使用场景,默认查询的是最窄的状况,再依次考虑设备屏幕逐渐变宽的状况布局

  由简入繁易,由繁入简难。若是是桌面优先,布局端是桌面端代码,只有在media中,才是手机端代码,加载了多余的桌面端代码。若是是图片文件,则下载的无用资源更多优化

  不管从界面设计仍是代码执行效率的角度而言,移动优先都有明显优点动画

 

三要素

  响应式设计包括三个要素:弹性布局、媒体查询和弹性图片网站

  弹性布局和媒体查询已经在其余博客中详细介绍,下面来重点介绍下弹性图片spa

  弹性图片,也称为响应式图片,是指图片可以跟随父容器宽度变化而变化,同时宽度受限于父容器,不可按照图片原始尺寸展示设计

  所以,最简单的响应式图片设置max-width为100%便可

img{
  max-width: 100%;  
}

  只有一张图片的状况下,采用上面代码便可。若是提供了高清图,要根据设备大小加载不一样的图片,则须要额外的处理。有以下几种处理方式

  一、采用picture元素,IE浏览器、android4.4.4-浏览器不兼容

<picture>
  <source media="(min-width:50em)" srcset="img/l.jpg">
  <source media="(min-width:30em)" srcset="img/m.jpg">
  <img src="img/s.jpg" alt="#">
</picture>

  二、采用img元素的srcset和sizes属性,IE浏览器、android4.4.4-浏览器不兼容

<img
  src="img/480.png"
  srcset="img/480.png 480w,img/800.png 800w, img/1600.png 1600w"
  sizes="(min-width:800px) 800px,100vw"
/>

  三、采用js,根据window的resize事件,修改图片的路径

function makeImageResponsive(){
    var width = $(window).width();
    var img = $('.content img');
    if(width <=480){
        img.attr('src','img/480.png');
    }else if(width <=800){
        img.attr('src','img/800.png');
    }else{
        img.attr('src','img/1600.png');
    }
}
$(window).on('resize load',makeImageResponsive);

  四、后端配置,前端传递给后端当前设备的一些特征,后端经过这些特征决定作怎样的响应。但目录两个后端响应式解决方案Responsive_Images和Adaptive-Images都再也不维护

 

优缺点

【优势】

  一、减小工做量,网站、设计、代码、内容都只须要一份

  二、节省时间

  三、解决了设备之间的差别化展现

  四、搜索优化 

  五、更好的用户体验

【缺点】

  一、须要加载更多的样式和脚本资源,加载速度受到影响

  二、设计比较难精肯定位和控制

  三、老版本浏览器兼容很差

 

响应模式

  下面介绍四种响应模式

【Column Drop 列下沉】

  手机上每个大块单独占据一行,随着屏幕尺寸拉伸会在同一行上造成多个 column 列

【Mostly Fulid 基本流体式】

  基本上跟 Column Drop 同样,可是有一点点“固定布局“的特色:当到达必定宽度后,主体内容部分再也不变宽,成为固定宽度

【Layout Shifter 变换式】

  变换式,也就是没必要遵循原有内容顺序,能够根据最佳展现须要来调整大块顺序

【Off Canvas 抽屉式】

  抽屉式,屏幕不够宽的时候,隐藏,经过按钮呼出。足够宽的屏幕上,始终显示

相关文章
相关标签/搜索