图解css3:核心技术与案例实战. 1.3 渐进增强

1.3 渐进增强

第一次听到“渐进增强”(Progressive Enhancement)一词是在前端重构交流会上。渐进增强并不是一种技术,而是一种开发的方式,更是一种Web设计理念。首先思考一个问题:“网站是否需要在每个浏览器中看起来都一样?”带着这个问题来看渐进增强。

1.3.1 渐进增强与优雅降级

正如前面所言,渐进增强是一种开发方式,更是一种设计理念。在编写Web页面时,首先保证最核心的功能实现,让任何低端的浏览器都能看到站点内容,然后考虑使用高级但非必要的CSS和JavaScript等增强功能,为当前和未来的浏览器提供更好的支持,给用户带来更好的体验。

在设计的时候,先考虑低端设备用户能否看到所有内容,然后在此基础之上为高端用户进行设计。不仅为高端设备用户提供一个完美的应用,也要为不同性能级别设备的用户设计不同级别的不那么完美的应用。这称为“优雅降级”。

目前而言,虽对“渐进增强”有所了解的人很多,但是要说普及或深入还远远没到时候。在大家平时的设计思维中有一种极强的固定思维,也就是想让网站在各个浏览器下表现一致。这种出发点本身并没有什么问题,但是这样会让领先的浏览器的优势无法充分显示出来。

因此,从今天开始要改变制作Web站点的思维,让网站能优雅降级,目标应该是——向尽可能多的用户提供尽可能优质的用户体验。这跟用户访问网站使用方式无关,无论通过iPhone、高端的桌面系统、Kindle,还是阅读器,用户都能得到尽可能独特且完美的体验。

1.3.2 渐进增强的优点

“向尽可能多的用户提供尽可能优质的用户体验”这一目标听起来相当不错。有的人制作Web站点时报怨,IE怎样才具有CSS3的效果。诚然,我们不使用渐进增强也可以实现,如为一些旧浏览器提供一套兼容方案,确保页面与现代浏览器保持一致。简单来说就是在支持CSS3的浏览器中使用CSS3特性,在不支持的浏览器中另写一套样式来模拟CSS3效果,实现让网站在所有浏览器都一样。

可以说,通过这种方法只是让低版本的浏览器渲染页面更好看一点,并没有得到实质性的提高。

因此,如果网站始终无法做到一模一样,为什么不使用CSS3技术使它在现代浏览器上看起来更靓丽呢?当然,某些CSS3特性在不支持的浏览器中是“无法模拟”的,但使用渐进增强,就无须为了让网站适合所有人而放弃这些技术。

CSS的渐进增强有别于CSS的hack。hack是浏览器厂商的一种手法,用来增强自己的竞争,而渐进增强起到锦上添花之效。所以前者应该尽量避免使用,而后者应该适当使用。

就样式而言,渐进增强的对象是一些现代浏览器,渐进增强的一些属性主要是CSS3的一些特性,或是IE低级版本不支持的一些属性,或是其他一些特殊情况。淘宝网上的一个例子如图1-7所示。

这里采用了CSS3的旋转特性transform,鼠标移上去时,三角会实现旋转的动画效果,并改变方向。之前,要实现图1-7所示的旋转效果,需要一大串JavaScript脚本。而使用transform仅仅需要几行代码。

#site-nave .menu:hover .menu-hd {

  -webkit-transform: rotate(180deg);

  -webkit-transform-origin-x:50%;

  -webkit-transform-origin-y:30%;

  -moz-transform: rotate(180deg);

  -moz-transform-origin-x:50%;

  -moz-transform-origin-y:30%;

  -o-transform: rotate(180deg);

  -o-transform-origin-x:50%;

  -o-transform-origin-y:30%;

  -ms-transform: rotate(180deg);

  -ms-transform-origin-x:50%;

  -ms-transform-origin-y:30%;

  transform:rotate(180deg);

  transform-origin-x: 50%;

  transform-origin-y: 30%;

}

采用渐进增强能给现代浏览器用户一个更好的体验,在不支持CSS3的IE浏览器也能正常使用,只不过体验会大打折扣。

以上只是一个简单的例子,本书后面还会介绍CSS3渐进增强的案例,例如text-shadow文字阴影、border-radius圆角属性、box-shadow盒阴影属性、CSS3渐变背景和CSS3选择器等。

时间: 2024-09-20 00:29:44

图解css3:核心技术与案例实战. 1.3 渐进增强的相关文章

