首页 web前端 H5教程 如何去设计一个自适应的网页设计或HTMl5

如何去设计一个自适应的网页设计或HTMl5

May 17, 2016 am 09:07 AM

5.jpg

  如今移动互联网随着3G的普及,越来越火爆,更多需求跟随而来!APP应用市场和APP应用数量成倍成倍的增长!从而给移动互联网带来新的挑战!

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

  手机的屏幕比较小,宽度通常在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元标签。

  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.getElementByIdx_x(“content”).getElementsByTagName_r(“img”);
  imgSizer.collate(imgs);
  });

  不过,有条件的话,最好还是根据不同大小的屏幕,加载不同分辨率的图片。有 很多方法可以做到这一条,服务器端和客户端都可以实现。

  只要遵循这8条设计准则,我相信你们可以很快的设计出自适应的网页出来。

  本文作者:博客园—Fly_Wind
   原文链接:http://www.cnblogs.com/Fly-Wind/p/html5.html

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
2 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何使用视口元标记来控制移动设备上的页面缩放? 如何使用视口元标记来控制移动设备上的页面缩放? Mar 13, 2025 pm 08:00 PM

本文讨论了使用视口元标记来控制移动设备上的页面缩放,重点是宽度和初始尺度之类的设置,以获得最佳响应和性能。

如何将音频添加到我的HTML5网站上? 如何将音频添加到我的HTML5网站上? Mar 10, 2025 pm 03:01 PM

本文解释了如何使用< audio>元素,包括用于格式选择的最佳实践(MP3,OGG Vorbis),文件优化和JavaScript控件用于播放。 它强调使用多个音频f

如何使用地理位置API处理用户位置隐私和权限? 如何使用地理位置API处理用户位置隐私和权限? Mar 18, 2025 pm 02:16 PM

本文讨论了使用GeOlocation API管理用户位置隐私和权限,并强调要求权限,确保数据安全性并遵守隐私法律的最佳实践。

如何将HTML5表单用于用户输入? 如何将HTML5表单用于用户输入? Mar 10, 2025 pm 02:59 PM

本文解释了如何创建和验证HTML5表格。 它详细介绍了>元素,输入类型(文本,电子邮件,编号等)和属性(必需,模式,最小,最大)。 HTML5的优势比旧方法形成

如何使用HTML5页面可见性API检测页面何时可见? 如何使用HTML5页面可见性API检测页面何时可见? Mar 13, 2025 pm 07:51 PM

本文讨论了使用HTML5页面可见性API来检测页面可见性,提高用户体验并优化资源使用情况。关键方面包括暂停媒体,减少CPU负载以及基于可见性变化管理分析。

如何使用HTML5和JavaScript创建互动游戏? 如何使用HTML5和JavaScript创建互动游戏? Mar 10, 2025 pm 06:34 PM

本文使用JavaScript详细介绍了创建Interactive HTML5游戏。 它涵盖了游戏设计,HTML结构,CSS样式,JavaScript逻辑(包括事件处理和动画)以及音频集成。 必需的JavaScript库(Phaser,Pi

如何将HTML5拖放API用于交互式用户界面? 如何将HTML5拖放API用于交互式用户界面? Mar 18, 2025 pm 02:17 PM

本文介绍了如何使用HTML5拖放API来创建交互式用户界面,详细介绍了使元素可拖动的步骤,处理关键事件并通过自定义反馈来增强用户体验。它还讨论了一个常见的陷阱

如何使用HTML5 Websockets API进行客户端和服务器之间的双向通信? 如何使用HTML5 Websockets API进行客户端和服务器之间的双向通信? Mar 12, 2025 pm 03:20 PM

本文解释了HTML5 Websockets API,用于实时双向客户服务器通信。 它详细详细介绍了客户端(JavaScript)和服务器端(Python/Flask)的实现,以应对可伸缩性,状态管理,一个挑战

See all articles