為什麼CSS 供應商特定的偽元素/類無法組合
CSS 中的常見做法是使用供應商-特定的偽類和偽元素,以實現跨瀏覽器相容性,以設定輸入欄位中佔位符文字的樣式。然而,由於 CSS 驗證的限制,將這些特定於供應商的選擇器組合到一個規則集中(就像使用常規 CSS 選擇器一樣)是不可能的。
CSS2.1 定義選擇器以包含直到聲明區塊的左大括號。如果使用者代理程式遇到無法解析的選擇器,它必須忽略選擇器和對應的宣告區塊。
在特定於供應商的前綴的上下文中,會出現此限制,因為瀏覽器通常無法理解來自其他供應商。當規則在偽類或偽元素選擇器中包含特定於供應商的前綴時,瀏覽器可能無法識別它,從而刪除整個規則。
例如,如果逗號分隔的規則集包括帶有:-moz-placeholder 偽類的選擇器,不支援Mozilla 特定前綴的瀏覽器(例如Chrome 或Safari)將忽略整個規則,因為它們無法解析該特定選擇器。這使得組合方法無效。
需要注意的是,某些瀏覽器(例如 WebKit)可能部分偏離此規則,並允許在某些上下文中使用無法識別的偽元素。然而,組合特定於供應商的選擇器在不同瀏覽器中仍然不一致,並可能導致不可預測的樣式行為。
因此,為了避免此限制並確保一致的佔位符樣式,有必要繼續對不同的不同供應商使用單獨的特定於供應商的選擇器瀏覽器。
以上是為什麼我無法組合 CSS 供應商特定的偽元素/類別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!