Блочная верстка страницы. Про тег div замолвим мы слово. Фиксированный дизайн для трех колонок
Была рассмотрена резиновая табличная вёрстка, а в этом уроке будет продемонстрировано создание шаблона для сайта с помощью блоков.
В качестве примера будет сделана фиксированная (жёсткая) блочная вёрстка – то есть при изменении размеров окна веб-браузера сайт будет сохранять свои размеры. Шаблон будет иметь: шапку; блок для контента; левый блок; и подвал;
Хоть выше и было названо 4 блока – на самом деле их будет больше. Для того что бы технология блочной вёрстки была понятна – рассмотрим каждый блок и идентификатор применяемый к нему по отдельности:
#main_pole { … } () – внутри этого блока находится вся конструкция сайта. С помощью стилей применяемых к нему определяется положение сайта относительно окна веб-браузера, длина шапки и поля с контентом (но не подвала);
#header { … } () – это блок располагается над всеми остальными и равен длине всего сайта. В нём актуально разместить название сайта. С помощью стилей ему можно задать: высоту, цвет отступы и другие параметры;
#middle { … } () – большой блок внутри которого находятся ещё три. С помощью стилей можно задать ширину поля с контентом и отступ от подвала сайта. В нём актуально разместить горизонтальное меню, так как оно будет растянуто в длину всего сайта и находиться над полем для контента и правой колонкой.
В селекторе #middle:after { … } будет три атрибута, значение которых наврятли вам известны:
Сам элемент (свойство) :after – означает, что содержимое блока, к которому применено это свойство будет отображаться после него. То есть если написать вместо:after свойство:before – то подвал сайта "залезет" под шапку поверх других блоков (можете попробовать);
Content: " " - отображать весь написанный контент после этого блока;
Clear: both - задаёт, что с обеих сторон элемента запрещено его обтекание другими элементами;
Display: table – данный атрибут придаёт элементу свойство блочной таблицы;
#container { … } () – разместив что-либо в этом блоке, это будет отображаться поверх всего контента, но на одном уровне с правой колонкой.
#content { … } () – В этом блоке должен располагаться весь основной контент (статьи, таблицы, картинки ссылки и прочее). В селекторе прописан единственный параметр, задающий отступы.
#right_bar { … } () – правая колонка. В селекторе значение параметра margin-left: … должно быть равно ширине (длине) блока.
#footer { … } () – подвал сайта, в котором размещают счётчики и ссылки на обратную связь, службу поддержки и другое. В селекторе значение параметра width: … должно быть равным значению width: … в #main_pole.
Создайте файл div_style.css и поместите в него ниже написанный код. Это файл стилей может являться шаблоном для страниц вашего будущего сайта.
#main_pole { width : 1000 px ; margin : 0 auto ; } #header { height : 140 px ; background : #F0CF63 ; padding : 0 0 0 16 px ; } #middle { width : 100 % ; padding : 0 0 70 px ; height : 1 % ; position : relative ; } #middle :after { content : "" ; clear : both ; display : table ; } #container { width : 100 % ; float : left ; background : White ; } #content { padding : 0 250 px 0 10 px ; } #right_bar { float : left ; width : 240 px ; margin-left : -240 px ; background : #F1FFE4 ; } #footer { width : 1000 px ; margin : -70 px auto 0 ; height : 70 px ; background : #B6E781 ; font-size : 12 px ; } p { margin : 16 px 10 px 20 px ; } a { color : Green ; outline : none ; text-decoration : underline ; } a :hover { text-decoration : none ; }Теперь создайте файл index_test.html . В нём будет размещена структура шаблона, а так же некоторые примеры, демонстрирующие работу стилей. В частности будет размещено горизонтальное выпадающее меню, создание которого рассматривалось в одном из предыдущих уроков . В голове страницы (
) подключаются стили для страницы и меню. <html > <head > <title > Шаблон для сайта - фиксированная блочная вёрсткаtitle > <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" > <link rel="stylesheet" href="page_style.css" type="text/css" /> <link rel="stylesheet" href="drop_vert_menu.css" type="text/css" /> head > <body style="background-color: WhiteSmoke" > <div id="main_pole" > <div id="header" > <br > <br > <h1 style="color: White;" > Название сайтаh1 > div > <div id="middle" > <ul class="menu" > <li > <a href="#" > Главнаяa > li > <li > <a href="#" > Второй пунктa > <ul > <li > <a href="#" > Подпункт 1a > li > <li > <a href="#" > Большое подменю 2a > li > <li > <a href="#" > Подпункт 3a > li > ul > li > <li > <a href="#" > Пункт 3a > li > <li > <a href="#" > Пункт 4a > <ul > <li > <a href="#" > Подпункт 4a > li > <li > <a href="#" > Подпункт 5a > li > <li > <a href="#" > Подпункт 6a > li > <li > <a href="#" > Подпункт 7a > li > <li > <a href="#" > Подпункт 8a > li > ul > li > ul > <div id="container" > <div id="content" > <h2 align="center" > Демонстрация h2 > <p > Текст между тегами <b > b > , для которых прописаны стилевые параметры.p > <i > Наклонный текст между тегами <b > b > , для которых стили не прописаны.i > <br > <br > <a href="#" > Ссылка зелёного цветаa > <br > <br > <big > Большой текст без применения стилей.big > <br > <br > <p > Контент заключённый между тегов , в котором уже с другими отступами отображаются: <br > <br > <i > Наклонный текст между тегами .i > <br > <br > <a href="#" > Ссылка зелёного цветаa > <br > <br > <big > Большой текст между тегов .big > <br > <br > <div style="height:78px; width:512px; margin: auto; background-color:#EDEDED; border-left:4px solid #8B8B8B;" align="center" > <q > Целью школы всегда должно быть воспитание гармоничной личности, а не специалиста.q > <p align="right" > <sub > А. Эйнштейнsub > p > div > p > div > div > <div id="right_bar" > <h4 align="center" > Новостная колонкаh4 > <table align="center" width="230" border="1" cellspacing="2" cellpadding="8" > <tr > <td > Первая новостьtd > tr > <tr > <td > Вторая новостьtd > tr > <tr > <td > Интересные событияtd > tr > <tr > <td > Архив новостейtd > tr > table > <br > <br > <p > Это правая колонка светлозелёного цветаp > div > div > <div id="footer" > <br > <b > Тут могeт быть размещены счётчикиb > div > div > body > html >
Вы можете и сами дописать необходимые стилевые атрибуты для блоков, опираясь на информацию изложенную в уроках по CSS и HTML .
Таким образом можно сделать простой движок для своего сайта, если каждый из блоков поместить в отдельный файл и подключать его с помощью PHP – Так можно будет внести изменения только в одном файле, а они отобразятся во всех файлах, где объявлено подключение этого элемента. (php include будет работать, только если html-страница находится на хостинге или домашнем сервере).
Здравствуйте, дорогие любители айтишной тематики. Сегодня основной способ создания красивых многостраничных сайтов основывается на блочной верстке при помощи тега div.
В случае незнания основных тонкостей работы с данным инструментом увы и ах, но привлекательного адаптивного дизайна вы не получите никак. Поэтому данная статья посвящена теме «Как сделать блок в html». Я подробно опишу, как самому с нуля создать блочные объекты на странице, каким образом оформить фон и дизайн блоков, и самое главное расскажу, как подключить таблицу стилей. Итак, начнем!
Особенности блочных элементов
Блоки – это прямоугольные элементы, которые занимают всю доступную ширину страницы, всегда начинаются с новой строки и по умолчанию автоматически рассчитывают высоту в зависимости от содержимого.
Все блочные элементы состоят из 4 свойств, которые на подобие рамок окружают содержимое объекта.
Главным в блоке выступает контент .
Вокруг него расположены поля, которые называются padding . Поля отвечают за расстояние между контентом объекта и его внутренним краем границ.
После идут сами границы, которые именуются английским словом border .
И, наконец, последней рамкой вокруг всего перечисленного выступает margin –отступы от внешнего края border-а до границ страницы или других элементов. Стоит отметить, что задавать эти свойства не обязательно.
В качестве примера запрограммируем 2 и заполним созданные элементы текстом.
На данный момент в этот код отобразится как обычные два предложения. Для оформления дизайна блоков необходимо подключить таблицу стилей и языком css задать определенные свойства.
Внесем-ка ярких красок в обыденную жизнь html
Для того чтобы блочные объекты выглядели интересно и привлекательно, нам в обязательном порядке стоит подключить каскадную таблицу стилей.
Для этого в контейнере head после тега
Сам по себе элемент располагается только внутри тега
и устанавливает связь с внешними файлами, отвечающими за стили.Настало время задать цветное оформление и расположение блокам.
Первый блок я решил оформить в красных цветах с жирными границами и сделать его полупрозрачным.
Второй же блок – полностью видимый, желтого цвета с тонкими границами и с закругленными углами. Замечу, что блоки не являются фиксированными и текст в них выравнивается по ширине, а не располагается по центру. За все видоизменения отвечает ниже представленный css-код.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | .element1 { opacity: 0.7; background: #edab92; float: left; width: 310px; border: 4px solid red; padding: 6px; padding-right: 15px; } .element2 { width: 310px; float: left; background: #fc0; border: solid 1px grey; position: relative; padding: 6px; left: -65px; top: 55px; border-radius: 10px; } |
Element1 { opacity: 0.7; background: #edab92; float: left; width: 310px; border: 4px solid red; padding: 6px; padding-right: 15px; } .element2 { width: 310px; float: left; background: #fc0; border: solid 1px grey; position: relative; padding: 6px; left: -65px; top: 55px; border-radius: 10px; }
Для того чтобы вы смогли лицезреть данный пример во всей красе во вкладке , создайте простой текстовый файл и внесите в него выше написанный текст. После сохраните документ с названием «style.css», обязательно проверьте, совпадает ли название документа со значением атрибута тега href="style.css".
Думаю, вы догадались, что в случае несовпадения, внешний документ с описанием стилей не будет найден, вследствие чего изменения не вступят в силу.
Теперь давайте разберем строки css-кода. Для наглядности я структурировал все в таблицу с двумя колонками.
Свойство | Значение |
opacity | Отвечает за прозрачность объекта. При opacity равному 0 элементы становятся полностью прозрачными, при 1 – полностью видимыми. |
width | Отвечает за ширину блочных элементов. |
background | Задает характеристические параметры фона, который в свою очередь может задаваться как цветом, так и картинкой. |
border | Позволяет установить толщину, цвет и стиль границ вокруг объекта. |
float | Задает выравнивание элемента. Остальные объекты по умолчанию обтекают данный. Можно задать значения: left, right, none (не задает обтекание элементов) или inherit (повторяет значение родительского объекта). |
border-radius | Способствует округлению углов блока. Можно указывать как одинаковый радиус для всех углов, так и уникальный для каждого. |
top | Определяет расстояния между верхними границами родительского элемента и дочернего. |
left | Определяет расстояния между левыми границами родительского и дочернего элементов. |
Обратите внимание на строку в коде примера position: relative в element2. Так как этому атрибуту, определяющему позиционирование объекта, задано значение relative, то расположение самого объекта будет меняться не от координат верхнего края браузера, а от координат верхней границы первого блока element1.
Вот почему при задании top = 55px и left = -65px второй блочный элемент сдвинулся вниз на 55 пикселей и вправо на 65 пикселей от границ первого блока.
Кстати, особо внимательные могли заметить, что left = -65px и right = 65px – это одно и то же.
А что же HTML 5
Напоследок хотел бы добавить, что в современной платформе html 5 есть нововведенные блочные теги ,
Ранее в книге мы уже несколько раз упоминали о том, что верстка сайтов таблицами канула в Лету, и ее успешно заменила блочная верстка. HTML-таблицы должны использоваться сугубо по прямому назначению (структурирование и отображение данных с распределением по строкам и столбцам), но никак не для создания макета веб-страницы и организации всего ее контента.
Что касается оформления внешнего вида сайта, то в современной веб-разработке HTML-код должен содержать лишь теги и контент в них, а стилевые правила необходимо размещать отдельно от HTML, в файлах CSS. Inline-стили, которые прописываются прямо в веб-документе - это исключение из правил, к которому стоит прибегать лишь по очень уважительным причинам.
Помимо удобства, вышеописанный подход обеспечивает более быструю и легкую отладку сайта, а также дает возможность работать над проектом сразу нескольким разработчикам одновременно: дизайнеру, верстальщику, программисту. За счет этого, соответственно, повышается и скорость разработки.
Блочная верстка с
С помощью разметки определяется расположение элементов на веб-странице. Например, мы создаем шапку сайта, внутри которой размещаем необходимый нам контент (логотип, номера телефонов, навигационное меню и т. п.). Точно так же мы поступаем с основным разделом веб-страницы, а также боковой панелью и футером. Все эти элементы, по сути, являются определенными HTML-тегами. И тегом номер один в блочной верстке является тег
.
Элемент
можно назвать своеобразным фундаментом для построения веб-страниц. Изначально он ничем не выделяется внешне, кроме разве что того факта, что это блочный элемент, который по умолчанию занимает всю ширину документа, а следующий за ним элемент начинается с новой строки.
Тег
универсален и часто служит контейнером для других HTML-элементов. Например, шапка сайта, футер либо сайдбар - это зачастую не что иное, как блок div , содержащий в себе такие же блоки и/или другие HTML-элементы.
Через различные классы и идентификаторы div-блокам задается соответствующее CSS-оформление. К примеру, чтобы было удобнее писать стили для шапки сайта, можно добавить к блоку класс.header , а для футера - класс.footer .
Использование тегов
в верстке не означает, что нужно отказаться от других тегов. Если для решения ситуации иной тег подходит лучше, используйте его. Яркий пример - тег длинной цитаты . Согласитесь, нет смысла использовать вместо него , ведь прекрасно справится со своей задачей. Кроме того, это решение будет более правильным с точки зрения семантики.
Блочная верстка с HTML5
И, раз уж мы заговорили о семантике в веб-документах, стоит упомянуть и о тегах, появившихся в HTML5. Новые семантические теги были специально созданы для группировки контента конкретного типа.
Например, шапка сайта может помещаться в HTML5-тег , а подвал - в похожий тег
С помощью разметки определяется расположение элементов на веб-странице. Например, мы создаем шапку сайта, внутри которой размещаем необходимый нам контент (логотип, номера телефонов, навигационное меню и т. п.). Точно так же мы поступаем с основным разделом веб-страницы, а также боковой панелью и футером. Все эти элементы, по сути, являются определенными HTML-тегами. И тегом номер один в блочной верстке является тег
Элемент
Тег
Через различные классы и идентификаторы div-блокам задается соответствующее CSS-оформление. К примеру, чтобы было удобнее писать стили для шапки сайта, можно добавить к блоку класс.header , а для футера - класс.footer .
Использование тегов
. Согласитесь, нет смысла использовать вместо него, ведьпрекрасно справится со своей задачей. Кроме того, это решение будет более правильным с точки зрения семантики.Блочная верстка с HTML5
И, раз уж мы заговорили о семантике в веб-документах, стоит упомянуть и о тегах, появившихся в HTML5. Новые семантические теги были специально созданы для группировки контента конкретного типа.
Например, шапка сайта может помещаться в HTML5-тег
, а подвал - в похожий тег