How to use HTML «id»
inside your CSS files
As you should know «id» is just an HTML attribute that can be used for several options.
One of these options is to properly identify elements inside your HTML documents that later can be styled u sing CSS.
Create a connection to style your id
If you want to properly style your HTML «id» with CSS, you must first create a connection between your HTML markup and your CSS file.
To do this, you will need to call the «id» name inside your CSS file by using the hashtag «#» symbol.
Now, this can sound complicated at first but let’s take a look to a quick example.
For instance, imagine that you have a div with the «id» name «clever».
Content example.
This «id» in CSS is called selector.
So if you want to style this div, you will need to write the hashtag «#» symbol with the name «clever».
See the CSS example below.
#clever
Inside this example we are just giving the «id» with the name «clever» a color background of purple.
Once you have made this connection inside your CSS file, then you can proceed by adding more CSS styles like changing text color, adding padding, or perhaps increasing the border.
On the example below you can see all the HTML markup and the CSS together in action.
In this case we are using and internal style sheet but you can also use an external CSS file if you want.
Using ID in CSS #cleverContent example.
And here it is, how the final result will look.
Keep in mind that with CSS you will have many combinations.
For instance you can also use the hexadecimal color #830083 to give the same purple color.
So never limit your options while working with CSS or think that just because someone is doing something different, you might be wrong.
Options are endless with CSS.
You can always mix and match anything.
Like mix hexadecimal color names or mixing «id» names with «class» names or combine the «id» with any HTML element, just look at the examples below.
div#clever < background: #830083; color: #FFF; border: 2px solid #000; text-align: center; padding: 8px 0 10px 0; >body #clever
The only recommendation that I can give you before finishing this will be to limit yourself when using «id» names.
I mean if you are going to use «id» names with JavaScript or with HTML elements that require to use «id» like this CSS accordion or this accordion with the toggle plus and minus signs, then you will be fine.
But if you are only going to use «id» names for styling purposes, then I will going to rather recommend you to use «class» names instead.
A good post that can expand on this will be this one, HTML id vs class which will give you a better understanding of why not using «id» names too often.
For the meantime that’s all for me folks and remember, if you need web design in Fort Worth or if you need some extra help from a web developer, don’t be shy and send me a message below.
Related Blogs
© 2022 — All rights reserved. Supfort.com v 1.1
Supfort Web Design, SEO, and Development
CSS. Как обратиться к элементу по id?
Как обратится к элементу по ID.
У меня есть два элемента — span и input[checkbox].
Мне нужно чтобы при изменении чекбокса менялись стили span.
Проблема в том, что они находятся в разных местах страницы.
TEST
#ch: checked
- Вопрос задан более трёх лет назад
- 761 просмотр
1 комментарий
Простой 1 комментарий

если они в разных местах страницы — только js
Решения вопроса 1
Ankhena @Ankhena Куратор тега CSS
Нежно люблю верстку
При такой разметке на CSS никак.
TEST
#ch:checked + div .sp <>
Суть в том, что вы скрываете сам инпут. Делать это нужно используя CSS паттерн visually-hidden (вариантов несколько, легко гуглятся) для того, чтобы осталась функциональность для доступности.
А стилизуется лейбл или его псевдоэлемент.
Клик происходит по лейблу, но инпут переключается, потому что они связаны. Находится при этом лейбл может где угодно.
Нюанс один: при клике на лейбл, браузер прокручивает страницу к тому месту, где находится инпут. Так что аккуратно, если они совсем в разных местах.
Как обратиться по id css

