Защо да избягвате селектора на идентификатори () - Alsacreations

css 27407 теми

защо

CSS и форматиране, CSS3

Когато едно изречение ме изненада и не мога да разбера:
Идентификаторите трябва да се избягват (с изключения), защото са твърде специфични при изчисляването на теглото на селектора

Някой има обяснение?

произходът на тази препоръка е от OOCSS и N. Sullivan.
По-добре да използвате само класове, отколкото идентификатори и класове, защото когато става въпрос за презаписване на изрази, чийто селектор съдържа идентификатор, имате нужда от друг идентификатор, тъй като дори 15 класа няма да имат толкова тежест, колкото този идентификатор.
Това е като! Важно и по-малко лошо.

И добавям, защото объркването е направено (не от вас, но твърде често):
Какво не казва това изречение: тези идентификатори трябва да се избягват навсякъде. Той е задължителен за достъпността на формуляри (за етикет и идентификатор на входа/textarea/select) и е от съществено значение в JS

Мисля, че Рафаел е имал предвид, че тъй като идентификаторът има по-голяма тежест от клас, е по-трудно да се предефинира css в него, като просто се премине през клас. След това ще трябва да създадете по-сложен селектор.

Например в следния код:


ако имате вход с идентификатора "myInput" и към него добавите класа "грешка" (когато потребителят греши например), границата ще остане синя.

От своя страна, от тази статия, аз използвам само идентификатори в js (освен когато нямам избор) и откривам, че моят HTML код е придобил четливост.