• CSS 3中-webkit-, -moz-, -o-, -ms-这些私有前缀的含义和兼容


    css3作为页面样式的表现语言,增加了很多新的属性,但是部分css3属性在一些浏览器上还处于试验阶段,所以为了有效的显示css3的样式,对应不同的浏览器内核需要不同的前缀声明,例如:

    -moz- :Firefox,GEcko引擎
    -webkit-: Safari和Chrome,Webkit引擎
    -o- :Opera(早期),Presto引擎,后改为Webkit引擎
    -ms- :Internet Explorer,Trident引擎

    使用这些前缀,才能保证css3的属性在特定浏览器渲染引擎下生效。统一引擎一般不识别其它引擎的前缀,目前移动端的浏览器相对比较统一,都是采用的webkit引擎,所以如果我们只需要兼容移动端,只需要带-webkit-前缀即可。

    在使用css3新属性的时候,一般需要把带有前缀的属性放于前面,把不带前缀的版本放到最后一行:

    1 -webkit-box-shadow: 0 5px 5px rgba(0, 0, 0, .5);
    2 -moz-box-shadow: 0 5px 5px rgba(0, 0, 0, .5);
    3 -o-box-shadow: 0 5px 5px rgba(0, 0, 0, .5);
    4 box-shadow: 0 5px 5px rgba(0, 0, 0, .5);

    随着浏览器的升级,目前大多数新版本浏览器都已经支持不带前缀的写法了,所以带前缀只是为了兼容低版本,不带前端的才是标准属性。

    那么如果想移除这些前缀,同时又满足兼容的办法也是有的。我们可以选择Autoprefixer工具,一个以最好的方式处理浏览器前缀的后处理插件​,无论你是用webpack、gulp、grunt还是fis,它都能完美配合。

    使用Autoprefixer你可以完全忘记有CSS前缀这东西,尽管按照最新的W3C规范来正常书写你的CSS而不需要浏览器前缀。像这样:

    1 a {
    2     display: flex;
    3 }

    Autoprefixer使用一个数据库根据当前浏览器的普及度以及属性支持提供给你前缀,输出: 

    1 a {
    2     display: -webkit-box;
    3     display: -webkit-flex;
    4     display: -ms-flexbox;
    5     display: flex
    6 }
  • 相关阅读:
    CSS3 不定宽高水平垂直居中
    css 标题三条横线
    浏览器工作原理
    JS---原型继承和多重继承
    你在工作中无意间会犯的四个错误
    CNPC海外操作人员英语日常用语900句
    惊呆了!无聊感可激发创造力
    求职简历这些错你犯过吗?
    研究:低智商男人易出轨
    TED:6个月学会1门外语
  • 原文地址:https://www.cnblogs.com/ypppt/p/12934251.html
Copyright © 2020-2023  润新知