Селектор id в CSS.
Основная задача селектора id заключается в том, чтобы выбрать элемент с определённым идентификатором.
В настоящее время id селекторы в основном применяются на веб страницах с целью динамического управления элементами с использованием языка программирования JavaScript.
Обратите внимание на следующие правила, которые необходимо соблюдать при работе с id селекторами:
- значение идентификатора должно быть уникально на странице, размещение нескольких одноименных идентификаторов на странице считается ошибкой (выборка остановится на первом идентифакторе).
- все названия id селекторов должны начинаться с решётки (благодаря ей браузеры находят эти селекторы в таблице стилей). Решетка требуется только в названии селектора таблицы стилей (в значении глобального HTML атрибута id она не ставится, будьте внимательны из-за этого возникает много ошибок).
- используйте только буквы алфавита (A-Z, a-z), числа, дефисы, знаки подчеркивания.
- название после решётки всегда должно начинаться с символа (неправильно: #50cent, #-vottakvot).
- учитывайте регистр при наименовании id селекторов, т.к. они к этому чувствительны (#vottakvot и #VotTakVot разные идентификаторы).
Поддержка браузерами
CSS синтаксис:
Версия CSS
Пример использования
Для начала необходимо создать идентификатор, назначив ему имя, которое нам необходимо придумать самостоятельно:
После того как мы создали наш идентификатор в таблице стилей, нам необходимо применить его к интересующему нас элементу, который мы хотим стилизовать. Чтобы указать идентификатор для элемента, необходимо добавить к этому элементу глобальный HTML атрибут id со значением нашего идентификатора, но уже без решетки:
Теперь соберем это в одном примере и посмотрим результат:
Результат нашего примера:

Пример использования id селектора. CSS селекторы
5.1. Селекторы идентификаторов (id селекторы)
Селекторы идентификаторов и селекторы классов очень похожи, но есть различия. Первый различием является то, что перед селекторами идентификаторов ставится решетка ( # ), а не точка, как у селекторов класса. В примере 1 показано, как выглядит селектор идентификатора.
Вторым отличием является атрибут, который используется, чтобы применить идентификатор к элементу. Вместо class , используется атрибут id . Это показано в примере 2.
И самое главное: идентификатор может применятся один раз на одной странице!
Селекторы CSS по id
Помимо селекторов по названию тега и названию класса есть ещё селекторы по уникальному атрибуту id. В отличии от классов id может иметь только одно значение. Нельзя написать несколько значений через пробел по аналогии с клсами. Значение атрибута id должно быть уникальным на всю страницу. В противном случае на некоторых браузерах селектор может не работать.
Рассмотрим пример использования селектора по id элемента. Представим что есть любой тег с атрибутом id: Обратиться к такому элементу по id можно по тому же принципу, что и при обращении к классу, но вместо точки перед значением атрибута необходимо поставить решётку «#«. В браузере получим такой результат: Как и в случае с классами можно обращаться к вложенным элементам. К примеру, для такой вложенности тегов: CSS код селектора будет выглядеть так::
всего от 290 руб
Если у Вас появились вопросы по материалам на нашем сайте, то пожалуйста, пришлите нам их на почтовый адрес support@mousedc.ru. Мы обязательно ответим.
Также Вы можете отправить нам свой отзыв на наши услуги, замечание или предложение. Мы ценим наших клиентов и внимательно прислушиваемся ко всем замечаниям!
- HTML
- Основы
- Теги
- Основы
- Свойства
- Основы
- База данных
- Объектно-ориентированное программирование
- Laravel
- Yii
- Основы
- WordPress
- Управление
- Разработка
- Управление
- Разработка
- Управление
- Разработка
- Управление
- Разработка
- Управление
- Разработка
- Управление
- Разработка
- Управление
- Управление
- Управление
- Управление
- Управление
- Управление
- Основы
- Работа с DOM
- AJAX
- jQuery
- Vue
- NodeJS
- React
- Основы React
- Стейты в React
- Компоненты React
- Apache
- Игровые серверы
- Linux
- MySQL
- Docker
- Nginx
- Устранение ошибок
- Почта
- SEO
- Личный кабинет
- Виртуальный хостинг
- Домены

- Генератор паролей
- Генератор .htpasswd
Коврик для мыши новым клиентам
Оплатите хостинг на год и получите удобный коврик
Помощь в переносе
с другого хостингаХотите переехать? Мы поможем перенести всё
Запишитесь на интенсивные курсы по созданию сайтов.
Приветствуем всех в нашем уютном дата центре! Мы предоставляем качественный и надёжный хостинг. У нас можно заказать домены и VPS, прочитать статьи по созданию сайтов и информационной безопасности. А из наших видео подкастов можно узнать о том, как продвигать и развивать iT-проекты.
Атрибут id
В HTML есть много атрибутов, и у каждого из них своя задача. Познакомимся поближе с атрибутом id . В его названии изначально заложен основной смысл — identifier, то есть идентификатор. Он задаёт HTML-элементу уникальное название, которое должно быть единственным в рамках документа.
Значение атрибута
Есть несколько условий, которые нужно учитывать при задании атрибута id :
- Значение должно содержать как минимум один символ.
- Значение не должно содержать пробелов, табуляций и так далее.
- Значение должно начинаться с латинской буквы, потому что цифры и символы _ , — , . не были разрешены в HTML4 и могут вызвать проблемы с совместимостью.
Использование атрибута
Стилизация
Атрибут может быть использован для задания стилей элемента. При этом в большинстве случаев такой способ — не самый подходящий для стилизации, потому что в качестве селектора id обладает высокой специфичностью. Из-за этого становится сложнее переопределить свойства при необходимости. Если не нужно задавать для элемента определённые стили с высокой специфичностью, в качестве альтернативы лучше задать элементу класс.
Атрибут id должен быть уникальным на странице, но класс — нет. Он позволяет как обращаться к конкретному элементу, так и стилизовать элементы группами, если у них задан одинаковый класс. Ещё одно различие — значение id всегда должно быть одно, но элементу можно задать несколько значений в атрибуте class , указывая их через пробел.
Связывание поля ввода и подписи по id
Атрибут id также используется при создании форм. К полям ввода в форме часто нужно добавлять подписи для описания того, что нужно ввести пользователю. В этом случае используется специальный тег label , который логически связывает текст подписи и конкретное поле ввода. Например, при такой связке клик по подписи автоматически переместит курсор в поле ввода.
Связать поле ввода и подпись к нему можно, просто обернув поле ввода в тег label вместе с текстом подписи. Но такой способ в некоторых случаях может быть неудобен — например, когда в разметке между полем и подписью есть другие элементы. В таких случаях будет полезен второй способ — с использованием id . Чтобы связать поле ввода и подпись с его помощью нужно:
- Добавить полю ввода идентификатор, задав значение атрибуту id .
- Добавить тегу label атрибут for и указать в нём значение идентификатора поля ввода.
Создание якоря с помощью id
Можно задать идентификатор фрагменту в любом месте HTML-страницы, а затем получать быстрый доступ к нему через id . Такой якорь удобен, когда на странице много данных, и нужно иметь возможность быстро перейти к определённому разделу.
Для создания якоря нужно:
- Присвоить атрибут id элементу, к которому мы хотим иметь быстрый доступ.
- Добавить ссылку на этот элемент там, откуда мы хотим осуществлять переход.
Например, можно сделать навигацию по странице в начале документа, а ссылки на разделы превратить в якоря, тогда можно будет быстро пролистывать страницу к нужному разделу, кликнув по его названию.
Также с помощью id можно ссылаться на конкретное место в другом документе, дописав в конце адреса идентификатор нужного фрагмента.
Получение доступа к элементу из JavaScript
С HTML-элементом часто нужно работать из JavaScript. В языке есть специальный метод, чтобы найти элемент по атрибуту id и получить к нему доступ — getElementById() . Дальше с найденным элементом можно производить нужные действия.
Попрактиковаться в использовании атрибута и узнать больше о HTML, CSS и JavaScript можно на наших интерактивных курсах.
Похожие публикации:
- Как опустить footer в самый низ css
- Как отключить кэширование css на сайте
- Что выбрать arduino или raspberry
- Что лучше css v34 или css v91
Полное руководство по HTML-атрибутам data-*
Представляем вашему вниманию перевод статьи, посвящённой использованию атрибутов data-* . Это — атрибуты, которые можно применять для удобного хранения в стандартных HTML-элементах различной полезной информации. Эта информация, в частности, может применяться в JavaScript и CSS.
Общие сведения
HTML-элементы могут иметь атрибуты, которые используются для решения самых разных задач — от предоставления данных ассистивным технологиям, до стилизации элементов.
При этом не рекомендуется создавать собственные атрибуты, или применять существующие атрибуты такими способами, на которые они не рассчитаны.
Это плохо по многим причинам. HTML-код оказывается неправильно сформированным. И хотя подобное может и не иметь реальных негативных последствий, это лишает разработчика тёплого чувства вызываемого тем, что он создаёт валидный HTML-код. Но главная причина того, что так поступать не следует, заключается в том, что HTML — это язык, который постоянно развивается. В результате, если некий атрибут сегодня в языке не применяется, это не значит, что в будущем ничего не изменится.
Правда, если кому-то нужно использовать подобные атрибуты, у него есть совершенно нормальный способ это делать. Речь идёт о создании собственных атрибутов, названия которых начинаются с префикса data- . С этими атрибутами можно совершенно спокойно работать, применяя их так, как нужно программисту.
Синтаксис
Возможность создавать собственные HTML-атрибуты и записывать в них данные может оказаться крайне полезной. Это, как вы понимаете, возможно благодаря атрибутам data-* . Именно для этого такие атрибуты и предназначены. Выглядит это так:
Эти атрибуты, именно из-за того, что они всегда начинаются с префикса data- , часто называют атрибутами data-* или data-атрибутами. При формировании имён этих атрибутов сначала идёт слово data , потом — тире ( — ), а потом — оставшаяся часть имени, устроенная так, как нужно разработчику.
Можно ли использовать атрибут, имеющий имя data?
Вот пример кода, в котором используется атрибут с именем data :
Атрибут с таким именем, вероятно, никому не повредит, но его применение не позволит пользоваться JavaScript-инструментами, которые мы рассмотрим ниже. В этом примере разработчик, фактически, создаёт некий собственный атрибут, что, как уже было сказано, делать не рекомендуется.
Чего не стоит делать с атрибутами data-*
В таких атрибутах не стоит хранить содержимое, которое должно быть доступно ассистивным технологиям. Если некие данные должны быть видимы на странице, или должны быть доступны средствам для чтения с экрана, их недостаточно просто поместить в атрибут data-* . Такие данные должны появиться и в обычной HTML-разметке.
Chris CoyierВот материал о том, как скрывать элементы веб-страниц.
Стилизация элементов с использованием атрибутов data-*
В CSS можно выбирать HTML-элементы, основываясь на атрибутах и их значениях.
/* Выбрать элемент с таким именем атрибута, имеющим такое значение */ [data-size="large"] < padding: 2rem; font-size: 125%; >/* Выбор можно ограничить элементом, классом, или чем-то другим */ button[data-type="download"] < >.card[data-pad="extra"]
Это может показаться интересным. Для стилизации в HTML/CSS используются, в основном, классы. И хотя классы — это замечательный инструмент (они отличаются средним уровнем специфичности, с ними можно работать с помощью удобных JavaScript-методов через свойство элементов classList ), элемент может либо иметь, либо не иметь некоего класса (то есть, класс в элементе либо «включен», либо «выключен»). При использовании атрибутов data-* в распоряжении разработчика оказываются и возможности классов («включено/выключено»), и возможность выбора элементов, основываясь на значении атрибута, которое он имеет на том же уровне специфичности.
/* Выбор элементов, у которых имеется указанный атрибут */ [data-size] < >/* Выбор элемента, атрибут которого имеет заданное значение */ [data-state="open"], [aria-expanded="true"] < >/* Селектор "начинается с", использование которого приведёт к выбору элементов, атрибут которых содержит "3", а так же - что угодно другое, начинающееся с 3 - вроде "3.14" */ [data-version^="3"] < >/* Селектор "содержит" указывает на то, что заданная строка должна содержаться где-то в значении свойства */ [data-company*="google"]
Специфичность селекторов атрибутов
Специфичность селекторов атрибутов такая же, как у классов. Специфичность часто рассматривают как значение, состоящее из 4 частей:
- Встроенный стиль
- ID
- Классы и атрибуты
- Теги
А вот ещё один селектор:
div.card[data-foo="bar"]
Он уже будет описываться значением 0, 0, 2, 1 . Число 2 здесь появляется из-за того, что тут имеется и класс ( .card ), и атрибут ([data-foo=»bar»] ). А 1 здесь из-за того, что тут присутствует лишь один тег ( div ).
Вот, чтобы было понятнее, иллюстрированная версия этих рассуждений.

1 тег, 1 класс и 1 атрибут
У селекторов атрибутов специфичность ниже, чем у идентификаторов ( ID ), но выше, чем у тегов (элементов). Их специфичность равна специфичности классов.
Значения атрибутов, нечувствительные к регистру
Если нужно, чтобы селекторы выбирали бы атрибуты, значения которых могут содержать строки, записанные с использованием разных комбинаций строчных и прописных букв, можно воспользоваться вариантом селектора, нечувствительным к регистру.
/* Всё это соответствует следующему селектору */ [data-state="open" i]
Такое поведение обеспечивает использование в селекторе символа i .
Вывод данных, хранящихся в атрибутах data-*
CSS позволяет извлекать значения атрибутов data-* и выводить их на странице.
/* */ [data-emoji]::before < content: attr(data-emoji); /* Возвращает ':-)' */ margin-right: 5px; >Примеры использования атрибутов data-* для стилизации элементов
Атрибуты data-* можно использовать для указания того, сколько столбцов должно быть у grid -контейнера. Вот HTML-код:
Вот соответствующий CSS-код:
[data-columns] < display: grid; grid-gap: 1rem; padding: 1rem; margin: 0 0 1rem 0; >[data-columns] > div < height: 100px; background: white; >[data-columns="2"] < background: #64B5F6; grid-template-columns: repeat(2, 1fr); >[data-columns="3"] < background: #9CCC65; grid-template-columns: repeat(3, 1fr); >[data-columns="4"]
А вот — фрагмент результирующей страницы.

Grid-контейнеры, настройка которых производится с помощью атрибутов data-*
Поэкспериментировать с этим примером можно на CodePen.
Работа с атрибутами data-* в JavaScript
К значениям атрибутов data-* можно обращаться, как и к значениям других атрибутов, пользуясь методом getAtribute для чтения данных, и методом setAttribute для записи.
// Чтение значения атрибута let value = el.getAttribute("data-state"); // Запись значения атрибута. // В data-state записывается значение "collapsed" el.setAttribute("data-state", "collapsed");Однако атрибуты data-* имеют и собственный особый API. Предположим, у нас есть элемент с несколькими атрибутами data-* (что совершенно нормально):
Если имеется ссылка на этот элемент, то читать и записывать значения его атрибутов можно так:
// Чтение span.dataset.info; // 123 span.dataset.index; // 2 // Запись span.dataset.prefix = "Mr. "; span.dataset.emojiIcon = ";-)";Обратите внимание на то, что в последней строке JS-кода используется запись имени атрибута в верблюжьем (CamelCase) стиле. Система автоматически преобразует имена HTML-атрибутов, записанные в кебаб-стиле, в имена, записанные в верблюжьем стиле. То есть — data-this-little-piggy превращается в dataThisLittlePiggy .
Этот API, конечно, не такой удобный, как API classList, поддерживающий понятные методы вроде add , remove , toggle и replace , но это, всё же, лучше чем ничего.
В JavaScript можно работать и со встроенными в элементы наборами данных:
А почему бы не записать в атрибут data-* JSON-данные? Ведь это всего лишь строки, которые можно отформатировать как валидные JSON-данные (учитывая кавычки и прочее). При необходимости эти данные можно извлечь из атрибута и распарсить.
const el = document.querySelector("li"); let json = el.dataset.person; let data = JSON.parse(json); console.log(data.name); // Chris Coyier console.log(data.job); // Web PersonОб использовании атрибутов data-* в JavaScript
Идея тут заключается в том, чтобы, пользуясь атрибутами data-* , размещать в HTML-коде данные, к которым можно обращаться из JavaScript для выполнения неких действий.
Распространённый вариант реализации этого сценария направлен на организацию работы с базами данных. Предположим, у нас имеется кнопка Like :
У этой кнопки может быть обработчик нажатия, выполняющий AJAX-запрос к серверу. Обработчик, если пользователь лайкнет что-то с помощью кнопки, увеличивает количество лайков в серверной базе данных. Обработчик знает о том, какую именно запись надо обновить, так как берёт сведения об этом из атрибута data-* .
Итоги
Вот, вот и вот — стандарты, связанные с селекторами атрибутов data-* . Здесь, на сайте Caniuse, можно узнать о поддержке атрибутов data-* браузерами. Если вы раньше не пользовались этими атрибутами, надеемся, этот материал дал вам пищу для размышлений.
Уважаемые читатели! Как вы применяете HTML-атрибуты data-*?
