这里是修真院前端小课堂,每篇分享文从

【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】

八个方面深度解析前端知识/技能,本篇分享的是:

如何进行自适应网页设计?

大家好,我是IT修真院北京总院第24期的学员,一枚正直纯洁善良的web程序员

今天给大家分享一下,修真院官网css任务3,深度思考中的知识点——如何进行自适应网页设计?

1.背景介绍

现在人们通过手机浏览网页占了大多数,随着浏览方式的改变,网页实现多终端自适应,无论对于避免工程师无谓的重复劳动或者是项目管理的便捷性上来说重要性都是十分巨大的。

2.知识剖析

由于移动设备越来越多的被人们使用,手机成为访问互联网的最常见终端,而我们设计的网页确是为了呈现在PC端。

手机的屏幕比较小,宽度通常在600像素以下,而PC的屏幕宽度,一般都在1000像素以上(目前主流宽度是1366×768),有的还达到了2000像素。同样的内容,要在大小迥异的屏幕上,都呈现出满意的效果,并不是一件容易的事。

很多网站的解决方法,是为不同的设备提供不同的网页,比如专门提供一个mobile版本,或者iPhone / iPad版本。这样做固然保证了效果,但是比较麻烦,同时要维护好几个版本,而且如果一个网站有多个portal(入口),会大大增加架构设计的复杂度。

自适应是为了解决如何才能在不同大小的设备上呈现同样的网页。

3.常见问题

如何进行自适应网页设计

4.解决方案

1、在HTML头部增加viewport标签。

通俗的讲,移动设备上的viewport就是设备的屏幕上能用来显示我们的网页的那一块区域,在具体一点,就是浏览器上(也可能是一个app中的webview)用来显示网页的那部分区域,但viewport又不局限于浏览器可视区域的大小,它可能比浏览器的可视区域要大,也可能比浏览器的可视区域要小。在默认情况下,一般来讲,移动设备上的viewport都是要大于浏览器可视区域的,这是因为考虑到移动设备的分辨率相对于桌面电脑来说都比较小,所以为了能在移动设备上正常显示那些传统的为桌面浏览器设计的网站移动设备上的浏览器都会把自己默认的viewport设为980px或1024px(也可能是其它值,这个是由设备自己决定的),但带来的后果就是浏览器会出现横向滚动条,因为浏览器可视区域的宽度是比这个默认的viewport的宽度要小的。

该meta标签的作用是让当前viewport的宽度等于设备的宽度,同时不允许用户手动缩放。也许允不允许用户缩放不同的网站有不同的要求,但让viewport的宽度等于设备的宽度,这个应该是大家都想要的效果,如果你不这样的设定的话,那就会使用那个比屏幕宽的默认viewport,也就是说会出现横向滚动条。

meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"

把移动设备上的viewport分为layout viewport 、 visual viewport 和 ideal viewport 三类,其中的ideal viewport是最适合移动设备的viewport,ideal viewport的宽度等于移动设备的屏幕宽度,只要在css中把某一元素的宽度设为ideal viewport的宽度(单位用px),那么这个元素的宽度就是设备屏幕的宽度了,也就是宽度为100%的效果。ideal viewport 的意义在于,无论在何种分辨率的屏幕下,那些针对ideal viewport 而设计的网站,不需要用户手动缩放,也不需要出现横向滚动条,都可以完美的呈现给用户。

要得到ideal viewport就必须把默认的layout viewport的宽度设为移动设备的屏幕宽度。因为meta viewport中的width能控制layout viewport的宽度,所以我们只需要把width设为width-device这个特殊的值就行了。

2、不使用绝对宽度

在css中我们一般使用px作为单位,在桌面浏览器中css的1个像素往往都是对应着电脑屏幕的1个物理像素,这可能会造成我们的一个错觉,那就是css中的像素就是设备的物理像素。但实际情况却并非如此,css中的像素只是一个抽象的单位,在不同的设备或不同的环境中,css中的1px所代表的设备物理像素是不同的。在为桌面浏览器设计的网页中,我们无需对这个津津计较,但在移动设备上,必须弄明白这点。在早先的移动设备中,屏幕像素密度都比较低,如iphone3,它的分辨率为320x480,在iphone3上,一个css像素确实是等于一个屏幕物理像素的。后来随着技术的发展,移动设备的屏幕像素密度越来越高,从iphone4开始,苹果公司便推出了所谓的Retina屏,分辨率提高了一倍,变成640x960,但屏幕尺寸却没变化,这就意味着同样大小的屏幕上,像素却多了一倍,这时,一个css像素是等于两个物理像素的。

