Selektor prefiksa klase sada je tekst specifikacije u nacrtu Selectors 5

Nacrt od 18. avgusta dodaje odjeljak 2.1, selektori prefiksa klase, i definiše .foo-* tako da pogađa svaku klasu koja počinje tim prefiksom. Zamjenjuje zaobilaznice s atributskim selektorom koje nosi svaki dizajn sistem. Nijedan pregledač to još ne podržava, a pravilo poklapanja ima ivicu na kojoj će se ljudi saplitati: .foo-* ne pogađa foo--bar.

Ako održavaš sistem pomoćnih klasa, pisao si [class^="btn-"] i [class*=" btn-"] jedno pored drugog, prvo za prvu klasu u atributu, a drugo za sve ostale, i bar dvaput si nekome objašnjavao zašto idu u paru. Radni nacrt specifikacije Selectors Level 5 od 18. avgusta 2026. sada definiše ono što zamjenjuje oba. Šta stoji u tekstu specifikacije Odjeljak 2.1 određuje selektor prefiksa klase kao tačku, iza koje odmah slijedi identifikator koji se završava jednom ili više crtica, a iza njega odmah zvjezdica. .foo-* je osnovni obrazac. Predstavlja element koji bi se poklopio sa selektorom klase što počinje datim prefiksom. Uz to idu dva uslova, a drugi je onaj koji vrijedi zapamtiti. Klasa mora da nosi bar jedan znak poslije prefiksa, pa .foo-* ne pogađa golo foo- . I prvi znak poslije prefiksa ne smije biti crtica, pa .foo-* ne pogađa ni foo--bar . Ako tvoja konvencija imenovanja za modifikatore koristi dvostruku crticu, kao BEM, to pravilo odlučuje da li ti je ovaj selektor upotrebljiv ili nije. Zašto postoji Prijedlog je 2024. dala Lea Verou, a razlog nikad nije bio u tome šta se može, a šta ne. Oba postojeća oblika već rade. Samo su razvučeni, teško se čitaju, i taj par postoji isključivo zato što poklapanje dijela atributa ne poznaje granicu riječi unutar spiska klasa. Selektoru koji zna da pogađa klase ne treba par. To je cijela mogućnost: isto poklapanje, izrečeno jednom, u obliku koji kaže šta znači. Šta ovo nije Ovo je tekst specifikacije u radnom nacrtu, što jeste stvaran korak, ali nije datum isporuke. Nijedan pregledač to ne podržava, nema stanja u Baselineu koje bi se provjerilo, a radni nacrt se do faze kandidata za preporuku još može mijenjati. Praktična posljedica danas je u planiranju, ne u kodu. Ako se spremaš da ustališ konvenciju imenovanja kroz cio dizajn sistem, vrijedi znati da dolazi selektor koji razumije prefikse i da će dvostruku crticu tretirati kao nepoklapanje. Kad stigne, @supports selector(.foo-*) je kapija iza koje ga treba staviti.