如何制作一个自适应手机、电脑、ipad的网页方法总结大全

今天春哥技术博客和大家一起分享下当下如何制作一个自适应手机、电脑、ipad的网页方法,手机上网的用户已经越来越多,已经赶超PC端。随着2G、3G、4G、免费WIFI和无线基站的不断普及,越来越多的人开始使用手机上网。

移动设备正超过桌面设备,成为访问互联网的最常见终端。于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页?

\

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

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

于是,很早就有人设想,能不能"一次设计,普遍适用",让同一张网页自动适应不同大小的屏幕,根据屏幕宽度,自动调整布局(layout)?

\

一、"自适应网页设计"的概念

2010年,Ethan Marcotte提出了"自适应网页设计"(Responsive Web Design)这个名词,指可以自动识别屏幕宽度、并做出相应调整的网页设计。

他制作了一个范例,里面是《福尔摩斯历险记》六个主人公的头像。如果屏幕宽度大于1300像素,则6张图片并排在一行。

\

如果屏幕宽度在600像素到1300像素之间,则6张图片分成两行。

\

如果屏幕宽度在400像素到600像素之间,则导航栏移到网页头部。

\

如果屏幕宽度在400像素以下,则6张图片分成三行。

\

mediaqueri.es上面有更多这样的例子。

这里还有一个测试小工具,可以在一张网页上,同时显示不同分辨率屏幕的测试效果,我推荐安装。

二、允许网页宽度自动调整

"自适应网页设计"到底是怎么做到的?其实并不难。

首先,在网页代码的头部,加入一行viewport元标签。

<meta name="viewport" content="width=device-width, initial-scale=1" />

viewport是网页默认的宽度和高度,上面这行代码的意思是,网页宽度默认等于屏幕宽度(width=device-width),原始缩放比例(initial-scale=1)为1.0,即网页初始大小占屏幕面积的100%。

所有主流浏览器都支持这个设置,包括IE9。对于那些老式浏览器(主要是IE6、7、8),需要使用css3-mediaqueries.js。

三、不使用绝对宽度
由于网页会根据屏幕宽度调整布局,所以不能使用绝对宽度的布局,也不能使用具有绝对宽度的元素。这一条非常重要。
具体说,CSS代码不能指定像素宽度:
width:xxx px;
只能指定百分比宽度:
width: xx%;
或者
width:auto;
四、相对大小的字体
字体也不能使用绝对大小(px),而只能使用相对大小(em)。
body {
font: normal 100% Helvetica, Arial, sans-serif;
}
上面的代码指定,字体大小是页面默认大小的100%,即16像素。
h1 {
font-size: 1.5em;
}
然后,h1的大小是默认大小的1.5倍,即24像素(24/16=1.5)。
  small {
font-size: 0.875em;
}
small元素的大小是默认大小的0.875倍,即14像素(14/16=0.875)。
五、流动布局(fluid grid)
"流动布局"的含义是,各个区块的位置都是浮动的,不是固定不变的。
  .main {
float: right;
width: 70%;
}
  .leftBar {
float: left;
width: 25%;
}
float的好处是,如果宽度太小,放不下两个元素,后面的元素会自动滚动到前面元素的下方,不会在水平方向overflow(溢出),避免了水平滚动条的出现。
另外,绝对定位(position: absolute)的使用,也要非常小心。
六、选择加载CSS
"自适应网页设计"的核心,就是CSS3引入的Media Query模块。
它的意思就是,自动探测屏幕宽度,然后加载相应的CSS文件。
  
上面的代码意思是,如果屏幕宽度小于400像素(max-device-width: 400px),就加载tinyScreen.css文件。
  
如果屏幕宽度在400像素到600像素之间,则加载smallScreen.css文件。
除了用html标签加载CSS文件,还可以在现有CSS文件中加载。
  @import url("tinyScreen.css") screen and (max-device-width: 400px);
七、CSS的@media规则
同一个CSS文件中,也可以根据不同的屏幕分辨率,选择应用不同的CSS规则。
  @media screen and (max-device-width: 400px) {
    .column {
float: none;
width:auto;
}
    #sidebar {
display:none;
}
  }
上面的代码意思是,如果屏幕宽度小于400像素,则column块取消浮动(float:none)、宽度自动调节(width:auto),sidebar块不显示(display:none)。
八、图片的自适应(fluid image)
除了布局和文本,"自适应网页设计"还必须实现图片的自动缩放。
这只要一行CSS代码:
  img { max-width: 100%;}
这行代码对于大多数嵌入网页的视频也有效,所以可以写成:
  img, object { max-width: 100%;}
老版本的IE不支持max-width,所以只好写成:
  img { width: 100%; }
此外,windows平台缩放图片时,可能出现图像失真现象。这时,可以尝试使用IE的专有命令:
  img { -ms-interpolation-mode: bicubic; }
或者,Ethan Marcotte的imgSizer.js。
  addLoadEvent(function() {
    var imgs = document.getElementById("content").getElementsByTagName("img");
    imgSizer.collate(imgs);
  });
不过,有条件的话,最好还是根据不同大小的屏幕,加载不同分辨率的图片。有很多方法可以做到这一条,服务器端和客户端都可以实现。

原文地址:http://blog.51cto.com/13730453/2159816

时间: 2025-01-17 21:52:57

如何制作一个自适应手机、电脑、ipad的网页方法总结大全的相关文章