3、流动布局

流动布局(fluid grid) "流动布局"的含义是,各个区块的位置都是浮动的,不是固定不变的。

.main {float: right;width: 70%; }

.leftBar {float: left;width: 25%;}

float的好处是,如果宽度太小,放不下两个元素,后面的元素会自动滚动到前面元素的下方,不会在水平方向overflow(溢出),避免了水平滚动条的出现。

4、MediaQuery模块

"自适应网页设计"的核心,就是CSS3引入的MediaQuery模块。 它的意思就是,自动探测屏幕宽度,然后加载相应的CSS文件。

link rel="stylesheet" type="text/css"media="screen and (max-device-width:400px)"href="a.css"

上面的代码意思是,如果屏幕宽度小于400像素(max-device-width: 400px),就加载a.css文件。

link rel="stylesheet" type="text/css"media="screen and (min-width: 400px)and (max-device-width: 600px)"href="b.css"

如果屏幕宽度在400像素到600像素之间,则加载b.css文件。

5.编码实战

demo

6.扩展思考

自适应与响应式的区别

自适应是为了解决如何才能在不同大小的设备上呈现同样的网页,让同一张网页自动适应不同大小的屏幕,根据屏幕宽度,自动调整网页内容大小。但是无论怎样,他们主体的内容和布局是没有变的。

自适应还是暴露出一个问题,如果屏幕太小,即使网页能够根据屏幕大小进行适配,但是会感觉在小屏幕上查看,内容过于拥挤,响应式正是为了解决这个问题而衍生出来的概念。它可以自动识别屏幕宽度、并做出相应调整的网页设计,布局和展示的内容可能会有所变动。

响应式布局被大家熟知的一个重要原因就是 twitter 开源了 bootstrap。

相比自适应网站,响应式网站省去了很多的控件,同时也省去了不少建立和维护的功夫。响应式布局就是一种流体,在按百分比缩放时也能相当的流畅。

使用响应式设计,你要记住所以的布局。这当然可能会使过程混乱,并且使设计更加复杂。这就意味着你应该专注于中等分辨率的视图,然后再用media querie调整为更低或更高的分辨率。 所以通常的做法是,在一个新的项目中使用响应式设计,在后期的改造中使用自适应设计。

自适应可用于改造现有的网站使其更好地适应移动端。这使你的设计可控制和开发多个特定的视图。你开发视图的数量完全取决于你,你的公司和全面的预算。然而,它也提供了一定量的控件(例如在内容和布局上),如此你便无须使用响应式设计。但当你设计多种分辨率时你会发现,在改变窗口大小的时候将会“跳出”布局。

自适应网站可以用于设计和开发一个拥有多个自适应视图的网站。所以这种设计通常用于改造网站。

自适应:自适应

响应式:响应式

更多:more

7.参考文献

参考一:响应式和自适应的区别

参考二:响应式与自适应设计

参考三:移动前端开发之viewport的深入理解


视频链接    密码: h3x2

ppt链接


感谢大家观看

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

