如何创建mobile-first(移动设备优先)的响应式的网站

本文介绍了移动优先的设计理念,利用CSS3的媒体查询实现不同屏幕尺寸下的布局调整,并探讨了如何通过CSS背景和数据URI减少图片请求,以及使用JavaScript进行延迟加载等优化手段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天读了这篇文章http://bradfrostweb.com/demo/mobile-first/article.html ,把学到的记录一下,方便以后使用~

1.适配的问题

目前的设备尺寸大小不一,各种尺寸都有,我们不可能编写那么多套页面去适配,但是又不可能回避这个问题,因此我们得有一套解决方案。CSS中的media queries(媒体查询)API可以做到。

2.mobile-first原则

我们可能会如下使用media queries:

 

Html代码   收藏代码
  1. /*Large screen styles first - Avoid*/  
  2. .product-img {  
  3.       width: 50%;  
  4.       float: left;  
  5. }  
  6. @media screen and (max-width: 40.5em) {  
  7.     .product-img {  
  8.               width: auto;  
  9.              float: none;  
  10.         }  
  11. }  

 

 这样写的思路是:先设置图片的全局样式为width:50%;float:left,当屏幕尺寸小于40.5em时使用width:auto;float:none样式。

而如果应用mobile-first原则,就应该这么写:

 

Java代码   收藏代码
  1. @media screen and (min-width: 40.5em) {  
  2.     .product-img {  
  3.               width: 50%;  
  4.              float: left;  
  5.         }  
  6. }  

 

 这样写的思路是:屏幕尺寸大于40.5em时应用该样式。我们不应该先定义大屏幕的样式,然后针对其它小屏幕再重写这些样式,而是直接从小屏幕入手。这样写还有另外一个好处就是对于不支持media queries的手机来说,它会使用第一个query的样式。

3.使用media queries

使用media queries标记要遵守mobile-first原则,这样代码比较简洁,还有利于维护,例如:

 

Html代码   收藏代码
  1. /*Default styles*/  
  2. .related-products li {  
  3.     float: left;  
  4.     width: 50%;  
  5. }  
  6.   
  7. /*Display 3 per row for mobile phones in landscape or smaller tablets*/  
  8. @media screen and (min-width: 28.75em) {  
  9.     .related-products li {  
  10.         width: 33.3333333%;  
  11.     }  
  12. }  
  13. /*Display 6 to a row for medium tablets and up */  
  14. @media screen and min-width: 40.5em) {  
  15.     .related-products li {  
  16.         width: 16.6666667%;  
  17.     }  
  18. }  

 

 该样式实现了当屏幕尺寸改变时,会动态改变每行显示图片的个数,如果有额外的需求,只需要插入对应的屏幕分界点就可以了。

4.使用css来减少请求

有些图片可以通过CSS3的background来代替,或者是data-uris。每张图片都会去请求服务器,而通过css就会减少这次请求,从而加快响应速度。可以参看http://tech.groups.yahoo.com/group/mobile-web/message/609

5.延迟加载

可以通过javascript来实现延迟加载,参见http://labjs.com/

6.离线访问

参见http://www.html5rocks.com/en/features/offline

参考demo:http://bradfrostweb.com/demo/mobile-first/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值