首頁  >  文章  >  web前端  >  Css3屬性前為什麼要加webkit

Css3屬性前為什麼要加webkit

WBOY
WBOY原創
2021-12-16 15:43:364913瀏覽

css中因為要相容於不同瀏覽器的屬性支持,瀏覽器廠商會在屬性前加一個私有前綴來支持新屬性;前綴為「-webkit-」的屬性,能夠在以webkit為內核的瀏覽器中正常使用,例如“safari”和“chrome”瀏覽器。

Css3屬性前為什麼要加webkit

本教學操作環境: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影片教學

以上是Css3屬性前為什麼要加webkit的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn