HTML id Attribute
The HTML id attribute is used to specify a unique id for an HTML element.
You cannot have more than one element with the same id in an HTML document.
Using The id Attribute
The id attribute specifies a unique id for an HTML element. The value of the id attribute must be unique within the HTML document.
The id attribute is used to point to a specific style declaration in a style sheet. It is also used by JavaScript to access and manipulate the element with the specific id.
The syntax for id is: write a hash character (#), followed by an id name. Then, define the CSS properties within curly braces <>.
In the following example we have an element that points to the id name «myHeader». This element will be styled according to the #myHeader style definition in the head section:
Example
!DOCTYPE>
Note: The id name is case sensitive!
Note: The id name must contain at least one character, cannot start with a number, and must not contain whitespaces (spaces, tabs, etc.).
Difference Between Class and ID
A class name can be used by multiple HTML elements, while an id name must only be used by one HTML element within the page:
Example
/* Style all elements with the class name «city» */
.city background-color: tomato;
color: white;
padding: 10px;
>
London is the capital of England.
Paris is the capital of France.
Tokyo is the capital of Japan.
Tip: You can learn much more about CSS in our CSS Tutorial.
HTML Bookmarks with ID and Links
HTML bookmarks are used to allow readers to jump to specific parts of a webpage.
Bookmarks can be useful if your page is very long.
To use a bookmark, you must first create it, and then add a link to it.
Then, when the link is clicked, the page will scroll to the location with the bookmark.
Example
First, create a bookmark with the id attribute:
Then, add a link to the bookmark («Jump to Chapter 4»), from within the same page:
Example
Or, add a link to the bookmark («Jump to Chapter 4»), from another page:
Using The id Attribute in JavaScript
The id attribute can also be used by JavaScript to perform some tasks for that specific element.
JavaScript can access an element with a specific id with the getElementById() method:
Example
Use the id attribute to manipulate text with JavaScript:
Tip: Study JavaScript in the HTML JavaScript chapter, or in our JavaScript Tutorial.
Chapter Summary
- The id attribute is used to specify a unique id for an HTML element
- The value of the id attribute must be unique within the HTML document
- The id attribute is used by CSS and JavaScript to style/select a specific element
- The value of the id attribute is case sensitive
- The id attribute is also used to create HTML bookmarks
- JavaScript can access an element with a specific id with the getElementById() method
Как обратиться к id в css
В CSS существует возможность обратиться к элементам html-документа по значению его атрибутов. Вы, конечно, уже знаете про ID и классы. Давайте взглянем на следующий html:
David Walsh
У этого элемента три атрибута: id, class и rel. Обратиться к этому элементу в CSS вы можете либо по его идентификатору (#first-title), либо по имени класса (.magical). Однако знали ли вы, что вы также можете обратиться к нему, используя атрибут rel? Это и называется селекторы по атрибутам:
h2[rel=friend] < /* woohoo! */ >
Существует множество вариантов их использования. Давайте разберёмся более детально с различными опциями и попытаемся придумать сценарии использования атрибутов в реальной жизни.
[rel = external]
Атрибут точно соответствует заданному значению
В приведённом выше примере, атрибут элемента h2 был равен «friend». Селектор, который мы написали ссылался на него, поскольку значение атрибута точно равно «friend». Именно точное. Давайте посмотрим на другой пример:
Attribute Equals
h1[rel=external]
Более реальный пример — стилизация блогролла (blogroll). Скажем у вас есть список ссылок на дружественные сайты:
Jeff Starr David Walsh Richard Felix
И вы хотите задать каждой ссылке свой стиль. Традиционный подход состоит в том, что каждой ссылке указывается класс, но этот подход требует дополнительной разметки. Другой способ — это использование псевдоселектора nth-child. Однако этот подход требует определённого порядка элементов. Эта проблема идеально подходит для применения селекторов по атрибутам, поскольку ссылки уже являются уникальными.
a[href=http://perishablepress.com]
Я уверен, что наиболее часто этот тип селектора используется для элементов input (text, radio и т.п.). Все эти элементы сильно отличаются друг от друга, и писать что-нибудь типа input в большинстве случаев не лучшая идея. Гораздо чаще используется следующая запись:
input[type=text] < padding: 3px; >input[type=radio]
Это единственный способ стилизовать элементы input без дополнительной разметки и всяческих ухищрений.
[rel *= external]
Атрибут содержит заданное значение.
Теперь начинаются более интересные вещи. Знаку равенства в селекторе по атрибуту может предшествовать другой знак, который меняет назначение его использования. Например, «*=» означает «заданное значение может находиться где угодно в значении указанного атрибута». Взгляните на следующий пример:
Attribute Contains
h1[rel*=external]
Не забывайте, что идентификаторы и классы — это тоже атрибуты и вы можете их в селекторах по атрибутам. Итак, давайте предположим, что вы пишете CSS для сайта, в котором вы не имеете доступа к разметке, а неопытный разработчик оставил вам такое:
Вы можете подсветить все эти элементы следующим образом:
div[id*=post]
[rel ^= external]
Атрибут начинается с заданного значения
Attribute Begins
h1[rel^=external]
Пример из жизни может быть такой: скажем вам необходимо подсветить ссылки на дружественный вам сайт отличным от остальных ссылок цветом. Неважно куда ведут эти ссылки, на главную страницу, или на какую-либо другую. Все эти ссылки можно подсветить следующим образом:
a[href^=http://perishablepress.com]
[rel $= external]
Атрибут заканчивается на заданное значение
Если есть возможность сделать выбор по началу значения атрибута, то почему не быть и обратной возможности?
Attribute Ends
h1[rel$=external]
Честно говоря, я не смог найти реального примера применения такого вида селектора. Но я верю что он существует. Предположим, что вам необходимо подсветить ссылки, которые заканчиваются не значимыми символами:
a[href$=#], a[href$=?]
[rel ~= external]
Атрибут находится в списке, разделённом пробелами
Как вы уже знаете, вы можете указать несколько классов стилей для одного элемента. И если вы делаете именно так, то вы можете использовать имя класса для доступа к элементу в CSS. В случае использования селекторов по атрибуту, не всё так просто. Если атрибуту rel присвоено несколько значений (разделённых пробелами), то вам необходимо использовать «~=»;
Attribute Space Separated
h1[rel~=external]
Вы можете подумать, почему бы нам не использовать в этом случае «*=» ? Действительно, такой вариант использования более гибок, однако он может быть слишком гибок. Рассматриваемый селектор требует, чтобы значение отделялось пробелом, а «*=» — нет. Таким образом, если у вас есть два элемента (один с rel=home friend-link, а второй с rel=home friend link), то вам необходимо использовать селектор для случая с пробелами, чтобы выбрать только второй элемент.
[rel |= external]
Атрибут находится в списке, разделённом дефисами
Список, разделённый дефисами очень похож на описанный выше список разделённый пробелами. Но опять же есть свои особенности перед использованием селектора с «*=».
Attribute Dash Separated
h1[rel|=external]
[title = one][rel ^= external]
Соответствие по нескольким атрибутам
Очень важно, что для выборки элементов есть возможность использовать сразу несколько селекторов по атрибутам.
Multiple Attributes
h1[rel=handsome][title^=Important]
Поддержка браузерами
Каждый пример, приведённый выше, работает во всех современных браузерах: Safari, Chrome, Firefox, Opera и IE7 и выше.
Everything You Need to Know about ID in CSS
HTML elements can be defined by type, class, attribute, pseudo-state, or ID name. How you define them will affect how you customize them using CSS selectors.
For example, if you want to make broad changes on your site, then you can use a type selector. Say you’d like to style every span element on your site. Then you’d use the type selector span .
To make more detailed changes, you need a more specific selector. The most specific is an ID selector. Let’s take a closer look at this selector type below.
Селекторы CSS по id
Помимо селекторов по названию тега и названию класса есть ещё селекторы по уникальному атрибуту id. В отличии от классов id может иметь только одно значение. Нельзя написать несколько значений через пробел по аналогии с клсами. Значение атрибута id должно быть уникальным на всю страницу. В противном случае на некоторых браузерах селектор может не работать.
Рассмотрим пример использования селектора по id элемента. Представим что есть любой тег с атрибутом id:
Тише, мыши. Кот на крыше.
Обратиться к такому элементу по id можно по тому же принципу, что и при обращении к классу, но вместо точки перед значением атрибута необходимо поставить решётку «#«.
#test
В браузере получим такой результат:
Тише, мыши. Кот на крыше.
Как и в случае с классами можно обращаться к вложенным элементам. К примеру, для такой вложенности тегов:
Тише, мыши. Кот на крыше.
