В чем разница между #
и .
при объявлении набора стилей для элемента, и какая семантика вступает в игру при решении, какой из них использовать?
источник
В чем разница между #
и .
при объявлении набора стилей для элемента, и какая семантика вступает в игру при решении, какой из них использовать?
#
это селектор идентификатора , используемый для целевых одного конкретного элемента с уникальным идентификатором, но. это селектор класса, используемый для нацеливания нескольких элементов с определенным классом. Другими словами:
#foo {}
будет стилизовать единственный элемент, объявленный с атрибутомid="foo"
.foo {}
будет стилизовать все элементы с атрибутом class="foo"
(вы также можете назначить несколько классов элементу, просто разделите их пробелами, например class="foo bar"
)Вообще говоря, вы используете # для стилизации того, что, как вы знаете, будет появляться только один раз, например, такие как макеты верхнего уровня, такие как боковые панели, области баннеров и т. Д.
Классы используются в тех случаях, когда стиль повторяется, например, если вы используете специальную форму заголовка для сообщений об ошибках, вы можете создать стиль, h1.error {}
который будет применяться только к<h1 class="error">
Другой аспект, в котором селекторы отличаются, заключается в их специфике - селектор идентификатора считается более конкретным, чем селектор класса. Это означает, что там, где стили конфликтуют с элементом, те, которые определены с более конкретным селектором, будут переопределять менее специфичные селекторы. Например, учитывая <div id="sidebar" class="box">
любые правила для #sidebar
с переопределением конфликтующих правил для.box
В разделе « Учебное пособие» приведены более полезные учебники по CSS-селекторам - они невероятно мощные, и если ваша концепция заключается просто в том, что «# используется для DIV-файлов», вам лучше узнать, как именно использовать CSS более эффективно.
РЕДАКТИРОВАТЬ: Похоже, что Selectutorial, возможно, пошел на большой веб-сайт в небе, поэтому вместо этого попробуйте эту ссылку архива .
#
Означает , что он совпадает сid
элементом. Знак.
обозначает имя класса:Обратите внимание, что в документе HTML атрибут id должен быть уникальным , поэтому, если у вас есть более одного элемента, нуждающегося в определенном стиле, вы должны использовать имя класса.
источник
Точка (
.
) обозначает имя класса, а hash (#
) обозначает элемент с определенным атрибутом id . Класс будет применяться к любому элементу, украшенному этим конкретным классом, в то время как стиль # будет применяться только к элементу с этим конкретным идентификатором.Название класса:
Именованный элемент:
источник
Стоит также отметить , что в каскаде , идентификатор (
#
) селектор является более конкретным , чем AB (.
селектор). Следовательно, правила в операторе id переопределяют правила в операторе класса.Например, если оба следующих утверждения:
применяются к одному и тому же элементу HTML:
цвет: синий правило будет переопределить цвет: красный правило.
источник
Несколько быстрых расширений на том, что уже было сказано ...
id
Должен быть уникальным, но вы можете использовать один и тот же идентификатор , чтобы сделать различные стили более конкретны.Например, учитывая этот фрагмент HTML:
Вы можете применять разные стили с этими:
Еще одна полезная вещь: вы можете иметь несколько классов в элементе, разделяя их пробелами ...
Что позволяет вам иметь общие стили
.menu
с конкретными стилями, используя.main.menu
и.sub.menu
источник
.class
предназначается для следующего элемента:#class
предназначается для следующего элемента:Обратите внимание, что идентификатор ДОЛЖЕН быть уникальным во всем документе, в то время как любое количество элементов может совместно использовать класс.
источник
Как почти все уже заявили:
Точка (
.
) указывает на класс , а хэш (#
) указывает на идентификатор .Принципиальное отличие заключается в том, что вы можете многократно использовать класс на своей странице, тогда как идентификатор можно использовать один раз. Это, конечно, если вы придерживаетесь стандартов WC3.
Страница все равно будет отображаться, если у вас есть несколько элементов с одинаковым идентификатором, но у вас возникнут проблемы, если / когда вы попытаетесь динамически обновить указанные элементы, вызвав их с идентификатором, поскольку они не являются уникальными.
Также полезно отметить, что свойства идентификатора заменят свойства класса.
источник
# Является селектором идентификатора. Соответствует только элементам с совпадающим идентификатором. Следующее правило стиля будет соответствовать элементу, который имеет атрибут id со значением «green»:
Смотрите http://www.w3schools.com/css/css_syntax.asp для получения дополнительной информации
источник
Вот мой подход к объяснению правил
.style
и они#style
являются частью матрицы. что если они не в правильном порядке, они могут перекрывать друг друга или вызывать конфликты.Вот состав.
матрица
если вы хотите переопределить эти два, вы можете использовать
<style></style>
witch с уровнем матрицы, или1,0,0,0.
запрос @media перезапишет все выше ... Я не уверен в этом, но я думаю, что селектор идентификаторов#
может использоваться только один раз на странице.источник