Верстка, CSS, HTML, SVG
Итого: id используется в html (для якорей и связки label с элементами формы) и в js, когда нужно обратиться к одному конкретному элементу, а class в css и в js для выборки любого кол-ва элементов.
В чем функциональная разница класса и id?
Давно хотел спросить. А в чем же функциональная разница класса и id? Ведь по факту я могу задать стили, получить элемент через js суть одна и та же? Есть различия? Про то что id должен быть уникальным я знаю но тут опять же я могу сделать наоборот и все будет точно так же? Я так понимаю что это нужно для "удобства". Или же все таки есть какие то реальные особенности кроме приоритета id над классом?
id - это название, встречающееся на странице ровно один раз. И используется id не только для CSS и JS. Якоря на странице, привязка input к form и label к input - это тоже делается через id.
А class - это просто ярлычок, не имеющий никакой дополнительной семантики. Ярлычков-классов у любого элемента может быть сколь угодно много. Мы можем выбирать элементы по отдельным классам и комбинациям классов...
А class - это просто ярлычок, не имеющий никакой дополнительной семантики. Ярлычков-классов у любого элемента может быть сколь угодно много. Мы можем выбирать элементы по отдельным классам и комбинациям классов...
Если не путаю, у id выше специфичность в css-правилах.
ты точно понимаешь значение слова уникальный?
Сергей Цыганов
Я спросил про функциональную разницу
На одностраничниках это не очевидно. Если на странице много элементов, полезно уметь различать, это класс для стилей, или для захвата предмета из JS, потому что когда-то стиль может стать не актуальным, захочется удалить класс, а окажется, что на нем был прописан не только CSS, но и JS;
А когда у предмета уникальный Id - можно предположить, что наверняка у него есть какое-то взаимодействие с JS;
Так же, чтобы разделить мухи от котлет, если JS используется и для классов, иногда заводят отдельный класс с припиской js, типа
А когда у предмета уникальный Id - можно предположить, что наверняка у него есть какое-то взаимодействие с JS;
Так же, чтобы разделить мухи от котлет, если JS используется и для классов, иногда заводят отдельный класс с припиской js, типа
Tmp
Чтобы сразу разграничить, первое по умолчанию для стилей, а js- для скрипта. Не использую это прям везде, но иногда полезно) Если захочется один из классов удалить, не придется думать, не сломает ли это что-то в скрипте.
Сергей Цыганов
Спасибо, действительно, очень удобно! Буду применять на практике. Самм с таким не сталкивался действительно потому что делал небольшие и несложные проекты
чуваг... мона вертеть (и на ку-ю тоже) все эти классы и ид (меняя их меж собой или не меняя с т.з. кода), но вот какая фтука с т.з. сео - сделаешь не по правилам - не будет успеха.
ну а с т.з. прогерства всякого - тебе выше написали, имям видней.
ну а с т.з. прогерства всякого - тебе выше написали, имям видней.
Сергей Цыганов
Да я уже понял что все таки можно делать с ними все что угодно, это уже как организовать стиль оформления кода
- id используется для конкретного элемента, он должен быть один в документе, а class можно применять и к нескольким элементам
- id можно использовать как якорь, а также для связки элементов формы друг с другом из коробки, если таким образом использовать классы, то такое поведение нужно самостоятельно написать на js
- в css у id специфичность 100, у class всего 10, это значит, что стили селектора по id переназначить сложнее – использовать селектор по id в css крайне нежелательно
Итого: id используется в html (для якорей и связки label с элементами формы) и в js, когда нужно обратиться к одному конкретному элементу, а class в css и в js для выборки любого кол-ва элементов.
Id это присваивание стиля к одному выбранному элементу
А класс может быть применен к нескольким элементам
А класс может быть применен к нескольким элементам
- Функционально только ради "удобства" и приоритета.
- Выборка getElementsByClassName() возвращает группу элементов, а выборка getElementById() только один элемент, первый найденный.
Игорь Лукьянов
querySelector('.classname') тоже один вернёт. А querySelectorAll('[id="t1"]') вернёт несколько элементов с одинаковым id.
Похожие вопросы
- В чём различие id и class?
- подскажите по верстке. Вопрос описан ниже: по поводу классов чуть чуть не могу понять.
- Создать текст-рыба про класс.
- Объясните что такое классы в html
- Теги в HTML and CSS. Можно ли заворачивать тег body в класс div?
- в чём разница платного и бесплатного хостинга
- Стоит ли учить html по книге 2007 года? Есть ли разница? Или посоветуйте мне с какой книги начать?
- В чем разница между padding и margin?
- В чём разница учиться на frontend-разработчкика дома и ходить куда-то на курсы?
- Разница между <...> и <.../>