图解css3:核心技术与案例实战

 Web开发技术丛书 图解CSS3:核心技术与案例实战 大 漠 著 图书在版编目(CIP)数据 图解CSS3:核心技术与案例实战/大漠著. -北京:机械工业出版社,2014.7 (Web开发技术丛书) ISBN 978-7-111-46920-9 I. 图- II.大- III. 网页制作工具 IV. TP393.092 中国版本图书馆CIP数据核字(2014)第116144号 图解CSS3:核心技术与案例实战 大 漠 著 出版发行:机械工业出版社(北京市西城区百万庄大街22号 邮政编码:100

图解css3:核心技术与案例实战. 导读

图解CSS3:核心技术与案例实战 大 漠 著 为什么要写这本书     CSS3是在CSS2.1基础上扩展而来,事实上,它还没有完全成熟.有些专家会告诉你,CSS3现在还用不上,甚至几年之后都不会有成熟的规范发布.     目前为止CSS3还没有一套成熟的规范,其中的模块也在不断更新,特别是浏览器对CSS3特性的支持也在不断变化,同时没有足够的时间去学习和研究W3C官方文档和规范,致使我们学习CSS3变得更为复杂.     为什么会选择这个时候编写这样一本图书呢?原因很简单.对于希望Web应用开

图解css3:核心技术与案例实战. 3.4 CSS3圆角边框属性

3.4 CSS3圆角边框属性 在Web页面上圆角效果很常见.圆角给页面增添曲线之美,让页面不那么生硬,但是为了设计圆角效果,Web设计师们要花费更多的时间与精力. 3.4.1 border-radius属性的语法及参数 CSS3中专门针对元素的圆角效果增加了一个圆角属性border-radius.Web设计师不会为Web页面中的圆角效果纠结了. 语法: border-radius: none | <length> {1,4}[/<length>{1,4}] ? border-rad

图解css3:核心技术与案例实战. 2.4 动态伪类选择器

2.4 动态伪类选择器 伪类选择器对于大家来说最熟悉的莫过于":link".":visited".":hover".":active",因为这些是大家平时常用到的伪类选择器.而CSS3的伪类选择器可以分成六种:动态伪类选择器.目标伪类选择器.语言伪类选择器.UI状态伪类选择器.结构伪类选择器和否定伪类选择器. 伪类选择器语法书写时和其他的CSS选择器写法有所区别,都以冒号(:)开头.例如: E:pseudo-class {pr

《图解CSS3:核心技术与案例实战》——2.4节动态伪类选择器

2.4 动态伪类选择器 伪类选择器对于大家来说最熟悉的莫过于":link".":visited".":hover".":active",因为这些是大家平时常用到的伪类选择器.而CSS3的伪类选择器可以分成六种:动态伪类选择器.目标伪类选择器.语言伪类选择器.UI状态伪类选择器.结构伪类选择器和否定伪类选择器. 伪类选择器语法书写时和其他的CSS选择器写法有所区别,都以冒号(:)开头.例如: E:pseudo-class {pr

《图解CSS3:核心技术与案例实战》——1.3节渐进增强

1.3 渐进增强第一次听到"渐进增强"(Progressive Enhancement)一词是在前端重构交流会上.渐进增强并不是一种技术,而是一种开发的方式,更是一种Web设计理念.首先思考一个问题:"网站是否需要在每个浏览器中看起来都一样?"带着这个问题来看渐进增强.1.3.1 渐进增强与优雅降级正如前面所言,渐进增强是一种开发方式,更是一种设计理念.在编写Web页面时,首先保证最核心的功能实现,让任何低端的浏览器都能看到站点内容,然后考虑使用高级但非必要的CSS

图解css5:核心技术与案例实战. 1.2 浏览器对CSS3的支持状况

1.2 浏览器对CSS3的支持状况 CSS3给我们带来众多全新的设计体验,但有一个问题值得考虑--浏览器对CSS3特性的支持情况如何?因为页面最终离不开浏览器来渲染,并不是所有浏览器都完全支持CSS3的特性.有时候花时间写的效果只能在特定的浏览器下有效,意味着只有部分用户能欣赏到,这样的工作变得没有什么意义.例如,使用CSS3制作背景仅在WebKit内核的浏览器下有效果. 想知道用户能够体验到哪些CSS3的新特性,必须了解当前浏览器对CSS3特性的支持程度如何. 1.2.1 经典回顾:图说浏览器

《图解CSS3:核心技术与案例实战》——1.2节浏览器对CSS3的支持状况

1.2 浏览器对CSS3的支持状况 CSS3给我们带来众多全新的设计体验,但有一个问题值得考虑--浏览器对CSS3特性的支持情况如何?因为页面最终离不开浏览器来渲染,并不是所有浏览器都完全支持CSS3的特性.有时候花时间写的效果只能在特定的浏览器下有效,意味着只有部分用户能欣赏到,这样的工作变得没有什么意义.例如,使用CSS3制作背景仅在WebKit内核的浏览器下有效果. 想知道用户能够体验到哪些CSS3的新特性,必须了解当前浏览器对CSS3特性的支持程度如何.1.2.1 经典回顾:图说浏览器大

图解css3:核心技术与案例实战. 1.5 本章小结

1.5 本章小结 本章主要介绍了什么是CSS3.CSS3的发展状况.新特性,以及浏览器对CSS3的支持状况:同时,引进了渐进增强的设计理念.通过本章的学习,可以对CSS3有一个初步的了解.学习CSS3的好处有很多,它能让你始终处于Web设计的前沿,增加你的职业技能和竞争力,还能帮助你缩短与顶级设计师或开发者的距离.马上开始使用,然后不断磨砺你的技巧并在职业的道路上不断前进.