Почему от sub-block margin-top переносится на block, из-за чего отступы между двумя block равны не 10px (столько задано), а 30px.
Я же Вам в
этом вопросе отвечал.
Происходит выпадение дочернего margin за пределы родительского.
И снова даю ссылку на
статью, которую уже давал. Ведь там это тоже объясняется.
Но раз Вам лень читать, кратко перескажу.
Это полезно в ситуациях, когда, например, тег параграфа
<p>
находится внутри родительского
<article>
. Вряд ли в обычной ситуации разработчику нужно, чтобы между родительским элементом и первым или последним параграфом был большой отступ, состоящий из стандартного отступа элемента
<p>
. Поэтому во времена, когда интернет был в основном текстовым, придумали подобное правило выпадения margin за пределы родителя.
А вот от sub-sub-block
margin-top на sub-block
не переносится?
Не переносится, потому что: у первого элемента верхний margin может выпадать вверх, у последнего элемента нижний margin может выпадать вниз (ну или оба, если элемент является единственным дочерним). А в Вашем случае
sub-sub-block
находится после двойки (соответственно, не является
первым дочерним элементом) родительского тега
sub-block
. Но Вы указываете верхний margin.