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.)
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; }
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
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