OK Есть много статей, говорящих о каскадных приоритетах в CSS, я недавно прочитал this one и есть некоторые моменты, я понял это: -почему CSS применить #flowerContainer правило IMG вместо применения #flower правила
- веса идентификатора более класса и класса больше, чем тег
- веса идентификатора так же, как встроенный стиль, но так как рядные приходит позже он выигрывает превалирующее правило
- больше веса селектора больше, чем меньше селектора, т.е.
.container img
правила, отменяетimg
правила
Посмотрите на этот код: -
<div id="flowerContainer" >
<img id="flower" src="..." />
</div>
Попробуйте применить следующие правила: -
#flowerContainer img{width:500px;}
#flower {width:300px}
Согласно второму правилу #flower
ширина правило должно применяться, но #flowerContainer img
вместо этого применяется вместо этого?
Не думаю, что так. Правила ID (#) должны иметь приоритет над правилами класса (.) Или элемента (img). Однако элемент ID + (# img) вполне может считаться более конкретным, чем только идентификатор, даже если идентификатор не применяется к элементу –
да, но это относится к правилам того же веса, то есть к внутренней и внешней таблицам стилей, id и встроенный стиль несут тот же вес, который выше внутренних и внешних таблиц стилей. логически идентификатор ссылается на элемент исключительно, поскольку на элемент не более одного идентификатора. в моем примере я выбираю id, за которым следует любой дочерний тег один раз, а затем я определяю идентификатор самого элемента один раз. я думаю, что идентификатор элемента должен выиграть гонку –
@MostafaNagib - Тогда вам нужно уточнить, где находятся правила. Ваш вопрос указывает мне, что они расположены на одном уровне (в том же файле), поэтому применяется стандартный приоритет. Местоположение влияет только на результаты равномерного взвешивания. –