CSS3的标准并没有全部定稿,目前CSS3的标准分成了不同的模块,具体的标准由各个模块推动标准和定稿,标准制定的过程中,浏览器也在不断的发新的版本来兼容新的标准。
浏览器有时会给一些在试验阶段或非标准阶段的css属性添加前缀, 这样开发者就可以使用 浏览器行为的改变不会破坏标准. 开发人员应等待包含无前缀属性,直到浏览器行为标准化。

1. 主流浏览器引擎前缀

-webkit- (谷歌, Safari, 新版Opera浏览器等)
-moz- (火狐浏览器)
-o- (旧版Opera浏览器等)
-ms- (IE浏览器 和 Edge浏览器)

只有在新的css3的实验性的属性前需要添加前缀,目前大部分常用的css3新属性都可以直接舍弃前缀。查看浏览器兼容css3属性情况请参考:caniuse网站

.wrap {display: -webkit-box;display: -ms-flexbox;display: flex;-webkit-box-orient: horizontal;-webkit-box-direction: normal;-ms-flex-flow: row wrap;flex-flow: row wrap;
}

2. vscode插件实现css3前缀的自动化处理

由于添加前缀工作都是否枯燥和没有意义,这些工作可以直接交给开发工具或者第三方的工具来自动化的实现处理。而vscode也有对应的自动化的插件进行自动化的添加代码前缀。

vscode 自动化插件: Autoprefixer,可以自动化的给css、less、sass文件进行自动化的添加css3前缀。

使用方法:ctrl + shift + p 然后输入 autoprefixer 选择回车执行命令。

由于此插件是对npm包:Autoprefixer的封装,所以如果使用此插件对css进行预处理需要安装好node和安装上Autoprefixer包。

# 第一步: 安装node
# 第二步:全局安装Autoprefixer插件包
$ npm i -g autoprefixer
# 第三步: 用vacode的插件处理css文件(html文件不行)

3. js辅助脚本解放手写前缀

为了解决手工书写前缀的问题,最早的一个解决方案是由Lea Verou提供的一个-prefix-free脚本。

只需要在.html文件中插入一个prefixfree.js文件(可以是文档任何地方),建议把这个脚本文件放在样式表之后。

添加这个脚本之后,使用CSS3的属性时,只需书写标准样式即可。但是这种做法将所有压力交给了客户端来处理。如此一来页面解析压力就大了,性能会打一定的折扣,并且一旦脚本加载失败,那么就会出现浏览器无法正常渲染CSS3的样式风格。

prefixfree脚本仅在IE9+、Opera10+、Firefox3.5+、Safari4+得到支持。

4. 自动化构建工具

自动化构建工具:webpack、gulp、grunt都可以实现css3属性前缀的自动化添加。在此我只演示一下gulp的应用。

gulp自动化配置和安装演示:

第一步:安装node环境(已安装,略过)
第二步:安装gulp的全局的包

$ npm i -g gulp

第三步:在项目根目录下创建一个名为 gulpfile.js 的文件

var gulp = require('gulp');
var autoprefix = require('gulp-autoprefixer');gulp.task('styles', function() {gulp.src(['./src/css/*.css']).pipe(autoprefix('last 2 versions')).pipe(gulp.dest('./bulid/css'));
});

第四步:接下来在命令终端进入gulpfile.js文件的目录执行

gulp styles

可以在项目中看到新生成的文件了。

gulp 在线文档:地址

5. sass、less等预处理语言

sass和less等css的预处理语言配合响应的编译工具也可以实现对css3中的新属性的自动化加前缀处理。后续文章会有介绍,在此不赘述。

6. 渐进增强和优雅降级

渐进增强(Progressive Enhancement):一开始就针对低版本浏览器进行构建页面,完成基本的功能,然后再针对高级浏览器进行效果、交互、追加功能达到更好的体验。

优雅降级(Graceful Degradation):一开始就构建站点的完整功能,然后针对浏览器测试和修复。比如一开始使用 CSS3 的特性构建了一个应用,然后逐步针对各大浏览器进行 hack 使其可以在低版本浏览器上正常浏览。