怎样制作「用手机&amp;电脑控制的Arduino-3D打印机器人」– IoBot?

 如果你正在探寻控制Arduino设备的方式,这个教程将告诉你如何通过建立简单的机器人来实现. IoBot由手机&电脑应用控制,通过LAN或USB.应用可在Android,Mac OS及Windows操作系统下运行,在IoBoT的网站(http://iobot.info/)有下载. 所有的塑料零件都是3D打印的,Arduino是核心,控制应用用Python/Kivy 语言实现. 并不需要编程知识,但是我已经提供了链接,你可以在上面找到关于他们更多详细的信息.这对于一些需要修改代码和为Ardu

自适应电脑、手机和iPad的网页设计方法

随着3G的普及,越来越多的人使用手机上网. 移动设备正超过桌面设备,成为访问互联网的最常见终端.于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页? 手机的屏幕比较小,宽度通常在600像素以下:PC的屏幕宽度,一般都在1000像素以上(目前主流宽度是1366×768),有的还达到了2000像素.同样的内容,要在大小迥异的屏幕上,都呈现出满意的效果,并不是一件容易的事. 很多网站的解决方法,是为不同的设备提供不同的网页,比如专门提供一个mobile版本,或者iPhone

制作一个主页背景图不动,但网页可以向下滚动浏览内容

<STYLE TYPE="text/css"><!-- BODY {background-image: URL(图片地址); background-position: center; (背景图片居中显示)background-repeat: no-repeat; (不重复如果想重复则可以把no-repeat改成repeat)background-attachment: fixed;} (fixed固定)--> </STYLE> background-

外贸建站之自适应网站电脑手机网站不同JS效果区分写法代码分享

外贸建站之自适应网站电脑手机网站不同JS效果区分写法代码分享,今天给客户要求把网站Can Clip搞成自适应的,要求电脑跟手机上菜单展开采用不同的效果, 相信很多程序员都有遇到过这种情况,这里把我们的解决方案分享给大家. 1 if($(window).width()>768){ 2 3 //电脑PC端JS代码 4 5 } 对,没错,只需要给电脑端显示的代码用上这个,就可以了,大家可以根据自己的需要修改 不同的宽度,我们在Porsche Piwis III项目中,将PC跟手机端显示的区分宽度设置的

你的Android手机能投屏到电脑上吗?方法我都给你列出来了

共享屏幕正在一步一步的进入到我们的生活中,从最原始的手机-电视屏幕共享到现在的手机-电脑屏幕共享,这一规模正在逐步的扩散至全球的各个角落中,随之的手机型号的不同,从symbian-Windows phone-Firefox OS-Android.iOS,这些型号一代又一代的被淘汰,如今市面上最大的两个手机巨头就是Android和iOS. 你的手机可以投屏到电脑上吗?你的手机能投屏到电脑上吗?面对这样的问题,你们的回答是什么呢? 以下是Android与iOS投屏到电脑上的方法,Android与iO

最新版勤哲Excel服务器V2016.12.0.292无限用户支持手机APP,微信,网页等功能不绑定电脑,任意安装,支持后续升级

最新版勤哲Excel服务器V2016.12.0.292无限用户支持手机APP,微信,网页等功能不绑定电脑,任意安装,支持后续升级. 这个版本发布过之后,再发布新的版本需要到下个月的中下旬,老朋友可以使用本版本后面延续升级 目前有大约127家用户在用,没有修改过注册授权文件,系统非常成熟,推荐指数为五星,QQ:619920289 麦枫论坛http://www.mfsun.com 简介 EXCEL服务器作为一款客户化.综合性管理软件,它通过Excel就能构造出您自主的管理系统:同时,她也可将您公司现

andorid手机电脑操作

之前一直使用androidscreencast在pc上对手机进行操作,好久都没用了,前些天再次用的时候,提示如下: 决定还是自己写一个吧,因为7月份要做一个小分享,打算讲一些android的东西,需要在电脑上显示手机这边的画面,提供一定的操作. 花了一点时间做好了,给大家截一个图,代码放在github(https://github.com/androiddevelop/AndroidScreenshot)上了,需要的自己clone一下了. andorid手机电脑操作,布布扣,bubuko.com

《屏幕上的聪明决策》:4星。人类在手机/电脑上做选择的心理学研究的综述。不流畅的文本有助于理解和记忆,淘汰赛制可以有效降低选择后懊悔。

本书是人类在手机/电脑上做选择的心理学研究的综述,比较可信,有许多有趣的事实与结论.比较重要的结论有这么几个:1:人类对网站.文章的判断很大程度上以来瞬间感知和审美:2:不流畅的文本有助于理解和记忆:3:可选项太多的情况下,可以考虑淘汰赛制,每次让用户从4个选项中选择一个最满意的.这样可以有效降低选择后懊悔. 总体评价4星. 以下是书中一些重要的结论与信息的摘抄,#号后面是kindle电子书中的页码: 1:人的注意力已经成为“21世纪的低硫原油”.如果可以控制人类注意力的杠杆,那么你几乎可以获取

Unity3D游戏开发从零单排(四) - 制作一个iOS游戏

提要 此篇是一个国外教程的翻译,虽然有点老,但是适合新手入门.自己去写代码,debug,布置场景,可以收获到很多.游戏邦上已经有前面两部分的译文,这里翻译的是游戏的最后一个部分. 欢迎回来 在第一篇中,我们学会了怎么在Unity中搭建游戏的场景,并且设置模型的物理属性. 在第二篇中,我们学会了怎么在unity中使用脚本,并且创建了大部分的游戏逻辑,包括投球和得分! 在这最后一节中,我们将会为用户创建一个菜单系统,并且和GameController进行交互,我们开始吧. 在设备上测试 到目前为止,