0

    CSS 3中-webkit-, -moz-, -o-, -ms

    2023.07.08 | admin | 133次围观

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

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

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

    在使用css3新属性的时候,一般需要把带有前缀的属性放于前面一点浏览器出现很多页面,把不带前缀的版本放到最后一行:

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

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

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

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

    Autoprefixer的安装和使用

    自动补全css兼容前缀 Vscode插件 - Autoprefixer(3.0.1版本) - 简书 (jianshu.com)

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论