目錄
什麼是 CSS 中的廠商前綴,為什麼要使用它們?
在現代 Web 開發中廠商前綴仍然必要嗎?
一些常見的廠商前綴是什麼?
如何在我的 CSS 代碼中使用廠商前綴?
使用廠商前綴的缺點是什麼?
如何避免廠商前綴問題?
是否有使用廠商前綴的替代方法?
CSS 中廠商前綴的未來是什麼?
廠商前綴如何影響網站性能?
如何及時了解有關廠商前綴的最新發展?
首頁 web前端 css教學 是時候重新考慮CSS中的供應商前綴的時間

是時候重新考慮CSS中的供應商前綴的時間

Feb 23, 2025 am 08:58 AM

It's Time to Rethink Vendor Prefixes in CSS

關鍵要點

  • CSS 中-webkit- 前綴的廣泛使用導致某些網站在沒有它時無法正常運行,迫使Mozilla 為了提高Firefox 與使用-webkit 前綴的網頁的兼容性而支持非標準的-webkit- 前綴,這與Microsoft Edge 和Opera 的做法一致。
  • 建議開發人員重新考慮他們對前綴的使用方法,並測試其網站的兼容性,特別是那些省略了-moz- 前綴的網站,因為新的更改可能會影響其網站在Firefox 46 或47 上的性能。
  • 隨著 Chrome/Blink、Firefox 和 Microsoft Edge 團隊尋求更好的解決方案,廠商前綴正逐漸消失。放棄廠商前綴意味著使用它們進行優雅降級並非可行的方法,開發人員應確保他們對前綴的使用不會在非 WebKit 瀏覽器中產生意外結果。

由於 -webkit- 前綴在網絡上的 CSS 中佔據主導地位,一些網站在沒有它時無法正常工作。雖然這顯然是過去幾年開發人員做法不夠理想的標誌,但這導致 Mozilla 採取了一項相當不幸但幾乎必要的措施。到Firefox 46 或47(分別於2016 年4 月或5 月發布)為止,Mozilla 計劃實現對一系列非標準-webkit- 前綴的支持,以提高Firefox 與使用-webkit 前綴(通常是移動端)的網頁的兼容性。

這不是一個新想法,Microsoft Edge 也支持一系列 -webkit- 前綴以確保兼容性。 Opera 早在 2012 年就開始實現 -webkit- 前綴,此後已遷移到基於 WebKit 的 Blink 引擎。

W3C 和瀏覽器廠商並不打算在生產網站上使用廠商前綴:

“W3C 的官方政策聲明,你不應該在生產代碼中使用實驗性屬性,但人們確實這麼做,因為他們想讓網站看起來很酷,並保持在技術前沿。”——W3C 關於優化不同瀏覽器內容的頁面

但是,各地的開發人員都想盡快使用它們來訪問最新的功能。雖然前綴由於 WebKit 的主導地位而造成了一些混亂,但我認為它們成功地幫助網絡快速發展。 Mozilla 和 Microsoft 的方法可能對大多數網站無害。大多數在線網站可能已經包含了 -moz- 前綴,或者會發現 Mozilla 的更新無需任何操作即可提高其網站的兼容性。但是,作為專業的 Web 開發人員,我們需要做到徹底,並了解某些設計可能會出現異常結果。您可能已經知道您的哪些作品可能會因此更新而中斷。

開發人員,現在顯然是時候重新考慮您對前綴的使用方法並測試這些網站了。

涉及的前綴

Mozilla 可能需要包含一系列 -webkit- 前綴。據我了解,Mozilla 並不打算匹配 Edge 支持的 -webkit- 前綴列表,因為並非所有這些都可能需要確保 Mozilla 的 Gecko 佈局引擎與更廣泛的網絡兼容。

根據他們在關於兼容性/移動/非標準兼容性的 wiki 頁面上的說法,Mozilla 可能採用的前綴包括:

  • -webkit-flexbox
  • -webkit- 前綴的漸變
  • -webkit-transforms
  • -webkit-transitions
  • -webkit-appearance
  • -webkit-background-clip
  • -webkit-device-pixel-ratio
  • -webkit-animation
  • -webkit-border*

其他一些功能也可能會受到影響,例如 @-webkit-keyframes

跨瀏覽器測試至關重要

如果您是一位省略了-moz- 前綴以避免需要在Firefox 上測試較新CSS 功能的Web 開發人員——讓我們假設您當時時間緊迫,並且客戶強迫您這麼做——您將需要在Firefox 46 或47 中重新測試該網站。這些版本的 Firefox 將於 4 月或 5 月發布,因此您有一些時間來提前計劃。

