380 likes | 515 Views
浏览器增强和差异化. 知识搜索部 梁东杰 liangdongjie@baidu.com. 修改时间:2012.7.19. 关于我. 梁东杰 知识搜索部 (KS) 资深研发工程师 曾参与产品:空间、百科、旅游、相册 参与项目:社区前端开发方案、 FIS (百度前端集成解决方案) 当前关注:前端开发自动化 Email : nodiseal@gmail.com Twitter: @nodiseal Weibo : @nedj. 浏览器增强和差异化. 方案 目标 为推动CSS3应用 开发的一套 跨浏览器 增强和差异的方案.
E N D
浏览器增强和差异化 知识搜索部 梁东杰 liangdongjie@baidu.com 修改时间:2012.7.19
关于我 • 梁东杰 知识搜索部(KS) 资深研发工程师 • 曾参与产品:空间、百科、旅游、相册 • 参与项目:社区前端开发方案、FIS(百度前端集成解决方案) • 当前关注:前端开发自动化 • Email:nodiseal@gmail.com • Twitter: @nodiseal Weibo:@nedj
浏览器增强和差异化 方案目标 为推动CSS3应用 开发的一套 跨浏览器 增强和差异的方案 http://www.baidu.com
目录 1. CSS3 -- 让你眼前一亮2. 浏览器限制 -- 理想与现实3. 增强开发工具 -- 为我所用4. 功能介绍 -- 细数家珍 5. 技术实现 -- 众妙之门 http://www.baidu.com
目录 1. CSS3 -- 让你眼前一亮2. 浏览器限制 -- 理想与现实3. 增强开发工具 -- 为我所用4. 功能介绍 -- 细数家珍 5. 技术实现 -- 众妙之门 http://www.baidu.com
1. CSS3 >> 变形、动画很酷 • 变换 transition • 变形 transform • 动画 animation [demo]
1. CSS3 >> 图形修饰功能够震撼 • 透明 • 背景渐变 • 盒子效果:圆角、阴影 • 文字效果:截断、阴影 [demo]
1. CSS3 >> 细节交互脚本的终结者 • 状态伪类 :hover/:focus /:active • 容器控制 min/max-width • 定位 position:fixed [demo]
1. CSS3 >> 模板hack都可以靠边站 • 结构匹配 :nth-child系列 [demo]
1. CSS3 >> 终端适配很简单 • 终端条件处理 mediaQuery
1. CSS3 >> 轻松应乎普通开发 传统关键词:切图、改HTML、写JS、私有语法、用Hack、需求改到头大
目录 1. CSS3 -- 让你眼前一亮2. 浏览器限制 -- 理想与现实3. 增强开发工具 -- 为我所用4. 功能介绍 -- 细数家珍 5. 技术实现 -- 众妙之门 http://www.baidu.com
2. 浏览器限制 >> 浏览器分布 某产品5月份情况 注:不同产品比例不一样,仅供参考
2. 浏览器限制 >> CSS3环境 • IE6~8的落后 • bug一堆 • 不支持的多了去了 • hack横飞 • 现代浏览器的前缀 -prefix- • IE9伪现代 • -border-image/-muti-columns
2. 浏览器限制 >> 低端浏览器 • 优雅降级?不易降呀 • 图形修饰、动画类可以忽略 • 选择器类,影响可用性 • 低端浏览器增强很重要 • 解决差异问题依然值得重视 • 可用性不可忽略 • 差异化或许不可避免
目录 1. CSS3 -- 让你眼前一亮2. 浏览器限制 -- 理想与现实3. 增强开发工具 -- 为我所用4. 功能介绍 -- 细数家珍 5. 技术实现 -- 众妙之门 http://www.baidu.com
3. 增强开发工具 >> 浏览器增强实体产出 cs增强开发工具 ColorStone七彩石,意为弥补浏览器不足 目标浏览器:IE6/7/8/9; FF/Chrome,Safari/Opera
3. 增强开发工具 >> 浏览器增强实体产出 • 解铃还须系铃人 • 用CSS解决CSS的问题 • DOM操作友好 • 100% 纯CSS3,不加料 • 保证可用性,微有差异
3. 增强开发工具 >> 使用方式 安装/启动 开发 修改代码/实时查看效果 发布 打包发布 npm cs node –e “require(‘cs’)”
3. 增强开发工具 >> 开发体验很重要 • 只关注最新标准 • 无附加的语法 • 自动编译,无需操作/等待 • 友好语法提醒
目录 1. CSS3 -- 让你眼前一亮2. 浏览器限制 -- 理想与现实3. 增强开发工具 -- 为我所用4. 功能介绍 -- 细数家珍 5. 技术实现 -- 众妙之门 http://www.baidu.com
4. 功能介绍 >> 高端浏览器的差异抹平 • 私有前缀(-prefix-)
4. 功能介绍 >> IE系列的功能增强 • 选择器类 对比:ie7.js • 图形修饰类 对比:CSS3PIE • 动画/变形/布局类
4. 功能介绍 >> 标准化hack语法 • 语义化,易理解 • -ie6/-ie7/-ie8/-ie9/-ms/-moz/-webkit/-o • 编译生成,顺序无所谓了
4. 功能介绍 >> 语义提醒 • 语法正确性 • 兼容支持
目录 1. CSS3 -- 让你眼前一亮2. 浏览器限制 -- 理想与现实3. 增强开发工具 -- 为我所用4. 功能介绍 -- 细数家珍 5. 技术实现 -- 众妙之门 http://www.baidu.com
5. 技术实现 >> 模块介绍 • 基于Node的编译工具 • 将CSS3代码编译输出多份不同浏览器的兼容代码 • 运行时框架 • 用于IE类的支持 • 本地调试服务器 • 开发流程辅助
5. 技术实现 >> 系统运行流程 CSS3代码开发 【开发】 代码被编译成多份代码 浏览器按需读取自己的资源文件 【发布】 【展现】 运行框架支持IE的实现 【展现】
5. 技术实现 >> 插件化 方便定制 • 编译框架的插件化 • 运行时框架插件化
5. 技术实现 >> IE兼容思路 采用专有属性及JS扩展等技术手段,,让老版本的浏览器(如:IE6)支持更新的CSS标准效果。 用到技术: • 编译 • 滤镜 • Expression • htc方式 • 轮询
5. 技术实现 >> DOM操作友好 • 结构变化:添/删/移动 • 属性变化 • 样式变化
5. 技术实现 >> 性能保障 • 动态标识属性 • 无需遍历 • 有索引的效率当能不一样 • 插件入口控制 • 轮训控制 (TODO 补充数据)
5. 技术实现 >> 回顾我们的优势 • 原生CSS3语法 • DOM修改友好 • 更可靠的性能(编译期优化) • 支持较全面
Q&A http://www.baidu.com
谢谢 http://www.baidu.com