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

二、允许网页宽度自动调整 
“自适应网页设计”到底是怎么做到的?其实并不难。 
首先,在网页代码的头部,加入一行viewport元标签。

  1. <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。

  1. <!–[if lt IE 9]> <script src=”http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js”></script> <![endif]–>


三、不使用绝对宽度 
由于网页会根据屏幕宽度调整布局,所以不能使用绝对宽度的布局,也不能使用具有绝对宽度的元素。这一条非常重要。 
具体说,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)

“流动布局”的含义是,各个区块的位置都是浮动的,不是固定不变的。

  1. .main { float: right; width: 70%; }
  2. .leftBar { float: left; width: 25%; }

float的好处是,如果宽度太小,放不下两个元素,后面的元素会自动滚动到前面元素的下方,不会在水平方向overflow(溢出),避免了水平滚动条的出现。 另外,绝对定位(position: absolute)的使用,也要非常小心。

六、选择加载CSS 
“自适应网页设计”的核心,就是CSS3引入的Media Query模块。 它的意思就是,自动探测屏幕宽度,然后加载相应的CSS文件。

  1. <link rel=”stylesheet” type=”text/css” media=”screen and (max-device-width: 400px)” href=”tinyScreen.css” />

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

  1. <link rel=”stylesheet” type=”text/css” media=”screen and (min-width: 400px) and (max-device-width: 600px)” href=”smallScreen.css” />

如果屏幕宽度在400像素到600像素之间,则加载smallScreen.css文件。 除了用html标签加载CSS文件,还可以在现有CSS文件中加载。

  1. @import url(“tinyScreen.css”) screen and (max-device-width: 400px);


七、CSS的@media规则 同一个CSS文件中,也可以根据不同的屏幕分辨率,选择应用不同的CSS规则。

  1. @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代码:

  1. img { max-width: 100%;}

这行代码对于大多数嵌入网页的视频也有效,所以可以写成: img, object { max-width: 100%;} 
老版本的IE不支持max-width,所以只好写成: 
img { width: 100%; } 
此外,windows平台缩放图片时,可能出现图像失真现象。这时,可以尝试使用IE的专有命令:

  1. img { -ms-interpolation-mode: bicubic; }
  2. 或者,Ethan Marcotte的imgSizer.js。
  3. addLoadEvent(function() { var imgs = document.getElementById(“content”).getElementsByTagName(“img”); imgSizer.collate(imgs); });

转载于:https://www.cnblogs.com/wanliyuan/p/3772853.html

关于web中的自适应布局相关推荐

  1. android中自适应布局教程,Android自适应布局设计技巧

    由于目前在做的一款app需要适配手机和平板,所以我在研究怎么构建可适应所有屏幕尺寸的布局方法. 在web的自适应布局上我有很多经验,比如使用网格流,CSS3中的media queries属性等等,这些 ...

  2. css什么是自适应布局,CSS中常见的自适应布局是什么

    CSS中常见的自适应布局是什么 发布时间:2020-12-05 13:24:07 来源:亿速云 阅读:102 作者:小新 这篇文章主要介绍CSS中常见的自适应布局是什么,文中介绍的非常详细,具有一定的 ...

  3. Web自适应布局你需要知道的所有事儿

    有这样一个问题. 请说说你知道的所有web布局方式? 一般来说,有以下这些布局方法: 浮动 float:left|right inline-block display:inline-block fle ...

  4. web前端响应式布局,自适应全部分辨率

    写phpd的我. 近期公司要弄个app关键是没有web开发,而我有比較闲,那就扛枪上阵吧. 响应式布局,web端的?php我一直都是用tp框架,对于web首先想到的是bootstrap框架.仅仅是简单 ...

  5. ASP.NET MVC 4中如何为不同的浏览器自适应布局和视图

    在ASP.NET MVC 4中,可以很简单地实现针对不同的浏览器自适应布局和视图.这个得归功于MVC中的"约定甚于配置"的设计理念. 默认的自适应 MVC 4自动地为移动设备浏览器 ...

  6. 单列变双列css_css 两列布局中单列定宽单列自适应布局的6种思路

    前面的话 说起自适应布局方式,单列定宽单列自适应布局是最基本的布局形式.本文将从float.inline-block.table.absolute.flex和grid这六种思路来详细说明如何巧妙地实现 ...

  7. Web实现:flex弹性布局三栏自适应布局

    效果:整个页面分为三栏,左右两栏都是固定宽度,中间栏根据屏幕大小宽度相应变化. 实现: HTML部分: <!DOCTYPE html> <html lang="en&quo ...

  8. html中div自适应代码,CSS+DIV自适应布局

    CSS+DIV自适应布局 1.两列布局(左右两侧,左侧固定宽度200px;右侧自适应占满) 代码如下: 左右两侧,左侧固定宽度200px;右侧自适应占满 .box{ width:800px; heig ...

  9. css经典布局——头尾固定高度中间高度自适应布局

    今天说说一个经典布局:头尾固定高度中间高度自适应布局! 转文请标明 --- 出处:穆乙 http://www.cnblogs.com/pigtail/ 相信做过后台管理界面的同学,都非常清楚这个布局. ...

最新文章

  1. Go 学习笔记(1)— Ubuntu 系统 Go 环境搭建、VS Code 配置 Go 开发环境、VS Code 远程开发配置
  2. cf792b循环链表
  3. POJ2762 Going from u to v or from v to u? 强连通+缩点
  4. 2018年下半年软件设计师考试上午真题(参考答案)
  5. Silverlight - Out of Browser配置,安装和卸载
  6. NYOJ--C语言---Fibonacci数递归迭代两种解法
  7. Python Day42
  8. 朋友易得 ,知已难求
  9. 使用Cargo入门rust语言
  10. CentOS6.7安装Open***服务端
  11. #百度云直链下载-IDM+油猴插件
  12. VS系列之【 产品密钥 – 所有版本】
  13. 检测卡常见错误代码:01、C1~C5、0D
  14. 14年macmini装双硬盘_苹果2014款Mac mini更换固态硬盘图文教程
  15. 如何部署简单腾讯云服务器
  16. 腾讯云和阿里云对比哪个好?云计算优势测评
  17. SAP ABAP SD常用函数或BAPI
  18. ubuntu和windows双系统默认启动顺序
  19. 【MagNet】《Progressive Semantic Segmentation》
  20. 学习笔记:《机器人SLAM导航核心技术与实战》序言

热门文章

  1. 所有关于php上传,关于php文件上传
  2. java requestparams_详解在Spring MVC中使用注解的方式校验RequestParams
  3. C语言有好多7,[c语言]有1到100个数,现在从中提取7、和个位或十位上有7的数、以及7的倍数,然后输出。...
  4. fat linux 链接,FAT格式磁盘镜像制作方法
  5. php mysql预约_PHP+MySQL实验室预约管理系统的设计与实现
  6. MyEclipse和Eclipse中修改编码
  7. 北京大学生物信息学学习(3动态规划进行2序列比对的原理 )
  8. c语言注释符的作用有哪两种,C语言编程的注释符号是?
  9. R语言的特征选择(Feature Selection)包:Boruta和caret
  10. 光流(一)--综述概览