云适配:http://www.yunshipei.com/

网页自适配已经成为网站的不二之选,自适配是帮助传统网站快速抓住移动互联网这根稻草的有效解决方案,切图公司首个推出网页适配解决方案——微适配。并且揭露技术上网页适配的实现原理。

允许网页宽度自动调整

“自适应网页设计”到底是怎么做到的?其实并不难。切图微适配(weishipei.qietu.com)为您剖析网页适配的技术实现原理:

首先,在网页代码的头部,加入一行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文件。

media=”screen and (max-device-width:400px)”

href=”tinyScreen.css”/>

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

media=”screen and (min-width:400px) and (max-device-width:600px)”

href=”smallScreen.css”/>

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

除了用html标签加载CSS文件,还可以在现有CSS文件中加载。

七、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);

});

最好还是做适配分辨率的图片。有很多方法可以做到同样效果,服务器端和客户端都可以实现。

转载于:https://www.cnblogs.com/eric-qin/p/4401897.html

网站自动适配技术实现原理相关推荐

  1. 微信扫码:关注公众号后网站自动登录的实现原理

    点击上方 Java后端,选择 设为星标 优质文章,及时送达 作者:destiny 链接:segmentfault.com/a/1190000022188562 序言 常见方式 平常大家见到过最多的扫码 ...

  2. 7个步骤让PC网站自动适配手机网页

    传统的网站如何完成向移动设备的快速转型? 通过移动适配技术可以实现,切图网是国内首家基于web技术服务的公司,而移动适配主要通过底层的web技术开发手段来完成,下面切图网将从技术角度来告诉你通过7个步 ...

  3. html自动适配手机,PC网站自动适配手机网页的方法技巧

    自适应网页设计,对于未曾接触过此类设计的人来说,可能觉得是十分难的事情. 但是,如果你熟悉html,那么自适应设计其实只不过是在原PC端的html代码上做一些改动而已,并非一门新的技术语言. 自适应网 ...

  4. 【系统自动化开发】Python实现广东省公务员报名系统网站自动登录

    [系统自动化开发]Python实现广东省公务员报名系统网站自动登录 [系统自动化开发]Python实现广东省公务员报名系统网站自动登录 一.原理 二.代码 [系统自动化开发]Python实现广东省公务 ...

  5. 揭秘网站SEO快排中的百度发包技术的原理是什么?

    2019年SEO快速排名发包技术及原理,百度的<惊雷算法>明确的说到了禁止点击排名,对点击作弊大力度的打击.但依然有不少的商家在做这类快速排名的服务,2019年SEO快速排名发包技术及原来 ...

  6. 云技术是什么_三分钟了解云技术的原理与发展

    什么是云技术 定义 云技术(Cloud technology)基于云计算商业模式应用的网络技术.信息技术.整合技术.管理平台技术.应用技术等的总称,可以组成资源池,按需所用,灵活便利.云计算技术将变成 ...

  7. 自动化测试 - 12306火车票网站自动登录工具

    还记得2011年春运,12306火车票预订网站经常崩溃无法登录吗. 今天我们就开发一个12306网站自动登录软件. 帮助您轻松订票 Web的原理就是,浏览器发送一个Request给Web服务器,Web ...

  8. 自动化测试 (一) 12306火车票网站自动登录工具

    还记得2011年春运,12306火车票预订网站经常崩溃无法登录吗. 今天我们就开发一个12306网站自动登录软件. 帮助您轻松订票 通过前两篇博客Fiddler教程和HTTP协议详解,我们了解了Web ...

  9. 双线服务器技术及其原理

    统计显示,在我国,90%的网站选择虚拟主机作为网站空间.因此,选择好的虚拟主机商是网站保证速度和稳定的关键.从目前国内IDC的发展发展来看,解决虚拟主机的稳定性和速度成为了服务商们竞争的焦点.由于我们 ...

  10. 高级扫描技术及原理介绍(转)

    高级扫描技术及原理介绍(转) 作者:refdom (refdom@263.net) Scan,是一切入侵的基础,扫描探测一台主机包括是为了确定主机是否活动.主机系统.正在使用哪些端口.提供了哪些服务. ...

最新文章

  1. JSP中两种include的区别
  2. SAP实施顾问参与主数据搜集的四大好处
  3. Python 日期和时间戳的转换
  4. 潜伏者与谍报密码(洛谷P1071题题解,Java语言描述)
  5. Java中HashMap和TreeMap的区别深入理解,java开发面试笔试题
  6. python批量生成word报告_Python操作Word批量生成合同的实现示例
  7. JPA、Hibernate、Mybatis的区别
  8. 【软考 系统架构设计师】软件架构设计④ 基于架构的软件开发方法
  9. mysql存储过程 outfile_mysql存储过程 outfile
  10. 「文末送书」如何让数据分析不脱离业务?
  11. Android App的国际化-各国语言缩写
  12. 关于召开山东省高职无人机应用技术专业教学指导方案开发第一次会议的通知...
  13. 【JS】两个等号和三个等号的区别
  14. 清华计算机系超算团队,清华学生超算团队获得国际大学生超级计算机竞赛总冠军...
  15. 《解忧杂货店》读后感
  16. HTML锚点定位+平滑滚动
  17. 访问虚拟机上的本地网站
  18. 全球与中国1,6-己二硫醇市场深度研究分析报告
  19. 信号完整性之Ansys SIwave_S参数提取(四)
  20. 抖音是如何毁掉我们的?

热门文章

  1. Navicat连接Mysql报错:Client does not support authentication protocol requested by server;
  2. 北风设计模式课程---外观模式、代理模式和中介者模式的区别
  3. mybatis添加数据时返回主键 insert 返回主键值
  4. BZOJ 3231: [Sdoi2008]递归数列
  5. 同步异步与阻塞非阻塞
  6. 四个数学软件主要特点
  7. 把散乱的SQL赶出程序代码中
  8. CCF - 201604-2 - 俄罗斯方块
  9. sonarQube代码管理工具
  10. 结构化CSS设计思维