На самом деле я знаю, как браузеры отображают следующие примеры (результаты, основанные на Opera 9.5 и Firefox 3.0), но я не понимаю причину, которая стоит за ними.
Возьмите этот пример,
<style type="text/css">
#outer{color:red;}
.inner{color:blue;}
</style>
<div id="outer" class="outer">
<div id="inner" class="inner">
<span>testing</span>
</div>
</div>
Результат - синий текст.
Однако, теперь посмотрите на этот пример,
<style type="text/css">
#outer span{color:red;}
.inner span{color:blue;}
</style>
<div id="outer" class="outer">
<div id="inner" class="inner">
<span>testing</span>
</div>
</div>
Текст теперь красный.
Наконец, попробуйте это,
<style type="text/css">
#outer span{color:red;}
#inner span{color:blue;}
</style>
<div id="outer" class="outer">
<div id="inner" class="inner">
<span>testing</span>
</div>
</div>
Еще раз у нас синий текст.
Есть ли конкретная причина для этой методологии?
(извините за неясный заголовок, это лучшее, что я мог сделать.)