LINUX.ORG.RU

Почему срабатывает не то CSS правило?


0

0

Здравствуйте!

Есть два CSS правила, в следующем порядке:

.tinymce p, span 
{ 
 margin: 0; 
 padding: 0; 
}

.text_font_block_code
{
 font-family: 'Courier New', Courier, monospace;
 font-size: 10pt;
 color: #993300;
 margin-left: 20px; 
 margin-right: 20px; 
 padding: 10px;
 background-color: #EFEFF5;
}

Есть вот такой HTML-код:

<div class="tinymce">
 ...
 <p class="text_font_block_code">
  printf("Hello world\n");<br/>
  exit(0);
 </p>
 ...
</div>

Проблема в том, что строки с кодом отображаются с атрибутами {margin: 0; padding: 0;}.

Я не пойму, почему не применяется второе правило?

Почему первое CSS-правило главнее второго?

Вот готовый текст HTML-файла для экспериментов: http://paste.org.ru/?qgq5q7.


Вес «.tinymce p» (класс + элемент) больше, чем «.text_font_block_code» (класс). В спецификации CSS это есть.

Deleted
()
Ответ на: комментарий от Deleted

>>Вес «.tinymce p» (класс + элемент) больше, чем «.text_font_block_code» (класс)

Кстати, где можно отследить алгоритм взвешивания и присвоения? Firebug показывает только результат.

mclaudt
()
Ответ на: комментарий от mclaudt

ЕМНИП что-то типа: обычный элемент (p, div, span) - 1; класс (.text_class, .something) - 10; идентификатор (#text_id) - 100; inline стиль (style=«color:red») - 1000.

Вес складывается, например div.text_class {color: red;} будет равно 1 + 10 = 11. Firebug вес не показывает, хотя и смысла в нём особо нету. Думаю можно при желании сделать патч.

AlexKiriukha ★★★★
()
Ответ на: комментарий от AlexKiriukha

Разве в спецификации это есть? Насколько я помню, там просто сначала сравнивается количество старшего типа, потом более младшего и т.д. т.е. например, возьмём 12 дивов:

.foo { color: #800; }
div div div div div div div div div div div div { color: #080; }
<div class="foo">1</div>

<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div class="foo">
1
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

Текст будет красный в обоих случаях.

Deleted
()
Ответ на: комментарий от mclaudt

Лучше просто по возможности не задавать слишком общих правил, т.е. группировать. А так, нигде не показывается, вроде как.

Deleted
()
Ответ на: комментарий от Deleted

> Разве в спецификации это есть?

Честно говоря саму спецификацию не смотрел, просто где-то что-то похожее читал. Выходит преумножил заблуждение. Впрочем в практическом плане вычислять никогда небыло нужно, достаточно было писать стили исходя из общей логики и всё работало.

AlexKiriukha ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.