Я пытаюсь понять очень простую логику макета браузера, но у меня возникают проблемы с составлением чего-то точного даже на очень высоком уровне, просто описывающего встроенные элементы, блочные элементы и плавающие элементы. Я вижу фразы, используемые в нескольких статьях, такие как «нормальный поток», без определения этих терминов. Итак, я попытался сделать очень краткий и неполный отчет о логике компоновки. Может ли кто-нибудь подтвердить, правильно ли это, или есть ли ошибки даже на этом высоком уровне? Спасибо за вашу помощь!
- Получить следующий элемент html.
- Если это встроенный элемент, перейдите к 3. Если блочный элемент, перейдите к 4.
- Добавьте встроенный элемент в текущий стек встроенных элементов. Если стек переполняет доступное горизонтальное пространство, выпишите строку. Перейти к 1.
- Если элемент плавающий, перейдите к 5, в противном случае перейдите к 6.
- Если плавает влево, добавляется в левый стек с плавающей запятой. Если с плавающей запятой правильно, добавьте в правый стек с плавающей запятой. Перейти к 1.
- Запишите левый стек с плавающей запятой, стек встроенных элементов и правый стек с плавающей запятой и начните новую строку. Запишите элемент блока с новой строкой в конце. Перейти к 1.