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

Строчными называются такие элементы документа, которые являются непосредственной частью строки. К строчным элементам относятся теги , , , , и др., а также элементы, у которых свойство display установлено как inline . В основном они используются для изменения вида текста или его логического выделения.

По аналогии с блочными элементами перечислю их характерные особенности.

  • Внутрь строчных элементов допустимо помещать текст или другие строчные элементы. Вставлять блочные элементы внутрь строчных запрещено.
  • Эффект схлопывания отступов не действует.
  • Свойства, связанные с размерами (width , height ) не применимы.
  • Ширина равна содержимому плюс значения отступов, полей и границ.
  • Несколько строчных элементов идущих подряд располагаются на одной строке и переносятся на другую строку при необходимости.
  • Можно выравнивать по вертикали с помощью свойства vertical-align .

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

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

,

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

Пример 3.16. Применение тега

Строчные элементы

Лягте животом на пол. Соедините стопы вместе, согнув ноги в коленях и развернув их в стороны. Руки за головой. Тяните голову руками вверх и вперед до полного сокращения мышц живота. Задержитесь на две секунды. Выполните восемь повторений.

Результат примера показан ниже (рис. 3.25).

Рис. 3.25. Текст, оформленный с помощью стилей

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

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

Рис. 3.26. Анонимные строчные элементы

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

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

Строчные элементы можно превращать в блочные с помощью свойства display и его значения block . Также возможно и обратное действие через значение inline (пример 3.17).

Пример 3.17. Свойство display

XHTML 1.0 CSS 2.1 IE Cr Op Sa Fx

Строчные элементы

Примечание

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

Результат примера приведен на рис. 3.27.

Рис. 3.27. Замена блочного элемента на строчный

В данном примере блочный тег

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

В виде строчного элемента. В принципе, аналогичным решением будет использовать вместо

Тег .

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

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

,
,
,
,
,

,...,

,
,
    ,

    ,

    , 
    , 
      и некоторые устаревшие. Также блочным становится элемент, если в стиле для него свойство 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 большинство элементов можно разделить на две группы: блочные (blok ) и строчные (inline ).

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

      Строчные элементы

      К строчным элементам относятся теги: ,
      , , , , , , , ....

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

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

      Строчные элементы, естественно, могут располагаться внутри блочных.

      Блочные элементы

      К блочным элементам относятся теги:

      ,
      ,

      ...

      ,
      ,
        ,

        ,

    ,
      ....

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

      Один или несколько блоков также могут располагаться внутри другого (родительского ) блочного элемента.

      В CSS блоки создаются на основе элементов HTML и имеют следующую структуру.

      Любой блок имеет форму прямоугольника.

      Блочный элемент имеет границу и содержимое: это может быть текстовая информация, фотографии, логотип фирмы и т.п., называемое контентом (англ. content - содержание ).

      Границе блока при помощи свойства border можно придать необходимое оформление: задать толщину, цвет и стиль линий. По умолчанию граница невидима.

      Между содержимым и границей существуют внутренние расстояния - поля (свойство padding ). Ими необязательно пользоваться. То есть если их явно не установить при помощи свойства padding , то граница будет вплотную примыкать к содержимому блока, либо отстоять от него на каком-то минимальном расстоянии. С другой стороны, поля могут иметь совершенно конкретные размеры, которые указывает разработчик.

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

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

      Фрагмент кода:

      Строчные элементы расположены на одной строке. Они заключены в блочный элемент - абзац! Перенос текста происходит автоматически - в конце строки.

      Следующий блок - абзац, начинается с новой строки.


      Два абзаца расположены.


      Внутри блока - тега div !


      Отдельные фрагменты текста заключены в тег span. И для них задано стилевое оформление!

      Результат:

      Строчные элементы расположены на одной строке. Они заключены в блочный элемент - абзац! Перенос текста происходит автоматически - в конце строки.

      Следующий блок - абзац, начинается с новой строки.

      Два абзаца расположены.

      Внутри блока - тега div !

      Отдельные фрагменты текста заключены в тег span. И для них задано стилевое оформление!

      Выделяют две основные категории 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 генерируют дополнительные блоки для маркеров, которые позиционируются относительно основного блока.

      ,
      ,
    ,