Как я смотрю под покрытиями и вижу, как HTML представляется?

Например:


Я знаю, что это дает мне кнопку. Но я также знаю, что кто-то должен был выяснить, насколько широкий мой текст был, потяните кнопку корректного размера, поместите мой текст туда... и т.д.

Давайте использовать Mozilla в качестве примера. Я сделал некоторый поиск с помощью Google и нашел это, таким образом, я думаю, что я на правильном пути. Однако, первое предложение говорит все это:

Перестройка страницы: механизм расположения использовал в Mozilla (который известен многими именами), начался как проект записать новый механизм расположения для Mozilla и стал механизмом расположения Mozilla, и основа для почти полного переписывают в конце 1998 года.

Путание.

Вот список первых частей, знают, существуют (от той страницы Mozilla):

  • Синтаксический анализатор HTML и синтаксический анализатор XML
  • Реализация DOM
  • Синтаксический анализатор CSS и система стиля
  • Синтаксический анализатор HTML и синтаксический анализатор XML
  • Код для основанного на CSS и Основанного на HTML расположения и рендеринга

Кто-то может объяснить в терминах неспециалиста, как модель браузера Mozilla отображает кнопку?

6
задан Stephano 2 March 2010 в 01:33
поделиться

1 ответ

Так что это действительно очень сложный вопрос. Я работал над проектом Mozilla пару лет назад, вот как это работает, насколько я помню:

  1. HTML разбирается и разбивается на узлы, подобные тем, которые указаны в стандарте DOM. Это дерево представляет структуру данных в документе.
  2. Из этого DOM-дерева строится другое параллельное дерево, называемое фреймовым деревом. Это дерево представляет визуальную информацию в дереве - здесь реализованы такие вещи, как блочная модель.
  3. После того, как Mozilla определит все взаимозависимости и построит удовлетворительное дерево фреймов, дерево фреймов будет повреждено. Здесь есть несколько шагов (дерево просмотра, дерево виджетов), которые, как мне кажется, теперь устарели и в любом случае были скорее специфичными для Mozilla. Дело в том, что это дерево кадров затем передается графической подсистеме (которая в конечном итоге обращается к ОС) для рендеринга.

В большинстве современных браузеров компоновка страниц («перекомпоновка» в терминах Mozilla) выполняется постепенно, так что все это происходит как бы одновременно при загрузке различных ресурсов, так что это не совсем точно.

Чтобы получить информацию о Mozilla, я бы порекомендовал #developers на irc.mozilla.org. Для получения информации о WebKit вы можете попробовать #webkit на сайте chat.freenode.net.

Обратите внимание, что я больше не разработчик Mozilla и не имел никакого отношения к проекту с 2008 года, так что вполне возможно, что я ошибаюсь. Не стесняйтесь поправлять меня.

4
ответ дан 17 December 2019 в 07:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: