温馨提示  2024年 6月我们已经停止开发者板块文章内容更新,谢谢来访。存档数据
知识 2023-08-27 30 次阅读

css3属性前要加webkit的原因是什么

   

css中因为要兼容不同浏览器的属性支持,浏览器厂商会在属性前加一个私有前缀来支持新属性;前缀为“-webkit-”的属性,能够在以webkit为内核的浏览器中正常使用,例如“safari”和“chrome”浏览器。

本教程操作环境windows10系统、css3&&html5版、dell g3电脑。

css3属性前要加webkit

css3中新增了一些属性,例如box-reduis、box-orient、text-overflow等等,而这些属性在以往的版本中是不存在的,或者不被支持的,所以呢,专为不同的浏览器,规定其内核名称让它们可以对这些新增属性进行解析。这看上去是一个合理的解释,即-moz-是专为firefox的,-webkit-是专为safari和chrome的。

-moz代表firefox浏览器私有属性

-ms代表ie浏览器私有属性

-webkit代表safari、chrome私有属性

在标准还未确定时,部分浏览器已经根据最初草案实现了部分功能,为了与之后确定下来的标准进行兼容,所以每种浏览器使用了自己的私有前缀与标准进行区分,当标准确立后,各大浏览器将逐步支持不带前缀的css3新属性。

示例如下

<html><head><style> div{width:300px;height:100px;background-color:#ff9900;-moz-box-shadow: 10px 10px 5px #888888; /* 老的 firefox */box-shadow: 10px 10px 5px #888888;}</style></head><body><div></div></body></html>

要有私有前缀呢?因为制定html和css标准的组织w3c动作是很慢的。通常,有w3c组织成员提出一个新属性,比如说圆角border-radius,大家都觉得好,但是w3c不会为这个属性制定标准,而是要走很复杂的程序,经过很多审查。

而浏览器商不愿意等这样的话久,他们觉得一个属性已经够成熟了,就会在浏览器中加入支持。但是防止日后w3c对外发布标准时有所变更,就会加入一个私有前缀,比如-webkit-border-radius,通过这样的方法来提前支持新属性,等到日后w3c对外发布了标准,border-radius的标准写法确立之后,再让新版的浏览器支持border-radius这样的写法。

比方说,chrome 10是不认border-radius这样的写法的,只能用webkit-border-radius,而chrome12就能认了。于是在写css的时候,这样写就能确保chrome10和chrome12浏览网页的时候都能够正确显示。目前已有很多私有前缀可以不写了,但为了兼容老版本的浏览器,可以仍沿用私有前缀和标准方法,逐渐过渡

(学习视频分享css视频教程)

的原因是什么