05-移动端开发教程-CSS3兼容处理相关推荐

  1. 01-移动端开发教程-CSS3新特性(上)

    1. 移动端开发课程概述 移动互联网的兴起,让移动端的开发迅速蹿红.对于前端开发者来说,移动端的开发已经占据了他们大部分工作时间.接下来老马带大家一起学习移动端开发的相关前端开发技术. 这边课程内容包 ...

  2. 移动端开发、各种兼容问题、响应式布局开发、移动端和PC端开发的不同

    文章目录 一.移动端开发 二.移动端开发和PC端开发的不同 1.@1 响应式布局开发 2.关于CSS3的兼容 3.关于ES6+的兼容 4.还有一些移动端独有的兼容问题: 三.DPR:屏幕像素密度比「高 ...

  3. Express+MongoDB服务端开发教程

    本项目源码地址 my_express_server 参考资料 NodeJS服务端开发极速入门 准备工作 安装一些必要的全局依赖 # 全局暴力设置淘宝源 npm config set registry ...

  4. 06-移动端开发教程-fullpage框架

    CSS3的新特性已经讲完了,接下来我们看一下jQuery的一个全屏jQuery全屏滚动插件fullPage.js.我们经常见到一些全屏的特绚丽页面,手指或者鼠标滑动一下就是一整屏切换,而且还有各种效果 ...

  5. php手游服务端开发教程,【手游服务端】梦想海贼王 卡牌系列一键端服务端游戏源码+教程...

    [手游服务端]梦想海贼王 卡牌系列一键端服务端游戏源码+教程 游戏介绍: <梦想海贼王>是一款卡牌类手游,游戏以全球第一超人气动漫<海贼王>为题材,用Q版风格配合新奇多样的玩法 ...

  6. java移动端开发教程视频_Java Web开发-项目部分(中国移动科技综合管理系统)视频教程 - JavaWeb - Java - 私塾在线 - 只做精品视频课程服务...

    第01节课:进行整体课程概览:参看其他项目,总结需要实现的功能:讲解本次项目练习要实现的功能:基本的业务功能介绍 第02节课:页面布局:框架使用:页面上菜单的使用:项目基本的数据字典:构建包结构和划分 ...

  7. 七牛CEO许式伟:服务端开发那些事儿

    [http://www.donews.com/company/201511/2907818.shtm] 七牛CEO许式伟:服务端开发那些事儿 2015-11-09 11:14:05 服务端开发对于任何 ...

  8. 视频教程-HTML5和CSS3移动端开发全套教程-HTML5/CSS

    HTML5和CSS3移动端开发全套教程 拥有6年web前端和后端开发经验,4年授课经验,还曾在百度专业培训过网络营销课程,曾就职于联想集团和当当网,不仅有丰富的项目实战经验还有营销经验,综合实力较强, ...

  9. 前端基础知识概述 -- 移动端开发的屏幕、图像、字体与布局的兼容适配

    本文是内部的一次分享沉淀,偏向基础但是涉及了一些有意思的细节,文笔有限,才疏学浅,文中若有不正之处,万望告知. 前端的一大工作内容就是去兼容页面在不同内核的浏览器,不同的设备,不同的分辨率下的行为,使 ...

最新文章

  1. 528. 按权重随机选择
  2. MySQL安装失败出现could not start the service mysql error:0 错误提示
  3. java多线程间的通讯
  4. web3@0.20.1 在依据abi创建智能合约的时候报错 TypeError: web3.eth.contract is not a function
  5. java 图片不能正常移动_Java,我的图像不会更新/移动
  6. 基于Java+SpringBoot+vue+element实现家具购物销售网站详细设计和实现
  7. java反射数组_java反射Array的使用
  8. ionic4 ios打开appstore 跳转第三方app
  9. 音频硬件发展史,以及DSD是如何产生的 一起说一说音频
  10. 基于三菱FX系列与扫码枪232的通讯
  11. 服务器2003ftp站点向导,Windows 2003 ftp 配置
  12. 学习云计算为什么先学Linux?
  13. 用C#一步步写串口通信
  14. 查看Ubuntu中的OpenCV、Eigen、Ceres版本
  15. 《文化相对论》圆满收官!思想交锋,文明互鉴!
  16. Ubuntu 9.10 更新源(ubuntu yuan)
  17. 百度推广一年多少钱,百度信息流广告投放一个月多少钱
  18. 百度谷歌关键词排名的小技巧,SEO小技巧
  19. Flash分模块开发,Flash分模块加载,以及使用Flex经行游戏开发!
  20. 推荐几款不错的企业站点,前端设计师寻求设计灵感!

热门文章

  1. Oracle编程入门经典 第3章 建立以及管理用户和表
  2. TLD(Tracking-Learning-Detection)学习与源码理解之(三)
  3. Hadoop教程(一):简介、大数据解决方案、介绍快速入门
  4. CF1060D Social Circles
  5. c#中datareader中HasRows属性和Read方法的区别
  6. 【 Thread】创建线程的2种方法
  7. 扎克伯格预言即将成真:计算机可解读图片内容
  8. 有趣又好玩的glm库
  9. 一个月时间整理《深入浅出Node.js》
  10. C#使用StreamReader类读取汉字