如何进行自适应网页设计?相关推荐

  1. 转自CSDNattilax的专栏 :自适应网页设计 跟 响应式 设计的区别跟原理and实践总结...

    响应式Web设计(Responsive Web design)的理念是: 1 #-----------自适应布局VS响应式布局 2 设计思路Mobile First 2 #---手机and平板分辨率  ...

  2. 手机web——自适应网页设计(html/css控制) - 51CTO.COM

    手机web--自适应网页设计(html/css控制) - 51CTO.COM 一. 允许网页宽度自动调整: "自适应网页设计"到底是怎么做到的? 其实并不难. 首先,在网页代码的头 ...

  3. [转]自适应网页设计(Responsive Web Design)

    本文转自:http://www.ruanyifeng.com/blog/2012/05/responsive_web_design.html 作者: 阮一峰 日期: 2012年5月 1日 随着3G的普 ...

  4. 摘抄 web 经 关于 自适应网页设计(Responsive Web Design)

    一."自适应网页设计"的概念 2010年,Ethan Marcotte提出了"自适应网页设计"(Responsive Web Design)这个名词,指可以自动 ...

  5. 自适应网页设计/响应式Web设计 (Responsive Web Design)

    随着3G的普及,越来越多的人使用手机上网. 移动设备正超过桌面设备,成为访问互联网的最常见终端.于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页? 手机的屏幕比较小,宽度通 ...

  6. 自适应网页设计(Responsive Web Design)响应式设计

    随着3G的普及,越来越多的人使用手机上网. 移动设备正超过桌面设备,成为访问互联网的最常见终端.于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页? 手机的屏幕比较小,宽度通 ...

  7. 自适应网页设计(转)

    自适应网页设计(Responsive Web Design) 随着3G的普及,越来越多的人使用手机上网. 移动设备正超过桌面设备,成为访问互联网的最常见终端.于是,网页设计师不得不面对一个难题:如何才 ...

  8. Responsive自适应网页设计与ResponsiveColumn自适应列实例

    Responsive Web Design - 自适应网页设计概念 自适应网页设计是指自动识别屏幕宽度.并做出相应调整的网页设计.包括两方面: 页面可以根据不同终端的屏幕宽度自动调整,兼容电脑.手机等 ...

  9. 自适应网页设计(Responsive Web Design)(转)

    随着3G的普及,越来越多的人使用手机上网. 移动设备正超过桌面设备,成为访问互联网的最常见终端.于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页? 手机的屏幕比较小,宽度通 ...

  10. html一个大网页5个小网页,5个范例告诉你:什么是自适应网页设计

    移动设备正超过桌面设备,成为访问互联网的最常见终端.于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页?自适应网页设计的出现很好的解决了这个问题.这篇文章将带你了解一些关于自 ...

最新文章

  1. Leader忙死,下属闲死,谁的错?总监让我学习,猴子理论
  2. 老年机按键串号_2019年最适合买的老人机——AGM M5,4G全网通+支持微信
  3. 朋友圈 H5 进化简史
  4. java 核桃的数量,[Java教程]【蓝桥杯】历届试题 核桃的数量
  5. Linux 磁盘管理 二(Raid、LVM、Quota)
  6. [Java基础]体验Lambda表达式
  7. java 重载 大于_详解java重载与覆写的区别
  8. 用kotlin方式打开《第一行代码:Android》之开发酷欧天气(2)
  9. sql 去除数据表中一列中字符串后边的空格...
  10. finereport9.0破解版|finereport10.0破解并发数|finereport授权注册|FineBI5.0破解lic
  11. CEBIT首现移动电子硬盘,大小如名片
  12. 笔记本计算机无法上无线网络,笔记本电脑无线网络连接不上原因有哪些【详细介绍】...
  13. 紫光拼音输入法6.7.0.9 论坛测试版发布
  14. android 极光推送教程 视频教程,Android 极光推送教程
  15. 【AI视野·今日CV 计算机视觉论文速览 第226期】Thu, 24 Jun 2021
  16. 常用的可用性工程方法
  17. Hadoop YARN架构设计要点
  18. C#基于联通短信Sgip协议构建短信网关程序.net
  19. 在vue中获取dom元素
  20. JVM: PermGen space

热门文章

  1. shell --- 7
  2. log4j反序列化漏洞详解及利用
  3. WPF编写界面代码快速换行
  4. 《EDIUS 6.5快刀手高效剪辑技法》——1.9 影视制作的流程
  5. win10后台偷跑流量限制方法
  6. 使用CFStringTransform将汉字转换为拼音
  7. Kotlin读书笔记之优雅且高效的Kotlin
  8. Kotlin 文件IO
  9. 图像处理函数——colfilt、bwperim、bwlabel、bwareaopen
  10. windows开机运行python脚本_Windows系统配置python脚本开机启动的3种方法分享