возврат

## Как работает браузер

### Ответы на вопросы

#### Общие принципы

1. В каком порядке браузер выводит изображения элементов на экран?

   Ответ. Браузер отображает элементы последовательно — слева направо (строчные) и сверху вниз (блочные), в соответствии с порядком следования элементов в HTML-коде.

2. Почему гипертекстовую страницу нельзя ориентировать на окно фиксированного размера?

   Ответ. Размер окна зависит от разрешения экрана. Более того, пользователь может менять размеры окна на экране по своему усмотрению. Браузер использует то окно, которое предоставил ему пользователь. Значит, страницы надо проектировать так, чтобы они нормально отображались в любых окнах.

3. Если текст абзаца в коде перенесён на новую строку, то будет ли в этом месте он перенесён на новую строку в окне браузера?

   Ответ. Нет. Браузер не обращает внимания на то, как строки абзаца размещены в HTML-коде. Перевод строки в коде для браузера равнозначен пробелу при построении абзаца на экране.

4. Когда браузер включает в своем окне горизонтальную прокрутку?

   Ответ. Тогда, когда не может уместить элементы по ширине предоставленного ему окна (например, когда в окне не помещается даже одно слово).

5. Говорят, что гипертекстовые документы являются независимыми от компьютерной платформы и средств видеовывода. Что это означает?

   Ответ. Это означает, что алгоритм работы браузера предусматривает вывод изображения, соответствующего коду страницы в окна любого размера, на экраны любой цветности. При этом для разных платформ (PC, MAC…), для разных операционных систем (Windows, Linux…) созданы свои браузеры, которые позволяют строить на экране гипертекстовую страницу, используя один и тот же HTML-код.

#### Уточненный алгоритм работы браузера

1. Образ какого элемента совпадает с окном браузера?

   Ответ. Элемент `HTML` визуально совпадает с окном браузера.

2. Какой элемент является прямым потомком элемента `HTML`?

   Ответ. Элемент `BODY`.

3. Могут ли строчные элементы быть прямыми потомками элемента `BODY`?

   Ответ. Прямые потомки `BODY` — всегда блоки. Если даже записать внутри `BODY` (на верхнем уровне) строчный элемент, он будет автоматически “обёрнут” в безымянный блочный элемент.

4. Как браузер строит на экране блочные элементы?

   Ответ. Блочные элементы строятся на экране прямоугольниками сверху вниз по ширине родителя.

5. Как браузер строит на экране строчные элементы?

   Ответ. Браузер выводит строчные элементы в строку, пытаясь заполнить всю ширину родительского блока. Если материал в одной строке не умещается, он переносится на следующие строки.

6. Опишите алгоритм отображения HTML-кода в окно браузера.

   Ответ. Браузер строит `HTML`, затем `BODY`, затем блоки внутри `BODY`.

   Блочные элементы, строятся на экране прямоугольниками сверху вниз по ширине родителя.

   Если в блоке есть смесь блочных и строчных элементов (на уровне прямых потомков), то все строчные элементы (а также неразмеченный текст) собираются в безымянные блоки и строятся по описанному выше алгоритму построения блоков.

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

### Алгоритм построения абзаца

1. Чем построение абзаца на экране отличается от построения других блоков?

   Ответ. Особенностью построения абзаца (по отношению к обычным блокам) является увеличенный отступ до и после образующего абзац прямоугольника. Прямоугольники обычных блоков (таких как `DIV`) следуют друг за другом плотно, а абзацы отделяются сверху и снизу промежутками размером в одну строку.

2. Чему равна ширина абзаца на экране, если он является прямым потомком элемента `BODY`?

   Ответ. Если абзац является прямым потомком `BODY`, его ширина совпадает с шириной окна браузера (не считая предопределённых отступов `BODY` от рамки окна).

3. В коде абзац записан на пяти строчках. Сколько строчек будет занимать абзац на экране?

   Ответ. Количество строк на экране зависит только от ширины окна (если абзац прямой потомок `BODY`) и не зависит от числа строк, которые он занимает в коде.

4. Между словами в коде абзаца поставлено 5 пробелов. Сколько пробелов будет между словами на экране?

   Ответ. Между словами на экране браузер проставляет ровно по одному пробелу вне зависимости от того, сколько их проставлено в коде.

5. Ширина окна настолько мала, что в строке нельзя разместить даже одно слово. Что увидит пользователь на экране браузера?

   Ответ. Пользователь увидит начальную часть слова и линейку прокрутки при помощи которой сможет прочитать слово целиком.

вверх | возврат