為了在這些更改到達 Firefox 46/47 之前測試您的網站,您可以通過 about:config 中的 layout.css.prefixes.webkit 首選項訪問 Firefox Nightly 中更改的當前狀態。如果您安裝了最新的 Nightly 版本,則默認情況下應將其設置為 true。並非所有 -webkit- 前綴更改都已在 Firefox Nightly 中出現,但是這是測試您的網站目前外觀的地方。我建議等到大約 3 月份再使用 Firefox Nightly 進行更徹底的測試。

更緊急的是,Microsoft Edge 已經以這種方式解釋和顯示 -webkit- 前綴。這意味著您網站中包含的任何 WebKit 特定樣式都可能已在您沒想到的瀏覽器中顯示。如果您尚未這樣做,請在 Windows 10 中訪問 Microsoft Edge 並測試這些網站!

廠商前綴正在消失

幸運的是,隨著瀏覽器團隊尋找更好的解決方案,廠商前綴似乎正在消失。 Chrome/Blink 團隊調整了他們的方法:

“展望未來,我們將不再使用廠商前綴默認啟用功能,而是在about:flags 中將(無前綴)功能保留在“啟用實驗性Web 平台功能”標誌後面,直到該功能準備好默認啟用為止。”——Chrome/Blink 團隊

Firefox 團隊也正在朝著類似的方法前進:

“就其本身而言,Mozilla 內部目前的趨勢是[……] 通過在發布前關閉功能或如果功能足夠穩定則不帶前綴地發布功能來避免廠商前綴。至少作為一項通用策略;具體案例可能需要例外。”——來自Mozilla 的Boris

Microsoft Edge 旨在完全刪除對前綴的支持:

“Microsoft 也正在擺脫Edge 的廠商前綴。這意味著為了讓開發人員能夠利用特殊的HTML5 或CSS 功能,他們不必使用特定的Edge 前綴。相反,他們只需根據Web 標准進行編碼即可。 ”——Mashable

不再通過前綴進行優雅降級

這種遠離廠商前綴的舉動意味著一個方面——通過廠商前綴進行優雅降級顯然不可行。

使用廠商前綴來定位特定瀏覽器(例如,僅針對 Chrome 的特定內容)並非廠商前綴的本意;建議始終是開發人員使用所有可用的廠商前綴(從 -webkit--o-)。如果您正在使用依賴於帶前綴屬性的功能,並且您使用前綴在其他瀏覽器上優雅地降低了設計,那麼這將不再起作用。

結論

時代在變。 WebKit 的主導地位無意中導致了網絡分裂和不兼容,其他瀏覽器正試圖通過實現 -webkit- 前綴來提高其兼容性以跟上步伐。雖然隨著廠商前綴的逐步淘汰,這個問題應該會消失,但開發人員需要檢查他們對前綴的使用不會在非 WebKit 瀏覽器中產生意外結果。

有用鏈接

  • Mozilla 關於這些更改的意圖文檔
  • Mozilla 在 Bugzilla 中對此問題的錯誤跟踪
  • Microsoft Edge 最新版本支持的 WebKit API
  • 關於將 -webkit- 前綴引入網絡生活標準的文檔
  • The Register 對 Firefox WebKit 兼容性更改的報導

關於 CSS 中廠商前綴的常見問題

什麼是 CSS 中的廠商前綴,為什麼要使用它們?

廠商前綴是瀏覽器製造商在新的 CSS 功能成為官方 CSS 規範的一部分之前添加它們的一種方法。它們用於確保這些新功能不會干擾其他瀏覽器中的現有功能。這允許開發人員試驗新功能並向 CSS 規範過程提供反饋。

在現代 Web 開發中廠商前綴仍然必要嗎?

廠商前綴的必要性一直是 Web 開發人員爭論的話題。雖然它們曾經對於確保跨瀏覽器兼容性至關重要,但現代 Web 已經看到不同瀏覽器之間 CSS 功能的顯著標準化。因此,對廠商前綴的需求大大減少,但在某些情況下仍然用於實驗性功能。

一些常見的廠商前綴是什麼?

一些常見的廠商前綴包括-webkit-(Chrome、Safari、較新的Opera 版本)、-moz-(Firefox)、-o-(舊的、預WebKit 的Opera 版本)和-ms-(Internet Explorer 和Microsoft Edge)。

如何在我的 CSS 代碼中使用廠商前綴?

要使用廠商前綴,只需在樣式表中的 CSS 屬性之前添加它即可。例如,要使用帶有 Firefox 廠商前綴的 border-radius 屬性,您可以編寫 -moz-border-radius: 10px;

