По второму вопросу, если мы проверим порядок рисования , у нас будет этот порядок:
- Для всех его входящих, непозиционируемых, потомков уровня блока в древовидном порядке:
- Если элемент является блоком, элементом списка или другим эквивалентом блока: цвет фона элемента.
Итак, теперь мы закрасили фоновый цвет элемента блока .new
- Все не позиционированные плавающие потомки, в древовидном порядке. Для каждого из них обработайте элемент так, как если бы он создал новый набор
контекст, но любые позиционные потомки и потомки, которые на самом деле
создать новый контекст стекирования считаются частью родительского
контекст стека, а не этот новый.
Итак, теперь мы нарисовали весь элемент .float
(фон и содержимое), потому что он создает собственный контекст стека. Таким образом, мы должны нарисовать все внутри, учитывая правила порядка рисования, а затем перейдем к следующим элементам.
- В противном случае: сначала для элемента, затем для всех его входящих, непозиционированных, потомков уровня блока в древовидном порядке:
- ...
На этом шаге мы нарисуем содержимое элемента .new
и встроенного элемента .old
Итак, хитрость в том, что элемент .new
закрашивается в два этапа: сначала это фон, а затем его содержимое. Между этими шагами мы нарисовали плавающий элемент.