Делаем простой 2-х колоночный CSS шаблон
В данном уроке демонстрируется процесс создания простого 2-х колоночного шаблона.
Шаблон будет состоять из заголовка, горизонтальной панели навигации, боковой панели и нижнего колонтитула. Также он будет центрирован по горизонтали в окне браузера.
Шаг 1. Основная структура.
Сначала создадим основную структуру шаблона.
<div id="wrap"> <div id="header"></div> <div id="nav"></div> <div id="main"></div> <div id="sidebar"></div> <div id="footer"></div> </div>
А затем поместим какое-нибудь содержание в различные разделы:
<div id="wrap"> <div id="header"><h1>Простой 2-х колоночный шаблон CSS. Шаг 1</h1></div> <div id="nav"> <ul> <li><a href="http://ruseller.com">Опция 1</a></li> <li><a href="http://ruseller.com">Опция 2</a></li> . . . </ul> </div> <div id="main"> <h2>Колонка 1</h2> . . . </div> <div id="sidebar"> <h2>Колонка 2</h2> <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Mauris vel magna.</p> <ul> <li><a href="http://ruseller.com">Ссылка 1</a></li> <li><a href="http://ruseller.com">Ссылка 2</a></li> . . . </ul> </div> <div id="footer"> <p>Нижний колонтитул</p> </div> </div>
Теперь у нас есть документ HTML совершенно без стилей. Далее мы дуем использовать CSS для построения шаблона на основе данного документа.
Шаг 2. Выравниваем элементы body
и html
.
Чтобы содержание касалось границ окна браузера, устанавливаем значения свойств margin
и padding
для элементов body
и html
в 0. Также задаем цвет текста и фона.
body, html { margin:0; padding:0; color:#000; background:#a7a09a; }
Шаг 3. Основные контейнеры.
Теперь займемся заданием ширины и центрированием области содержания. Для этого зададим значения для свойств ширины и поле основного контейнера #wrap
. Также установим для него фон, чтобы выделить на странице.
Метод центрирования содержания основывается на факте, что при установке для левого и правого полей элемента значений auto
, они разделяют оставшееся пространство после вычитания ширины элемента из ширины контейнера. В данном случае ширина элемента #wrap
будет вычитаться из ширины окна браузера.
Примечание: для того, чтобы данный метод работал в Internet Explorer (версии 6 и старше), документ должен использовать DOCTYPE, который будет указывать для IE на использование стандартного режима.
#wrap { width:750px; margin:0 auto; background:#99c; }
Мы не используем элемент body
для установки ширины и центрирования шаблона, так как в некоторых версиях Internet Explorer это может вызвать нежелательные эффекты.
Затем задаем разным разделам разные фоновые цвета для выделения их на странице.
#header { background:#ddd; } #nav { background:#c99; } #main { background:#9c9; } #sidebar { background:#c9c; } #footer { background:#cc9; }
Шаг 4. Размещаем колонки рядом одна с другой
Для размещения рядом колонок (#main
и #sidebar
) делаем их плавающими и смещаем одну влево, а другую вправо. Также задаем ширину колонок.
#main { float:left; width:500px; background:#9c9; } #sidebar { float:right; width:250px; background:#c9c; }
Обратите внимание, что сумма ширин колонок должна быть равна ширине элемента #wrap
.
Теперь элемент #sidebar
выводится справа от элемента #main
, но нижний колонтитул находится не на своем месте.
Шаг 5. Задвигаем нижний колонтитул вниз
Нижний колонтитул не становится на свое место потому, что продолжает действовать свойство float
. Когда элемент делается плавающим, он удаляется из общего потока документа и не сдвигает вниз другие элементы, которые следуют за ним. Поэтому элемент #footer
начинается сразу ниже элемента #sidebar
.
Чтобы исправить положение, надо установить свойство clear
для нижнего колонтитула, чтобы указать ему, что он не может иметь других элементов рядом.
#footer { clear:both; background:#cc9; }
Шаг 6. Устанавливаем фон для боковой колонки
Теперь видно, что более короткая колонка не продляется до нижнего колонтитула. Чтобы сделать внешний вид однообразным, установим одинаковые цвета фона для элементов #sidebar
и #wrap
.
#sidebar { float:right; width:250px; background:#99с; }
Если вы не знаете, какая колонка будет длиннее, а какая короче, то придется воспользоваться одним из методов для установки цвета фона.
Шаг 7. Делаем навигационную панель горизонтальной
Элемент #nav
содержит обычный неупорядоченный список ссылок. Нам нужно изменить его внешний вид:
#nav ul { margin:0; padding:0; list-style:none; } #nav li { display:inline; margin:0; padding:0; }
Шаг 8. Выравниваем поля, отступы, и добавляем совместимости с IE 6
Почти готово. Нужно выровнять свойства margin
и padding
для некоторых элементов, чтобы сделать шаблон более приличным.
#header { padding:5px 10px; background:#ddd; } h1 { margin:0; } #nav { padding:5px 10px; background:#c99; } #main { float:left; width:480px; padding:10px; background:#9c9; } h2 { margin:0 0 1em; } #sidebar { float:right; width:230px; padding:10px; background:#99c; } #footer { clear:both; padding:5px 10px; background:#cc9; } #footer p { margin:0; }
Когда добавляются отступы для элементов #main
и #sidebar
, нужно вычесть их размер справа и слева из ширины элементов. Так как нужно учесть действие модели прямоугольника CSS.
И теперь надо компенсировать ошибку с плавающими элементами в Internet Explorer 6. Если посмотреть на результат шага 6 в IE 6, то можно заметить, что нижний колонтитул сдвинут ниже #main
. Попробуйте подвигать страницу вверх-вниз, если не заметили дефекта сразу.
Для устранения дефекта воспользуемся методом звезды HTML, чтобы задать для нижнего колонтитула высоту только для IE 6:
* html #footer { height:1px; }
Данный код может выглядеть несколько странно, но из-за другой ошибки в IE нижний колонтитул не может быть высотой в один пиксель и будет растягиваться на размер содержания.
Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/d3i9z7KBU9o/lessons.php
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-03-13 » Стратегии SEO на 2024 год
- 2024-03-13 » Как использовать анимацию с помощью JavaScript-библиотеки GSAP
- 2024-03-13 » Использование GSAP 3 для веб-анимации
- 2024-03-13 » Cогласование топографической съёмки с эксплуатирующими организациями
- 2024-02-19 » Теряются лиды? Как настроить сквозную аналитику
- 2024-02-17 » Мерч и IT: на что обратить внимание в 2024 году
- 2024-02-16 » Копируем с RSync: основные примеры синхронизации файлов
- 2024-02-15 » Лучшие noCode AI платформы для создания диалоговых ботов
- 2024-02-14 » Факторы ранжирования Google 2024 — исследование Semrush
- 2024-02-12 » Перенос сайта на другой хостинг
- 2024-02-05 » В России сформирован реестр хостинг-провайдеров
- 2024-02-04 » Использование SSH для подключения к удаленному серверу Ubuntu
- 2024-02-03 » Подключаемся к серверу за NAT при помощи туннеля SSH. Простая и понятная инструкция
- 2024-02-02 » Настройка CI/CD для Gitlab-репозитория: схемы и гайд по шагам
- 2024-02-01 » GitLab CI Pipeline. Запуск сценария через SSH на удаленном сервере
- 2024-01-29 » Introduction to GitLab’s CI/CD for Continuous Deployments
- 2024-01-26 » Настройка GitLab CI/CD
- 2024-01-25 » Установка shell gitlab runner
- 2024-01-25 » Установка и регистрация gitlab-runner в docker контейнере
- 2024-01-25 » Переменные Gitlab-Ci
- 2024-01-25 » Настройка CI/CD в GitLab для синхронизации проекта с веб-серверами
- 2024-01-25 » Копирование файлов scp
- 2024-01-21 » Бездепозитные бонусы от казино: обзор условий и правил использования
- 2024-01-18 » Современная обработка ошибок в PHP
- 2024-01-18 » Пример шаблона проектирования MVC в PHP
- 2024-01-18 » Мифический человеко-DevOps
- 2023-12-28 » Google подвел итоги 2023 года в поиске
- 2023-12-28 » 5 ошибок отдела продаж, из-за которых вы теряете клиентов
- 2023-12-28 » Американский суд признал монополию Google на рынках дистрибуции Android-приложений
- 2023-12-28 » Хостинг-провайдер GoDaddy перестанет оказывать услуги пользователям из России
Всегда храни верность своему начальнику - следующий, может быть еще хуже... |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.