Rozszerzenia niestandardowe w CSS

Do napisania tego postu skłoniła mnie uwaga w komentarzu do artykułu na temat szpalt w CSS3. Paweł Wimmer napisał, że w tym momencie uzyskanie efektu szpalt w CSS3 wymaga zastosowania właściwości z CSS3 opatrzonych prefiksem (przedrostkiem, rozszerzeniem) (ang. vendor-specific extension), który to w dalszej części będę nazywał rozszerzeniem niestandardowym opierając się na tłumaczeniu specyfikacji CSS 2.1.
W komentarzu padła uwaga, że stosowanie rozszerzeń niestandardowych jest niepotrzebnym sianiem zamętu, niepotrzebną emanacją wojny przeglądarek na specyficzne dla danej przeglądarki rozszerzenia.

W związku z powyższym odwołajmy się do specyfikacji CSS 2.1, która tak definiuje rozszerzenia niestandardowe:

„Rozszerzenia niestandardowe
Identyfikatory w CSS mogą zaczynać się znakiem ‚-‚ (myślnik) lub ‚_’ (znak podkreślenia). Słowa kluczowe i nazwy własności zaczynające się od znaków -‚ i ‚_’ są zarezerwowane dla rozszerzeń producentów. Rozszerzenia producentów powinny być wyłącznie w jednym z następujących formatów:
  • ‚-‚ + identyfikator producenta + ‚-‚ + znacząca nazwa
  • ‚_’ + identyfikator producenta + ‚-‚ + znacząca nazwa
Jeśli np. organizacja XYZ dodałaby własność służącą do opisywania koloru obramowania wschodniej strony ekranu, jej nazwa mogłaby być następująca: -xyz-border-east-color.

Inne znane przykłady:
  • -moz-box-sizing
  • -moz-border-radius
  • -wap-accesskey
Jest zagwarantowane, że w żadnej aktualnej ani przyszłej wersji CSS żadna własność ani żadne słowo kluczowe nie będzie zaczynać się od myślnika lub znaku podkreślenia. Dlatego typowe implementacje CSS mogą nie rozpoznać takich własności i zignorować zgodnie z zasadami postępowania z błędami analizy składniowej. Ponieważ jednak myślnik i znak podkreślenia występujące na początku należą do gramatyki, implementatorzy CSS 2.1 zawsze powinni mieć możliwość użycia zgodnego z CSS analizatora składni, bez względu na to czy obsługują rozszerzenia niestandardowe, czy nie.

Autorzy powinni unikać rozszerzeń niestandardowych.

Proszę szczególnie zwrócić uwagę na ostatnie zdanie. Tak, to prawda. Generalna zasada brzmi: nie korzystamy z rozszerzeń niestandardowych przy tworzeniu publicznie dostępnych witryn. Amen.

Dodaj komentarz