Чому слід уникати селектора ідентифікаторів () - Alsacreations
css 27407 теми

CSS та форматування, CSS3
Коли речення мене здивувало, і я не можу зрозуміти:
Слід уникати ідентифікаторів (за винятками), оскільки вони занадто конкретні при розрахунку ваги селектора
У когось є пояснення?
походження цієї рекомендації походить від OOCSS та Н. Саллівана.
Краще використовувати лише класи, ніж ідентифікатори та класи, тому що коли йдеться про перезапис операторів, селектор яких містить ідентифікатор, вам потрібен інший ідентифікатор, оскільки навіть 15 класів не матимуть такої ваги, як цей ідентифікатор.
Це як! Важливо і менш гірше.
І я додаю, оскільки плутанину вносять (не ви, але занадто часто):
Про що не говорить це речення: цього ідентифікатора слід уникати скрізь. Це обов’язково для доступності форм (для на етикетці та ідентифікатора на введенні/textarea/select) та обов’язково в JS
Я думаю, що Рафаель мав на увазі те, що оскільки ідентифікатор має більшу вагу, ніж клас, важче перевизначити css у ньому, просто пройшовши через клас. Потім вам доведеться створити більш складний селектор.
Наприклад, у наступному коді:
якщо у вас є вхід з ідентифікатором "myInput" і ви додаєте до нього клас "помилка" (наприклад, коли користувач помиляється), межа буде залишатися синьою.
Зі своєї статті, з цієї статті, я використовую ідентифікатор лише у js (за винятком випадків, коли у мене немає вибору), і я виявляю, що мій HTML-код зробив читабельність.
Ось, сподіваюся, я добре відповів на питання, я думаю, що якщо я помиляюся, мене швидко виправлять ^^.
дякую за відповіді.
Це те, що я думав, навіть якщо я особисто вважаю використання іді виправданим у певних випадках.
Тим більше, що елемент з ідентифікатором унікальний, то чому б не переписати правило на ідентифікатор правилом на ідентифікатор?
Ваш новий приклад цілком правильний.
Це принцип OOCSS, і його слід розглядати лише як принцип. Для стилювання унікального елемента, який перетинає сайт (випадковим чином, заголовок сторінки), ідентифікатор залишається виправданим.
Цей принцип бере свій початок із надзвичайно великих таблиць стилів, що з’явилися в середині 2000-х у великих інформаційних системах. У цьому контексті ідентифікатор, що використовується в CSS, може мати катастрофічний каскадний ефект, якщо новий учасник повинен внести зміни або повторно використати частину CSS. Саме з цієї причини ми рекомендуємо використовувати класи, яких може бути декілька на одній сторінці та багаторазові за своєю природою. Тому цей принцип екстрапольовано для обмеження ризиків, яким піддаються інтегратори, які мало обізнані про вагу селекторів або про певні обмеження, такі як робота в команді.
Однак, категорично не заборонено використовувати ідентифікатори, ви просто повинні знати межі.
PS: Я підтримую зауваження Феліпе, цей принцип обмеження використання ідентифікаторів стосується лише CSS. Багатьом важливо мати ідентифікатор на ваших елементах HTML (анкери, поля та мітки форм тощо).