Задача вёрстки HTML-страниц появилась раньше, чем язык CSS, поэтому у неё давно имеется решение, не основанное на стилях. Любой макет страницы можно представить как таблицу, ячейки которой имеют требуемые размеры, позиции, оформление и содержание. Метод вёрстки, основанный на таблицах, совершенно универсален, достаточно прямолинеен и прост, он влечёт за собой сравнительно немного трудностей, связанных с кросс-браузерной совместимостью. Большой недостаток всего один: этот метод не даёт никаких средств для поддержки изменчивости дизайна, т.е. смены оформления макета. При табличной вёрстке оформление неразрывно связано с содержанием документа.
Этих недостатков лишён метод дизайна, основанный на методах позиционирования CSS, которые были рассмотрены в соответствующей лекции. Однако средства CSS-вёрстки несколько менее очевидны для понимания и требуют большей осторожности по отношению к специфике разных браузеров.
Рассмотрим сначала пример табличной вёрстки, демонстрирующий основные приёмы разметки - объединение ячеек, установку границ и вертикальное выравнивание.
<table>
<tr>
<td colspan="3" class="header">
<h1>
Заголовок страницы</h1>
</td>
</tr>
<tr>
<td colspan="3" class="nav"><a href="#">Ссылка 1</a>
<a href="#">Ссылка 2</a><a href="#">Ссылка 3</a><a href="#">Ссылка 4</a></td>
</tr>
<tr>
<td width="20%" class="menu"><a href="#">Maecenas malesuada</a> <a href="#">Integer molestie</a>
<a href="#">Vivamus aliquet</a> <a href="#">Aliquam imperdiet</a>
<a href="#">Morbi pellentesque </a></td><td width="55%" class="main">
<h2>
Центральная колонка</h2>
<p>
Любой макет страницы......
</p>
<p>
Большой недостаток...
</p>
</td><td width="25%" class="rightcol"> </td>
</tr>
<tr>
<td colspan="3" class="footer">Нижний колонтитул</td>
</tr>
</table>
(рис 10.1) Макет страницы, построенный как таблица
Очевидно, что хотя стили в рассмотренном примере и играют существенную роль, но вёрсткой всецело управляет таблица, и нельзя изменить оформления макета, не затронув этой таблицы. Такой способ вёрстки на сегодняшний день считается устаревшим (хотя и может применяться в пределах отдельных блоков).
Перейдём к рассмотрению CSS-вёрстки, начиная с простейшего одноколоночного макета. В этом случае достаточно применить горизонтальное центрирование к единственной колонке (которая обычно представлена в разметке секцией). Вообще говоря, центрирование макета необязательно, но в большинстве примеров данной лекции оно осуществляется (отказаться от него всегда легко).
В примерах рассматриваются два типа разметки — с фиксированной и непостоянной шириной — каждый из которых имеет свои плюсы и минусы. Дизайн с фиксированной шириной гарантирует то, что разметка выглядит неизменно при различных размерах мониторов. Однако на очень маленьком мониторе посетителю, возможно, придется горизонтально прокручивать страницу, чтобы просмотреть все содержимое. А на действительно широком мониторе макет с постоянной шириной будет выглядеть затерянной узкой полоской.
Разметки с непостоянной шириной решают эти проблемы, но у них также есть свои собственные ограничения. На маленьком экране свободная разметка может настолько сжаться, что весь дизайн развалится, а при очень широком экране растянется так, что посетителям придётся читать ненормально длинные строки текста.
Есть CSS-свойства, которые предусмотрены для того, чтобы решить эту проблему: min-width, min-height, max-width и max-height.
Свойства min- указывают браузеру сделать элемент, по крайней мере, таким же широким или высоким, как указанное значение. Вы можете применить свойство min-width к элементу body, чтобы управлять всей шириной содержимого страницы. Если посетитель расширит окно своего браузера до 1000 пикселов, содержимое страницы растянется так, что будет соответствовать всему доступному пространству. Однако если он сделает окно шириной 500 пикселов, то содержимое останется 760 пикселов в ширину, а браузер добавит горизонтальные полосы прокрутки. Свойство min-height делает то же самое, но для высоты документа.
Свойства max- задают максимальные размеры. С ними вы будете уверены, что ваши страницы не станут слишком широкими, а значит, непригодными для чтения.
Комбинируя перечисленные свойства, вы можете создать стиль, который изменяет размеры элемента в пределах установленных значений, так что дизайн никогда не станет слишком маленьким или слишком большим. Internet Explorer 6 и ниже полностью игнорирует эти свойства.
#frame {
width: 70%;
min-width: 400px;
margin-left: auto;
margin-right: auto;
background-color: #ddd;
padding: 5px;
}
...
<div id="frame">
<h1>
Заголовок страницы</h1>
<p>
В случае одноколоночного макета достаточно применить горизонтальное центрирование
к единственной колонке (которая обычно представлена в разметке секцией).
Дизайн с фиксированной шириной гарантирует то, что разметка выглядит неизменно
при различных размерах мониторов. Однако на очень маленьком мониторе посетителю,
возможно, придется горизонтально прокручивать страницу, чтобы просмотреть
все содержимое. А на действительно широком мониторе макет с постоянной
шириной будет выглядеть затерянной узкой полоской.
</p>
<p>
Разметки с непостоянной шириной решают эти проблемы, но у них также есть
свои собственные ограничения. На маленьком экране свободная разметка может
настолько сжаться, что весь дизайн развалится, а при очень широком экране
растянется так, что посетителям придётся читать ненормально длинные строки
текста. Есть CSS-свойства, которые предусмотрены для того, чтобы решить
эту проблему: min-width, min-height, max-width и max-height.
</p>
</div>
(рис 10.2) Макет с одной колонкой непостоянной ширины
Переходя к большему числу колонок, будем применять позиционирование на основе плавающих элементов, при котором ширина колонок также может быть фиксированной или непостоянной. Следует очень внимательно следить за тем, чтобы суммарная ширина всех колонок не превысила 100% (при непостоянной ширине) или ширины общего контейнера (при фиксированной ширине). Иначе последняя колонка переместится вниз. Подсчитывая суммарную ширину, принимайте в расчёт значение свойства width колонки, а также padding и border и, если есть, margin. Разумеется, поля, границы и отступы учитываются с обеих сторон. С этим подсчётом связано следующее затруднение: как сложить, например, 50% и 2px? Решить его можно двумя способами: или пользоваться везде только одним способом измерения (пикселы либо проценты), или же оценить максимально возможную процентную долю пиксела, ограничив ширину макета. Например, если для глобального контейнера, содержащего весь макет, указано свойство min-width: 400px, то можно быть уверенным, что 4px не превосходят одного процента ширины макета.
В остальном идея проста: колонки снабжаются свойством float:left и указанием ширины, а также отступа и поля. При двух- и трёхколоночном макете необязательно делать плавающей центральную колонку (иногда это нежелательно) - вместо этого ей можно задать достаточные отступы слева и справа, а крайние колонки сделать плавающими - одну с float:left, а другую с float:right.
Задавая колонкам фоновые цвета, вы обнаружите, что, когда в колонке мало содержимого, заполненный фоном блок смотрится не вполне эстетично. Предпочтительнее, чтобы он доходил внизу до нижнего колонтитула (или края страницы).
Чтобы добиться этого эффекта, не обойтись без специального трюка: например, заполнить страницу вертикально фоновым изображением, имеющим высоту 1 пиксел и повторяющим в горизонтальном направлении раскраску колонок. Понятно, что на самом деле колонки останутся той же высоты (которая зависит от содержимого и полей), но внешне будет казаться, что они "достают" до нижнего колонтитула.
#frame {
width: 85%;
min-width: 400px;
margin: 0 auto;
}
#col1 {
float: left;
width: 66%;
padding-right: 4px;
margin-right: 4px;
border-right: 1px solid black;
}
#col2 {
float: left;
width: 30%;
padding: 4px;
background-color: #ddd;
}
#footer {
clear: both;
border-top: 1px solid black;
padding-top: 5px;
margin-top: 5px;
}
...
<div id="frame">
<div id="col1">
<h1>
Заголовок страницы</h1>
<p>
Переходя к большему числу колонок, будем применять позиционирование на
основе плавающих элементов...
</p>
<p>
В остальном идея проста: колонки снабжаются свойством float:left и указанием
ширины, а также отступа и поля...</p>
</div>
<div id="col2">
<p>
Задавая колонкам фоновые цвета, вы обнаружите, что, когда в колонке мало
содержимого, заполненный фоном блок смотрится не вполне эстетично...</p>
</div>
<div id="footer">
(c) Копирайт
</div>
</div>
(рис 10.3) Макет с 2 столбцами непостоянной ширины
#frame {
width: 600px;
margin: 0 auto;
background-image: url(600px_220gray.png);
}
#col1 {
float: left;
width: 349px;
padding-right: 10px;
margin-right: 10px;
border-right: 1px solid black;
}
#col2 {
float: left;
width: 220px;
padding-left: 10px;
}
#footer {
clear: both;
border-top: 1px solid black;
padding-top: 5px;
background-color: White;
}
(рис 10.4) Макет с 2 столбцами фиксированной ширины - заполнение фоном всей высоты меньшего столбца
Аналогичным образом строится и трёхколоночный макет.
body {
background-color: #bbb;
}
#frame {
width: 760px;
margin: 0 auto;
background-color: #eee;
}
#header {
border-bottom: 1px solid black;
padding: 5px;
text-align: center;
}
#col1 {
float: left;
width: 200px;
padding-left: 10px;
}
#col2 {
float: left;
width: 328px;
padding-left: 10px;
padding-right: 10px;
margin-left: 10px;
margin-right: 10px;
border-left: 1px solid black;
border-right: 1px solid black;
}
#col3 {
float: left;
width: 170px;
padding-right: 10px;
}
#footer {
clear: both;
border-top: 1px solid black;
padding: 5px;
margin-top: 5px;
text-align: center;
}
...
<div id="frame">
<div id="header">
<h1>
Заголовок страницы</h1>
</div>
<div id="col1">
<p>
Левая колонка имеет ширину 200px и левое поле 10px.</p>
</div>
<div id="col2">
<h2>
Центральная колонка</h2>
<p>
Все 3 колонки - плавающие, и их суммарная ширина (вместе со всеми полями,
отступами и рамками) равна 760px.</p>
<p>
Все секции помещены в один общий контейнер, которому задана ширина 760px
и который центрирован горизонтально на странице.</p>
</div>
<div id="col3">
<p>
Правая колонка имеет ширину 328px, горизонтальные поля 10px, горизонтальные
отступы 10px и однопиксельные сплошные рамки.</p>
</div>
<div id="footer">
Нижний колонтитул имеет поле 5px, отступ сверху 5px и однопиксельную рамку
сверху.
</div>
</div>
(рис 10.5) Макет с 3 колонками с верхним колонтитулом
Необязательно, чтобы макет страницы представлял собой набор колонок, выстроенных в один ряд. Нередко встречается и "неправильный" дизайн - с
#main {
bottom: 10%;
left: 5%;
width: 40%;
}
#title {
top: 50%;
left: 50%;
width: auto;
}
#title h1 {
margin: 0;
}
#block2 {
top: 2%;
right: 2%;
width: 25%;
}
div:hover {
z-index: 1;
}
...
<div id="main">
<p>
<strong>Центральный блок</strong> имеет ширину 40% (от ширины страницы)
и позиционирован абсолютно следующим образом: bottom: 10%; left: 5%;.
</p>
<p>
"Неправильный" дизайн - с произвольным размещением элементов - используется
обычно когда на странице совсем немного содержимого.
</p>
</div>
<div id="title">
<h1>
Заголовок</h1>
</div>
<div id="block2">
<strong>Блок 2 </strong>позиционирован при помощи свойств top: 2%; right:
2%;
</div>
(рис 10.6) Асимметричный макет с непостоянной шириной элементов
Задача вёрстки HTML-страниц появилась раньше, чем язык CSS, поэтому у неё давно имеется решение, не основанное на стилях. Любой макет страницы можно представить как таблицу, ячейки которой имеют требуемые размеры, позиции, оформление и содержание. Метод вёрстки, основанный на таблицах, совершенно универсален, достаточно прямолинеен и прост, он влечёт за собой сравнительно немного трудностей, связанных с кросс-браузерной совместимостью. Большой недостаток всего один: этот метод не даёт никаких средств для поддержки изменчивости дизайна, т.е. смены оформления макета. При табличной вёрстке оформление неразрывно связано с содержанием документа.
Этих недостатков лишён метод дизайна, основанный на методах позиционирования CSS, которые были рассмотрены в соответствующей лекции. Однако средства CSS-вёрстки несколько менее очевидны для понимания и требуют большей осторожности по отношению к специфике разных браузеров.
Рассмотрим сначала пример табличной вёрстки, демонстрирующий основные приёмы разметки - объединение ячеек, установку границ и вертикальное выравнивание.
<table>
<tr>
<td colspan="3" class="header">
<h1>
Заголовок страницы</h1>
</td>
</tr>
<tr>
<td colspan="3" class="nav"><a href="#">Ссылка 1</a>
<a href="#">Ссылка 2</a><a href="#">Ссылка 3</a><a href="#">Ссылка 4</a></td>
</tr>
<tr>
<td width="20%" class="menu"><a href="#">Maecenas malesuada</a> <a href="#">Integer molestie</a>
<a href="#">Vivamus aliquet</a> <a href="#">Aliquam imperdiet</a>
<a href="#">Morbi pellentesque </a></td><td width="55%" class="main">
<h2>
Центральная колонка</h2>
<p>
Любой макет страницы......
</p>
<p>
Большой недостаток...
</p>
</td><td width="25%" class="rightcol"> </td>
</tr>
<tr>
<td colspan="3" class="footer">Нижний колонтитул</td>
</tr>
</table>
(рис 10.1) Макет страницы, построенный как таблица
Очевидно, что хотя стили в рассмотренном примере и играют существенную роль, но вёрсткой всецело управляет таблица, и нельзя изменить оформления макета, не затронув этой таблицы. Такой способ вёрстки на сегодняшний день считается устаревшим (хотя и может применяться в пределах отдельных блоков).
Перейдём к рассмотрению CSS-вёрстки, начиная с простейшего одноколоночного макета. В этом случае достаточно применить горизонтальное центрирование к единственной колонке (которая обычно представлена в разметке секцией). Вообще говоря, центрирование макета необязательно, но в большинстве примеров данной лекции оно осуществляется (отказаться от него всегда легко).
В примерах рассматриваются два типа разметки — с фиксированной и непостоянной шириной — каждый из которых имеет свои плюсы и минусы. Дизайн с фиксированной шириной гарантирует то, что разметка выглядит неизменно при различных размерах мониторов. Однако на очень маленьком мониторе посетителю, возможно, придется горизонтально прокручивать страницу, чтобы просмотреть все содержимое. А на действительно широком мониторе макет с постоянной шириной будет выглядеть затерянной узкой полоской.
Разметки с непостоянной шириной решают эти проблемы, но у них также есть свои собственные ограничения. На маленьком экране свободная разметка может настолько сжаться, что весь дизайн развалится, а при очень широком экране растянется так, что посетителям придётся читать ненормально длинные строки текста.
Есть CSS-свойства, которые предусмотрены для того, чтобы решить эту проблему: min-width, min-height, max-width и max-height.
Свойства min- указывают браузеру сделать элемент, по крайней мере, таким же широким или высоким, как указанное значение. Вы можете применить свойство min-width к элементу body, чтобы управлять всей шириной содержимого страницы. Если посетитель расширит окно своего браузера до 1000 пикселов, содержимое страницы растянется так, что будет соответствовать всему доступному пространству. Однако если он сделает окно шириной 500 пикселов, то содержимое останется 760 пикселов в ширину, а браузер добавит горизонтальные полосы прокрутки. Свойство min-height делает то же самое, но для высоты документа.
Свойства max- задают максимальные размеры. С ними вы будете уверены, что ваши страницы не станут слишком широкими, а значит, непригодными для чтения.
Комбинируя перечисленные свойства, вы можете создать стиль, который изменяет размеры элемента в пределах установленных значений, так что дизайн никогда не станет слишком маленьким или слишком большим. Internet Explorer 6 и ниже полностью игнорирует эти свойства.
#frame {
width: 70%;
min-width: 400px;
margin-left: auto;
margin-right: auto;
background-color: #ddd;
padding: 5px;
}
...
<div id="frame">
<h1>
Заголовок страницы</h1>
<p>
В случае одноколоночного макета достаточно применить горизонтальное центрирование
к единственной колонке (которая обычно представлена в разметке секцией).
Дизайн с фиксированной шириной гарантирует то, что разметка выглядит неизменно
при различных размерах мониторов. Однако на очень маленьком мониторе посетителю,
возможно, придется горизонтально прокручивать страницу, чтобы просмотреть
все содержимое. А на действительно широком мониторе макет с постоянной
шириной будет выглядеть затерянной узкой полоской.
</p>
<p>
Разметки с непостоянной шириной решают эти проблемы, но у них также есть
свои собственные ограничения. На маленьком экране свободная разметка может
настолько сжаться, что весь дизайн развалится, а при очень широком экране
растянется так, что посетителям придётся читать ненормально длинные строки
текста. Есть CSS-свойства, которые предусмотрены для того, чтобы решить
эту проблему: min-width, min-height, max-width и max-height.
</p>
</div>
(рис 10.2) Макет с одной колонкой непостоянной ширины
Переходя к большему числу колонок, будем применять позиционирование на основе плавающих элементов, при котором ширина колонок также может быть фиксированной или непостоянной. Следует очень внимательно следить за тем, чтобы суммарная ширина всех колонок не превысила 100% (при непостоянной ширине) или ширины общего контейнера (при фиксированной ширине). Иначе последняя колонка переместится вниз. Подсчитывая суммарную ширину, принимайте в расчёт значение свойства width колонки, а также padding и border и, если есть, margin. Разумеется, поля, границы и отступы учитываются с обеих сторон. С этим подсчётом связано следующее затруднение: как сложить, например, 50% и 2px? Решить его можно двумя способами: или пользоваться везде только одним способом измерения (пикселы либо проценты), или же оценить максимально возможную процентную долю пиксела, ограничив ширину макета. Например, если для глобального контейнера, содержащего весь макет, указано свойство min-width: 400px, то можно быть уверенным, что 4px не превосходят одного процента ширины макета.
В остальном идея проста: колонки снабжаются свойством float:left и указанием ширины, а также отступа и поля. При двух- и трёхколоночном макете необязательно делать плавающей центральную колонку (иногда это нежелательно) - вместо этого ей можно задать достаточные отступы слева и справа, а крайние колонки сделать плавающими - одну с float:left, а другую с float:right.
Задавая колонкам фоновые цвета, вы обнаружите, что, когда в колонке мало содержимого, заполненный фоном блок смотрится не вполне эстетично. Предпочтительнее, чтобы он доходил внизу до нижнего колонтитула (или края страницы).
Чтобы добиться этого эффекта, не обойтись без специального трюка: например, заполнить страницу вертикально фоновым изображением, имеющим высоту 1 пиксел и повторяющим в горизонтальном направлении раскраску колонок. Понятно, что на самом деле колонки останутся той же высоты (которая зависит от содержимого и полей), но внешне будет казаться, что они "достают" до нижнего колонтитула.
#frame {
width: 85%;
min-width: 400px;
margin: 0 auto;
}
#col1 {
float: left;
width: 66%;
padding-right: 4px;
margin-right: 4px;
border-right: 1px solid black;
}
#col2 {
float: left;
width: 30%;
padding: 4px;
background-color: #ddd;
}
#footer {
clear: both;
border-top: 1px solid black;
padding-top: 5px;
margin-top: 5px;
}
...
<div id="frame">
<div id="col1">
<h1>
Заголовок страницы</h1>
<p>
Переходя к большему числу колонок, будем применять позиционирование на
основе плавающих элементов...
</p>
<p>
В остальном идея проста: колонки снабжаются свойством float:left и указанием
ширины, а также отступа и поля...</p>
</div>
<div id="col2">
<p>
Задавая колонкам фоновые цвета, вы обнаружите, что, когда в колонке мало
содержимого, заполненный фоном блок смотрится не вполне эстетично...</p>
</div>
<div id="footer">
(c) Копирайт
</div>
</div>
(рис 10.3) Макет с 2 столбцами непостоянной ширины
#frame {
width: 600px;
margin: 0 auto;
background-image: url(600px_220gray.png);
}
#col1 {
float: left;
width: 349px;
padding-right: 10px;
margin-right: 10px;
border-right: 1px solid black;
}
#col2 {
float: left;
width: 220px;
padding-left: 10px;
}
#footer {
clear: both;
border-top: 1px solid black;
padding-top: 5px;
background-color: White;
}
(рис 10.4) Макет с 2 столбцами фиксированной ширины - заполнение фоном всей высоты меньшего столбца
Аналогичным образом строится и трёхколоночный макет.
body {
background-color: #bbb;
}
#frame {
width: 760px;
margin: 0 auto;
background-color: #eee;
}
#header {
border-bottom: 1px solid black;
padding: 5px;
text-align: center;
}
#col1 {
float: left;
width: 200px;
padding-left: 10px;
}
#col2 {
float: left;
width: 328px;
padding-left: 10px;
padding-right: 10px;
margin-left: 10px;
margin-right: 10px;
border-left: 1px solid black;
border-right: 1px solid black;
}
#col3 {
float: left;
width: 170px;
padding-right: 10px;
}
#footer {
clear: both;
border-top: 1px solid black;
padding: 5px;
margin-top: 5px;
text-align: center;
}
...
<div id="frame">
<div id="header">
<h1>
Заголовок страницы</h1>
</div>
<div id="col1">
<p>
Левая колонка имеет ширину 200px и левое поле 10px.</p>
</div>
<div id="col2">
<h2>
Центральная колонка</h2>
<p>
Все 3 колонки - плавающие, и их суммарная ширина (вместе со всеми полями,
отступами и рамками) равна 760px.</p>
<p>
Все секции помещены в один общий контейнер, которому задана ширина 760px
и который центрирован горизонтально на странице.</p>
</div>
<div id="col3">
<p>
Правая колонка имеет ширину 328px, горизонтальные поля 10px, горизонтальные
отступы 10px и однопиксельные сплошные рамки.</p>
</div>
<div id="footer">
Нижний колонтитул имеет поле 5px, отступ сверху 5px и однопиксельную рамку
сверху.
</div>
</div>
(рис 10.5) Макет с 3 колонками с верхним колонтитулом
Необязательно, чтобы макет страницы представлял собой набор колонок, выстроенных в один ряд. Нередко встречается и "неправильный" дизайн - с
#main {
bottom: 10%;
left: 5%;
width: 40%;
}
#title {
top: 50%;
left: 50%;
width: auto;
}
#title h1 {
margin: 0;
}
#block2 {
top: 2%;
right: 2%;
width: 25%;
}
div:hover {
z-index: 1;
}
...
<div id="main">
<p>
<strong>Центральный блок</strong> имеет ширину 40% (от ширины страницы)
и позиционирован абсолютно следующим образом: bottom: 10%; left: 5%;.
</p>
<p>
"Неправильный" дизайн - с произвольным размещением элементов - используется
обычно когда на странице совсем немного содержимого.
</p>
</div>
<div id="title">
<h1>
Заголовок</h1>
</div>
<div id="block2">
<strong>Блок 2 </strong>позиционирован при помощи свойств top: 2%; right:
2%;
</div>
(рис 10.6) Асимметричный макет с непостоянной шириной элементов
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.