На этой странице:
Построим “резиновую” страницу о Роботландии с двумя пропорциональными плавающими колонками (ссылка). Страница должна растягиваться на всю ширину текущего окна.
|
|
Заголовочная часть
(блок
Основное содержание
( |
Запишем HTML-код будущей страницы:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<HTML lang="ru">
<HEAD>
<META http-equiv="Content-Type"
content="text/html; charset=windows-1251">
<LINK rel="stylesheet" type="text/css" href="main.css">
<TITLE>Роботландия</TITLE>
</HEAD>
<BODY bgcolor="white" text="black">
<DIV id="header"><H1>Роботландия</H1></DIV>
<HR class="none">
<DIV id="wrapper"> <!-- обертка wrapper -->
<DIV id="content">
<DIV class="wrap">Содержание</DIV>
</DIV>
<HR class="none">
<DIV id="sidebar">
<DIV class="wrap">Боковая панель</DIV>
</DIV>
</DIV> <!-- конец обертки wrapper -->
<HR class="none">
<DIV id="footer">Подвал</DIV>
</BODY>
</HTML>
|
|
Так это выглядит без CSS. Горизонтальные линии введены для браузеров, которые CSS не поддерживают — они разделяют страницу на логические части.
Для класса |
В соответствие с макетом построим набор CSS-определений:
BODY
{
margin:10px; padding:0;
font:small Georgia, serif;
color:#2A3D34;
background:white;
border:1px solid #638F7B;
/* Ограничение ширины */
min-width: 700px;
width: expression(documentElement.clientWidth < 720 ? '720px' : 'auto');
}
/* Заголовок */
#header
{
border-bottom:1px solid #638F7B;
}
#header H1
{
color:#8a3700;
margin:0;
padding:0 10px 0 150px;
padding-left:150px;
font:bold 70px Georgia,serif;
line-height:110px;
text-align:right;
}
/* Обёртка блоков content и sidebar*/
#wrapper
{
float:left;
width:100%;
}
/* Содержание */
#content
{
float:left;
width:65%;
/* По поводу следующего правила смотрите
статью Владимира Токмакова
"Борьба с прыгающими блоками в IE" на странице:
www.artlebedev.ru/tools/technogrette/html/fix_floats_in_ie/
*/
//margin-right:-100%; /* Заклинание для IE */
}
/* Боковая панель*/
#sidebar
{
float:left;
width:35%;
/* По поводу следующих правил смотрите
статью Владимира Токмакова
"Борьба с прыгающими блоками в IE" на странице:
www.artlebedev.ru/tools/technogrette/html/fix_floats_in_ie/
*/
//margin-left: 65%; /* Заклинание для IE */
//display: inline; /* Заклинание для IE */
}
/* Отступы для содержимого блоков sidebar и content */
.wrap
{
padding:10px;
}
/* Подвал */
#footer
{
clear:both;
padding:5px 10px;
border-top:1px solid #638F7B;
white-space:nowrap;
font:0.7em Tahoma,sans-serif;
color:white;
background:#828377;
}
/* Для устранения элементов при включённом CSS */
.none {display:none;}
|
|
Так это выглядит в окне шириной 750 пикселов. |
|
|
А так — в более широких окнах. Страница, действительно, обладает “резиновым” характером. Область содержания и боковая панель делят ширину окна в пропорции 65%:35%. |
Заголовок H1 был заранее погружен в блок
header:
<DIV id="header"><H1>Роботландия</H1></DIV>
Причина — желание
прикрепить к заголовочной части две фоновые картинки. Одну
картинку будем использовать как паркетную заливку в блоке
header, другую — для показа логотипа в блоке
H1:
#header
{
background:white url(pic/h1bg.png) repeat-y right top; /* Паркетная заливка */
border-bottom:1px solid #638F7B;
}
#header H1
{
background:url(pic/logo.png) no-repeat; /* Лого */
color:#8a3700;
margin:0;
padding:0 10px 0 150px;
font:bold 70px Georgia,serif;
line-height:110px;
text-align:right;
}
|
Фоновая заливка:
Логотип:
|
Обратите внимание — текст заголовка выравнивается справа
правилом
Чтобы текст не прилипал к границе справа,
и не налезал в узких окнах на логотип, предусмотрены соответствующие
внутренние отступы:
|
Наполним страницу реальным содержимым и опишем дополнительные оформительские стили.
|
|
/* Приближаем заголовок
к своему абзацу */
H2, H3, H4, H5, H6
{margin-bottom:0.2em;}
P {margin:0.2em 0 1em;}
/* Размеры заголовков */
H2 {font-size:1.4em;}
H3 {font-size:1.2em;}
/* Выделение */
EM {font-weight:bold;}
/* Рисованный маркер списка */
UL LI
{
list-style-image:url(pic/marker.gif);
}
|
Займёмся теперь фоновой полоской, создающей ложные пропорциональные колонки. На самом деле, хочется просто провести разделительную пунктирную линию.
|
|
Слева на иллюстрации показан разделительный пунктир, а справа — увеличенная в 20 раз картинка, которая его строит, укладываясь в паркет по вертикали. Картинка показана на цветном фоне, чтобы были видны белые хвостики сверху и снизу. |
Начальное положение картинки смещается по горизонтали на 65%:
#wrapper
{
float:left;
width:100%;
background:white url(pic/fon.png) 65% top repeat-y;
}
|
|
Окончательный вариант показан на рисунке, но важно посмотреть, как страница ведёт себя при изменении ширины окна браузера. Загрузите страницу, щёлкнув по ссылке, и проверьте её работу в окнах разной ширины. |