Selektor CSS z kropką w ID

Specyfikacja HTML pozwala na okresy (.) w ID:

<img id="some.id" />

Jednak użycie reguły selektora CSS ID spowoduje, że nie będzie pasować poprawnie:

#some.id { color: #f00; }

Specyfikacja CSS dla selektorów ID nie wspomina o tym przypadku. Więc zakładam, że używa kombinacji nazwy tagu i selektora klas ? Na przykład, reguła CSS a.className będzie miała zastosowanie do wszystkich tagów anchor (<a>) o nazwie klasy className, Jak <a class="className"></a>.

Czy możliwe jest posiadanie zewnętrzna reguła pliku CSS, która odwołuje się do elementu HTML przez jego id, który ma kropkę w nim?

Nie spodziewam się, ponieważ specyfikacja CSS określa, że CSS "identifier" nie zawiera kropki jako ważnego znaku. Czy jest to więc fundamentalna niedopasowanie między specyfikacją HTML i CSS? Czy moja jedyna alternatywa to użycie innego typu wyboru CSS? Czy ktoś mądrzejszy ode mnie może to potwierdzić lub zaprzeczyć?

(usunąłbym kropkę z atrybutu HTML id dla uproszczenia, ale jest identyfikator wygenerowany przez system, więc nie mam możliwości jego zmiany w tym przypadku.)

Author: Jon Adams, 2012-09-07

2 answers

Klasyka. Zaraz po przekopaniu się przez wszystkie specyfikacje pisząc pytanie, przeczytałem je trochę więcej i znalazłem tam postać ucieczki. Nigdy wcześniej tego nie potrzebowałem, ale specyfikacja CSS pozwala na ucieczkę odwrotnego ukośnika ( \ ) , jak większość języków. Co wiesz?

Więc w moim przykładzie pasowałaby następująca reguła:

#some\.id { color: #f00; }

 145
Author: Jon Adams,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-13 20:35:44

Możesz też użyć img[id=some.id]]

Więcej informacji tutaj: http://www.w3.org/TR/selectors/#attribute-selectors

 16
Author: SDD512,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-06 18:10:55