使用廠商前綴的缺點是什麼?

使用廠商前綴的主要缺點是它們會使您的 CSS 代碼更複雜,更難維護。每個瀏覽器都有自己的廠商前綴,因此您可能需要為單個 CSS 屬性編寫多行代碼。此外,廠商前綴可能會導致代碼驗證問題,因為它們不是官方 CSS 規範的一部分。

如何避免廠商前綴問題?

避免廠商前綴問題的一種方法是使用像 Sass 或 Less 這樣的 CSS 預處理器,它可以自動將廠商前綴添加到您的代碼中。另一種選擇是使用像 Autoprefixer 這樣的後處理器,它可以根據您想要支持的瀏覽器添加廠商前綴。

是否有使用廠商前綴的替代方法?

是的,有使用廠商前綴的替代方法。一種替代方法是使用像 Modernizr 這樣的功能檢測庫,它允許您測試特定的 CSS 功能並為不支持它們的瀏覽器提供後備方案。另一種替代方法是使用 CSS Grid 或 Flexbox,它們現在得到了廣泛支持,並且不需要廠商前綴。

CSS 中廠商前綴的未來是什麼?

CSS 中廠商前綴的未來是不確定的。雖然它們在某些情況下仍在使用,但趨勢是朝著標準化和使用功能檢測而不是廠商前綴的方向發展。但是,它們很可能在可預見的未來仍然是 CSS 環境的一部分。

廠商前綴如何影響網站性能?

廠商前綴可能會影響網站性能,因為它們會增加 CSS 代碼的大小。但是,影響通常很小,特別是如果您使用 CSS 壓縮器來壓縮代碼。

如何及時了解有關廠商前綴的最新發展?

鑑於 Web 開發的快速變化性質,及時了解有關廠商前綴的最新發展可能具有挑戰性。但是,關注 CSS 相關的博客、論壇和社交媒體帳戶會有所幫助。此外,CSS 工作組的網站和 Mozilla 開發者網絡是了解最新信息的極好資源。

以上是是時候重新考慮CSS中的供應商前綴的時間的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1655
14
CakePHP 教程
1414
52
Laravel 教程
1307
25
PHP教程
1254
29
C# 教程
1228
24
Google字體可變字體 Google字體可變字體 Apr 09, 2025 am 10:42 AM

我看到Google字體推出了新設計(Tweet)。與上一次大型重新設計相比,這感覺更加迭代。我幾乎無法分辨出區別

如何使用HTML,CSS和JavaScript創建動畫倒計時計時器 如何使用HTML,CSS和JavaScript創建動畫倒計時計時器 Apr 11, 2025 am 11:29 AM

您是否曾經在項目上需要一個倒計時計時器?對於這樣的東西,可以自然訪問插件,但實際上更多

HTML數據屬性指南 HTML數據屬性指南 Apr 11, 2025 am 11:50 AM

您想了解的有關HTML,CSS和JavaScript中數據屬性的所有信息。

如何通過CSS選擇第一個類名為item的子元素? 如何通過CSS選擇第一個類名為item的子元素? Apr 05, 2025 pm 11:24 PM

在元素個數不固定的情況下如何通過CSS選擇第一個指定類名的子元素在處理HTML結構時,常常會遇到元素個數不�...

為什麼Flex佈局中的紫色斜線區域會被誤認為是'溢出空間”? 為什麼Flex佈局中的紫色斜線區域會被誤認為是'溢出空間”? Apr 05, 2025 pm 05:51 PM

關於Flex佈局中紫色斜線區域的疑問在使用Flex佈局時,你可能會遇到一些令人困惑的現象,比如在開發者工具(d...

使Sass更快的概念證明 使Sass更快的概念證明 Apr 16, 2025 am 10:38 AM

在一個新項目開始時,Sass彙編發生在眼睛的眨眼中。感覺很棒,尤其是當它與browsersync配對時,它重新加載

我們如何創建一個在SVG中生成格子呢模式的靜態站點 我們如何創建一個在SVG中生成格子呢模式的靜態站點 Apr 09, 2025 am 11:29 AM

格子呢是一塊圖案布,通常與蘇格蘭有關,尤其是他們時尚的蘇格蘭語。在Tar​​tanify.com上,我們收集了5,000多個格子呢

在前端開發中,如何使用CSS和JavaScript實現類似Windows 10設置界面的探照燈效果? 在前端開發中,如何使用CSS和JavaScript實現類似Windows 10設置界面的探照燈效果? Apr 05, 2025 pm 10:21 PM

在前端開發中如何實現類似Windows...

See all articles