HTML - Строчные и блочные элементы. Основы html

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

,
,
,
,
,

,...,

,
,
    ,

    ,

    , 
    , 
      и некоторые устаревшие. Также блочным становится элемент, если в стиле для него свойство display задано как block , list-item , table и в некоторых случаях run-in .

      Для блочных элементов характерны следующие особенности.

      • Блоки располагаются по вертикали друг под другом.
      • На прилегающих сторонах элементов действует эффект схлопывания отступов.
      • Запрещено вставлять блочный элемент внутрь строчного. Например,

        Заголовок

        не пройдёт валидацию, правильно вложить теги наоборот -

        Заголовок

        .
      • По ширине блочные элементы занимают всё допустимое пространство.
      • Если задана ширина контента (свойство width ), то ширина блока складывается из значений width , полей, границ, отступов слева и справа.
      • Высота блочного элемента вычисляется браузером автоматически, исходя из содержимого блока.
      • Если задана высота контента (свойство height ), то высота блока складывается из значения height , полей, границ, отступов сверху и снизу. При превышении указанной высоты контент отображается поверх блока.
      • На блочные элементы не действуют свойства, предназначенные для строчных элементов, вроде vertical-align .
      • Текст по умолчанию выравнивается по левому краю.

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

      как универсальный кирпичик вёрстки. Тег
      допустимо вкладывать один в другой, другие блочные элементы также можно помещать внутрь
      . В примере 3.13 показан фрагмент кода сайта CSS Zen Garden , где активно применяются эти теги для формирования требуемой конструкции.

      Пример 3.13. Использование тега

      A demonstration of what can be accomplished visually through CSS - based design. Select any style sheet from the list to load it into this page.

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

      располагается два тега

      И рядовой текст. Поскольку этот элемент анонимный, напрямую только к нему одному нельзя применить стили.

      Пример 3.14. Анонимный блок

      Анонимный блок

      Первый абзац

      Анонимный блок

      Второй абзац

      Схематично блоки в данном примере показаны на рис. 3.23. Серым цветом выделены блочные теги

      А пунктиром - анонимный блок.

      Рис. 3.23. Блоки в документе

      Преобразование в блочный элемент

      В некоторых случаях требуется наделить строчный элемент характеристиками блочного. Так, превращение ссылки в блок позволяет увеличить полезную площадь ссылки за счёт использования свойств width и height . В примере 3.15 показано создание меню, в котором ссылками является вся доступная область.

      Пример 3.15. Меню

      XHTML 1.0 CSS 2.1 IE Cr Op Sa Fx

      Меню

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

      HTML (Hypertext Markup Language ) elements historically were categorized as either "block-level" elements or "inline" elements. Inline elements are those which only occupy the space bounded by the tags defining the element, instead of breaking the flow of the content. In this article, we"ll examine HTML inline elements and how they differ from block-level elements .

      An inline element does not start on a new line and only takes up as much width as necessary.

      Inline vs. block-level elements: a demonstration

      This is most easily demonstrated with a simple example. First, some simple CSS that we"ll be using:

      Highlight { background-color:#ee3; }

      Inline

      Let"s look at the following example which demonstrates an inline element:

      The following span is an inline element; its background has been colored to display both the beginning and end of the inline element"s influence.
      The following paragraph is a

      block-level element;

      its background has been colored to display both the beginning and end of the block-level element"s influence.

      The CSS (not displayed in standard reading mode) is also used:

      Body { margin: 0; padding: 4px; border: 1px solid #333; } .highlight { background-color:#ee3; }

      Rendered using the same CSS as before, we get:

      See the difference? The

      Element totally changes the layout of the text, splitting it into three segments: the text before the

      Then the

      "s text, and finally the text following the

      Changing element levels

      You can change the visual presentation of an element using the CSS display property. For example, by changing the value of display from "inline" to "block" , you can tell the browser to render the inline element in a block box rather than an inline box, and vice versa. However, doing this will not change the category and the content model of the element. For example, even if the display of the span element is changed to "block" , it still would not allow to nest a div element inside it.

      Conceptual differences

      In brief, here are the basic conceptual differences between inline and block-level elements:

      Content model Generally, inline elements may contain only data and other inline elements. You can"t put block elements inside inline elements. Formatting By default, inline elements do not force a new line to begin in the document flow. Block elements, on the other hand, typically cause a line break to occur (although, as usual, this can be changed using CSS).

      List of "inline" elements

      The following elements are inline by default (although block and inline elements are no longer defined in HTML 5, use

      Выделяют две основные категории HTML-элементов, которые соответствуют типам их содержимого и поведению в структуре веб-страницы — блочные и строчные элементы . С помощью блочных элементов можно создавать структуру веб-страницы, строчные элементы используются для форматирования текстовых фрагментов (за исключением элементов и ).

      Разделение элементов на блочные и строчные используется в спецификации HTML до версии 4.01. В HTML5 эти понятия заменены более сложным набором , согласно которым каждый HTML-элемент должен следовать правилам, определяющим, какой контент для него допустим.

      Модель визуального форматирования CSS

      1. Модель визуального форматирования

      Модель визуального форматирования CSS представляет собой алгоритм, который обрабатывает HTML-документ и выводит его на экран устройства. Данная модель преобразует каждый элемент документа таким образом, что он генерирует ноль или более прямоугольных боксов в соответствии с блочной моделью CSS. Положение этих боксов на странице определяется следующими факторами:
      — размером элемента (с учётом того, заданы они явно или нет);
      — типом элемента (строчный или блочный);
      — схемой позиционирования (нормальный поток, позиционированные или плавающие элементы);
      — отношениями между элементами в DOM;
      — внутренними размерами содержащихся изображений;
      — внешней информацией (например, размеры окна браузера).

      Положение и размеры бокса(ов) каждого элемента рассчитываются относительно краёв прямоугольной блока, так называемого «содержащего блока» (containing block). Размеры бокса не ограничиваются размерами содержащего блока, поэтому при определённых условиях он может выходить за его границы.

      2. Блочная модель

      В блочной модели элемент рассматривается как прямоугольный контейнер, имеющий область содержимого и необязательные рамки и отступы (внутренние и внешние). Свойство display определяет тип контейнера элемента. Для каждого элемента существует значение браузера по умолчанию.


      Рис. 1. Блочная модель элемента

      Область содержимого — это содержимое элемента, например, текст или изображение.

      Внутренний отступ задаётся свойством padding . Внутренний отступ — это расстояние между основным содержимым и его границей (рамкой). Если для элемента задать фон, то он распространится также и на поля элемента. Внутренний отступ не может принимать отрицательных значений, в отличие от внешнего отступа.

      Внешний отступ задаётся свойством margin . Он добавляет расстояние снаружи элемента от внешней границы рамки до соседних элементов, тем самым разделяя элементы на странице. Внешние отступы всегда остаются прозрачными и через них виден фон родительского элемента.

      Значения padding и margin задаются в следующем порядке: верхнее, правое, нижнее и левое.

      Граница , или рамка элемента, задаётся с помощью свойства border . Если цвет рамки не задан, она принимает цвет основного содержимого элемента, например, текста. Если рамка имеет разрывы, то сквозь них будет проступать фон элемента.

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

      * { margin: 0; padding: 0; }

      3. Блочные элементы и блочные контейнеры

      Блочные элементы — элементы высшего уровня, которые форматируются визуально как блоки, располагаясь на странице в окне браузера вертикально. Значения свойства display , такие как block , list-item и table делают элементы блочными. Блочные элементы генерируют основной блок, который содержит только блок элемента. Элементы со значением display: list-item генерируют дополнительные блоки для маркеров, которые позиционируются относительно основного блока.

      ,
      ,
    ,