Шапка страницы. Создать однотонную шапку пошаговая инструкция css. Шапка страницы Как разбить макет страницы на секции
В этой статье рассмотрим, как сделать шапку сайта, и расположить на ней заголовок, и описание сайта
Первым делом для шапки сайта нужна картинка. Её лучше всего сделать в фотошопе.
А тем, кто не владеет этим редактором, я предлагаю самый простой способ , в имеющимся на всех Windows по умолчанию Paint.
Ширину картинки сделаем 900px, по ширине сайта, высоту — 200px. У Вас конечно могут быть свои размеры, лишь бы ширина картинки совпадала с шириной сайта (оболочка wrapper), высота на Ваше усмотрение
Как только картинка будет готова, и размещена в папке images , возьмём , созданный на предыдущей странице, и приступим к установке шапки на сайт.
В селекторе #header убираем заданную ему высоту, и прописываем ширину и высоту сделанной картинки.
#header
{
width
: 900px
; - ширина
height
: 200px
; - высота
background-color
: #25B33f
; - фон
margin-bottom
: 10px
; - отступ снизу
}
Затем вставляем саму картинку.
#header
{
width
: 900px
;
height
: 200px
;
background-color
: #25B33f
;
margin-bottom
: 10px
;
background-image
: url(images/i8.png)
- картинка
}
Свойство background-color указывается на тот случай, если картинка вдруг, в каком либо браузере посетителя, не отобразится.
Если картинка разместилась с каким-либо смещением, и нужно её подправить, то сюда же добавляется свойство
Теперь дошла очередь до заголовка и описания сайта. Для этого прописываем в теге body блок div с идентификатором id="header" , и в нём два заголовка h1 и h3 , в которые и вставляем название сайта и его описание
Шапка сайта
Посмотрим, что у нас получается.
Теперь, придадим вид заголовку и описанию. Создаём для них два селектора, и прописываем следующие свойства:
Для h3 зададим ширину в 200 пикселей, чтоб он не растянулся на всю картинку. Отступами можно манипулировать в зависимости от того, в каком месте шапки будет удобнее разместить текст.
Посмотрим результат.
По моему, очень даже симпатично.
Обобщим код этой страницы.
Документ без названия
#wrapper
{
width
: 900px
;
outline
: 1px solid #787274
;
padding
: 10px
;
margin
: 0 auto
;
}
#header
{
width
: 900px
;
height
: 200px
;
background-color
: #25B33f
;
margin-bottom
: 10px
;
background-image
: url(images/i8.png)
}
#sidebar
{
background-color
: #2FF553
;
margin-bottom
: 10px
;
width
: 180px
;
padding
: 10px
;
float
: right
;
}
#content
{
background-color
: #9EF5AF
;
margin-bottom
: 10px
;
width
: 670px
;
padding
: 10px
;
}
#footer
{
height
:80px
;
background-color
: #41874E
;
margin-bottom
: 10px
;
}
.clear
{
clear
: both
;
}
h1
{
color
: #ffee00
;
font
: 40px Georgia
;
margin-left
: 300px
;
}
h3
{
width
: 200px
;
color
: #ffee00
;
font-style
: italic
;
margin
: 70px 0 0 30px
;
}
Шапка сайта
Как сделать шапку для сайта с заголовком и описанием
Здравствуйте уважаемые будущие веб-мастера!
Мне 55 лет и я рад приветствовать
Вас на своём сайте.
Этот сайт первый, который я разработал самостоятельно,
а до этого умел только входить в интернет.
А мне, учитывая возраст и «опыт», было не просто
понять как раз эти нюансы, они отнимали
больше всего времени.
И я решил написать свой материал, так что-бы другим было легче
сориентироваться в потоке новой информации.
Здесь «разжеваны» все мелочи сопровождающие создание сайта,
мимо которых обычно проскакивают другие авторы.
Есть ещё один вариант вставки картинки в шапку сайта. Можно вставить адрес картинки в блок перед заголовком (к примеру, адрес моей картинки
http://trueimages.ru/img/0b/d0/06bb1a05753316ac3c567d047ba.png ">
В таком случае, в селекторе #header убираем свойство background-image: (../images/position.png); , и прописываем position: relative .
А в селекторах тегов h1 и h3 , прописываем свойство position: absolute; .
При этом необходимо будет изменить отступы для заголовков. Подробнее о том, почему так делается, можно прочитать в статье
#header
{
width
: 900px
;
heigh
t: 200px
;
background-color
: #25B33f
;
margin-bottom
: 10px
;
position
:relative
;
}
h1{
position
: absolute
;
color
: #ffee00
;
font
: 40px Georgia
;
left
: 300px
;
}
h3{
position
: absolute
;
width
: 200px
;
color
: #ffee00
;
font-style
: italic
;
top
: 70px
;
left
:30px
;
}
Всё остальное остаётся без изменения.
Теперь немного информации для тех, у кого сайт расположен на CMS WordPress.
На WordPress устанавливается готовая тема, с готовой шапкой, но допустим, Вам захотелось в эту готовую шапку, добавить какой нибудь свой логотип, или ещё какое изображение.
Делается это следующим образом. Открываете в консоли «Записи — Добавить новую», переводите редактор в режим HTML, и загружаете то изображение, которое потом будет добавлено в шапку сайта.
В редакторе после загрузки появиться код картинки, его нужно скопировать, а «Запись» можно удалить.
Затем переходим во «Внешний вид — Редактор», и открываем для редактирования файл header.php .
В этом файле, находим строку , и после неё вставляем скопированный код картинки.
После этого обновляем файл, и смотрим, как изображение разместилось в шапке сайта.
Если его нужно куда то подвинуть, то возвращаемся в редактор файла, и в код изображения, в тег img , добавляем атрибут style со свойством margin
style ="margin:0 0 0 0; "
И двигаем изображение туда, куда нам нужно.
Вот мы и создали первую страницу сайта. После доработки шапки, и ещё кое каких доработок, описанных далее, можно этот файл назвать index.html , и выложить его на хостинг. Затем, по этому же шаблону, создаются другие страницы, создаётся меню и так далее. И сайт начинает свою жизнь в интернете.
P.S. Если кому-то захочется поменять картинку в шапке сайта на WordPress, и по манипулировать расположением заголовков, то об этом в статье
Желаю творческих успехов.
2016-12-07
2016-12-07
Здравствуйте уважаемый посетитель!
Сегодня, используя стили CSS оформим имеющиеся элементы шапки: фавикон, заголовок названия сайта, ключевую фразу, и таким образом, приведем внешний вид шапки сайта в соответствие с дизайн макетом.
С учетом того, что назначение стилей CSS должно основываться на дизайн-макете, то здесь достаточно большое внимание будет уделено получению необходимых данных с помощью графического редактора.
- Размещение элементов по вертикали
- Формирование отступов элементов по горизонтали
- Назначение свойств шрифта элементов
- Создание теней для текстовых элементов
- Исходные файлы сайта
В соответствии с разметкой веб-страницы, шапка разделена на две основные части. Первая - это область, где располагаются фавикон, заголовок названия сайта и ключевая фраза, которые объединены элементом с классом "hdr-title" . Вторая часть - меню, образованое элементом с классом "menu" .
Меню мы оставим для следующей статьи, а сейчас рассмотрим элементы: фавикон, заголовок названия сайта и ключевую фразу.
Ниже, приведен фрагмент шапки HTML-страницы, взятый из файла "index.html", с содержимым контейнера , где цветом выделены нужные элементы.
"images/logo.gif" alt ="Фавикон" />
Название сайта
Противоугонная маркировка стекол -
надежная защита автомобиля от угона
Рис.1 Фрагмент кода шапки HTML-страницы
Как видно из таблицы, фавикон и заголовок названия сайта объединены в один блок с атрибутом класса "hdr-block" , а два фрагмента ключевой фразы размещены в отдельные блоки
Один с классом "hdr-p1" , другой "hdr-p2"
В первую очередь, для формирования этих элементов получим необходимые данные, а именно: расстояние элементов до верхней границы шапки веб-страницы и, соответственно, вычислим их высоту. Ниже, на скриншоте в увеличенном масштабе наглядно показано, как это можно сделать
В итоге, получим следующие данные:
- расстояние до блока с классом "hdr-title" - 28px;
- расстояние до нижней границы фавикона - 55px;
- расстояние до блока
С классом "hdr-p1" - 74px;
- расстояние до верхней границы эл-та
С классом "hdr-p2" - 105px;
- расстояние до нижней границы эл-та
С классом "hdr-p2" - 160px;
Исходя из этого, вычислим высоту элементов:
- высота фавикона - 27px (55px - 28px);
- высота блока с классом "hdr-block" - 46px (74px - 28px);
- высота блока
С классом "hdr-p1" - 31px (105px - 74px);
- высота блока
С классом "hdr-p2" - 55px (160px - 105px);
На основании этих данных назначим соответствующие стили.
Hdr-title {
margin-top: 28px;
Hdr-block {
height: 46px;
Hdr-block img {
height: 27px;
Hdr-p1 {
height: 31px;
Hdr-p2 {
height: 55px;
Теперь, если обновить страницу, то можно увидеть, что все три элемента шапки, которым были назначены свойств CSS расположились с соответствующими макету отступами от верхнего края страницы, а также установлен размер графического элемента - фавикона.
Ниже, на рис.4 показан вид шапки до назначения свойств CSS, на рис.5 - после назначения.
Рис.4 Вид шапки до назначения свойств CSS
Рис.5 Вид шапки после назначения свойств CSS
Однако, расположение фавикона и заголовка названия сайта, которые размещены в блоке с классом "hdr-block" , пока не соответствуют макету (на макете они располагаются в один ряд, здесь же заголовок находится под фавиконом).
Это происходит из-за того, что по умолчанию элементы располагаются один под другим по мере загрузки HTML-страницы.
Устранить это несоответствие можно довольно простым способом, назначив для фавикона img всего лишь одно свойство float , которое сделает его плавающим, сместит в нужную левую сторону родительского элемента и позволит строчному содержимому , расположиться за ним в одну линию.
О свойстве float очень хорошо объясняется в справочнике "Puzzleweb" на странице "http://www.puzzleweb.ru/css/pr_float.php" . Поэтому, если кто еще не знаком этим важным свойством CSS, то может воспользоваться данной ссылкой.
Как назначить в данном случае свойство float показано ниже.
Hdr-title {
margin-top: 28px;
Hdr-block {
height: 46px;
Hdr-block img {
height: 27px;
float: left;
Hdr-p1 {
height: 31px;
Hdr-p2 {
height: 55px;
И теперь, после обновления страницы мы увидим, что фавикон и заголовок названия сайта расположились в нужном порядке.
Следующий этап оформления шапки сайта, это задание нужных отступов рассматриваемых элементов по горизонтали. При этом, надо учесть, что мы используем технику резиновой верстки и поэтому отступы должны изменятся пропорционально в зависимости от разрешения экрана при сжатии, или растягивании страницы.
И добиваться этого мы будем с помощью назначения отступов не в виде фиксированной величины, измеряемой в пикселях, а в относительной, в данном случае в процентном соотношении ко всей ширине страницы.
Для того, чтобы задать такие отступы, необходимо их рассчитать. Сначала, измерим на дизайн-макете расстояние от элементов до левой границы шапки веб-страницы. Ниже показано, какие замеры мы будем использовать при расчете.
В результате, мы получили следующие значения:
- отступ фавикона - 100px;
- отступ заголовка - 145px;
- отступ блока
С классом "hdr-p1" - 196px;
- отступ блока
С классом "hdr-p2" - 243px.
Исходя из того, что общая ширина страницы дизай-макета составляет 1200px, подсчитаем процентное соотношение измеренных величин по каждому элементу:
- отступ фавикона - 8.33%;
- отступ заголовка - 12.08%;
- отступ блока
С классом "hdr-p1" - 16.33%;
- отступ блока
С классом "hdr-p2" - 20.25%.
На основании этих данных присвоим полученные значения соответствующим свойствам элементов.
Hdr-title {
margin-top: 28px;
Hdr-block {
height: 46px;
Hdr-block img {
height: 27px;
float: left;
margin-left: 8.25%;
Hdr-block h1 {
margin-left: 12.08%;
Hdr-p1 {
height: 31px;
margin-left: 16.33%;
Hdr-p2 {
height: 55px;
margin-left: 20.25%;
После изменения CSS-кода мы можем убедиться, что все отступы элементов приведены в соответствие с дизайн-макетом.
Теперь назначим свойства шрифта рассматриваемых элементов, а именно: размер, цвет и стиль.
Для того, чтобы их определить, снова обратимся к дизайн-макету. На следующем скриншоте, на примере текста заголовка названия сайта, показан один из вариантов получение информации об используемом шрифте.
В данном случае, шрифт заголовка имеет следующие значения:
- стиль - стандартный (не курсивный, нежирный);
- размер - 2.25em = 36px / 16px;
- цвет - #c03838.
Аналогично, определяем параметры шрифта для элемента ключевой фразы:
- шрифт "Arial" из семейства шрифтов без засечек;
- стиль - курсивный, нежирный;
- размер - 1.5em = 24px / 16px;
- цвет - #437744.
Теперь, присвоим полученные значения соответствующим свойствам.
Hdr-title {
margin-top: 28px;
Hdr-block {
height: 31px;
Hdr-block img {
height: 27px;
float: left;
margin-left: 8.33%;
Hdr-block h1 {
margin-left: 12.08%;
font-size: 2.25em;
color: #c03838;
line-height: 0.8;
Hdr-p1 {
height: 31px;
margin-left: 16.33%;
Hdr-p2 {
height: 55px;
margin-left: 20.25%;
Hdr-p1, .hdr-p2 {
font-style: italic;
font-size: 1.5em;
color: #437744;
line-height: 0.8;
По назначенным свойствам шрифта следует сделать некоторые уточнения:
- шрифт "Arial" назначен ранее при установке базовых настроек файла css, поэтому здесь, повторного его назначения не требуется;
- значение normal
стиля font-weight
для элемента
здесь не указывается, так как оно установлено также в базовых настройках файла css, а для блока
Это значение установлено по умолчанию;
- Для того, чтобы верхнюю границу текста совместить с верхней границей родительского элемента свойству line-height присвоено значение 0.8 . Таким образом, межстрочный интервал становится равным размеру текущего шрифта.
После обновления страницы можно увидеть нужные изменения в шрифте текста.
И, последнее, что осталось для оформления шапки, это создание теней для текста.
В CSS3 для формирования теней текста имеется свойство text-shadow , в котором задаются значения вертикального и горизонтального смещения, размытость и цвет.
Чтобы получить необходимые данные о параметрах теней снова обратимся к дизайн-макету. Ниже, на примере тени заголовка названия сайта, показано как получить эти данные. При этом, как открыть панель "Стиль слоя" было показано ранее в предыдущих статьях рубрики в части, касающейся создания дизан-макета.
Таким образом, на основании изображения дизан-макета можно получить данные, которые соответствуют свойствам CSS, такие, как:
- угол - 157 o ;
- смещение - 3px;
- размер - 3px;
- цвет - #564949.
Из них можно получить необходимые для CSS значения смещения тени, а именно: смещение по горизонтали 3px, а по вертикали - 1px. Таким образом, получим для свойств CSS следующие значения:
- смещение по-горизонтали - 3px;
- смещение по-вертикали - 1px;
- размытость - 3px;
- цвет - #564949.
Аналогично, получим данные по тени для ключевой фразы.
- смещение по-горизонтали - 2px;
- смещение по-вертикали - 1px;
- размытость - 2px;
- цвет - #298384.
После назначения соответствующих свойств получим окончательный вариант таблицы стилей CSS
Hdr-title {
margin-top: 28px;
Hdr-block {
height: 46px;
Hdr-block img {
height: 27px;
float: left;
margin-left: 8.33%;
Hdr-block h1 {
margin-left: 12.08%;
font-size: 2.25em;
color: #c03838;
line-height: 0.8;
text-shadow: 3px 1px 3px #564949;
Hdr-p1 {
height: 31px;
margin-left: 16.33%;
Hdr-p2 {
height: 55px;
margin-left: 20.25%;
Hdr-p1, .hdr-p2 {
font-weight: bold;
font-style: italic;
font-size: 1.5em;
color: #437744;
line-height: 0.8;
text-shadow: 2px 1px 2px #298384;
После обновления страницы можно увидеть окончательный вид элементов шапки.
На этом, оформление элементов шапки мы закончим, а в следующей статье с помощью стилей CSS сформируем резиновое меню, которое может сжиматься и растягиваться в установленных пределах.
Исходные файлы сайтаИсходные файлы сайта с обновлениями, которые были сделаны в данной статье, можно скачать из прилагаемых дополнительных материалов .
Основная сложность с резиновым макетом это обеспечить корректное отображение на разных разрешениях, от высокого до низкого. Поскольку мы ограничили ширину контента 760 пикселами, картинку в шапке стоит разместить так, чтобы более важная часть изображения вписывалась в этот размер. На рис. 6.3 показано, как это сделать. Тёмным цветом выделена центральная часть шириной 760px, буквой А обозначены одинаковые по ширине оставшиеся фрагменты.
Рис. 6.3. Ширина шапки
Само добавление картинки в шапке делается через фоновый рисунок, который необходимо выровнять по центру элемента .
Header { display: block; /* Для старых браузеров */ height: 405px; /* Высота шапки */ background: url(images/header-bg.png) no-repeat center bottom; }
В идеале рисунок должен иметь большую ширину от 2000 пикселов, тогда практически при любом разрешении монитора рисунок будет показывать центральную часть, обрезая всё, что не помещается в окно. Но беда в том, что изначально картинка не настолько широкая, а рисовать бесконечно тянущиеся по бокам чёрные полоски не хочется. Один из вариантов решения это включить повторение фона по горизонтали. Те, у кого разрешение 1280 пикселов по ширине и меньше, увидят единственную картинку, а владельцы широких мониторов смогут полюбоваться сразу несколькими животными и одновременно заходящими солнцами. Здесь важно подредактировать рисунок так, чтобы он без стыков совмещался сам с собой по горизонтали (рис. 6.4). Градиент для наглядности спрятан.
Рис. 6.4. Совмещение изображения по горизонтали
На данном рисунке место стыка обозначено стрелкой и промежутком, чтобы стык можно было заметить. Если правильно отредактировать правую и левую часть фоновой картинки, то она будет повторяться по горизонтали без видимых стыков, как один сплошной рисунок. Остаётся слегка подправить стиль, заменив значение no-repeat (без повторения) на repeat-x (повторение по горизонтали).
Header { display: block; height: 405px; background: url(images/header-bg.png) repeat-x center bottom; }
Рис. 6.5. Фоновая картинка для шапки
В формате PNG-24 файл с фоном размером 1325х405 пикселов занимает около 32 Кб, а в PNG-8 с 256-цветовой палитрой, где качество градиента несколько хуже - около 15 Кб. Можно разбить фон на две составные части - градиент и картинку и сохранить каждое изображение в своём формате, что должно привести к повышению качества отображения градиента. Впрочем, 32 Кб для столь большого изображения это немного и дополнительную оптимизацию кто-то посчитает «экономией на спичках». Тем не менее, альтернативный подход к созданию шапки сайта кому-то окажется полезным, а при желании вы можете его пропустить.
Оптимизация шапкиПоскольку градиент в шапке повторяется по горизонтали, его можно вырезать из макета и установить как фоновую картинку. На рис. 6.6 показан градиент высотой 405 пикселов, подготовленный для этой цели. Формат PNG-24 не вносит искажения в изображение, а градиенты хорошо сжимает (итоговый объем 402 байта), так что в этом случае однозначно следует использовать именно его. Рамка вокруг рисунка добавлена для наглядности.
Рис. 6.6. Градиентный рисунок (header-gradient.png)
Картинка с силуэтными животными делается на прозрачном фоне и высотой 198 пикселов, нет смысла делать её на всю высоту шапки, поскольку она занимает лишь часть. Фрагмент изображения показан на рис. 6.7. Шахматное поле означает прозрачность.
Рис. 6.7. Фоновая картинка с прозрачностью (header-animal.png)
Поскольку сохранение этой картинки идет в формате PNG-8, у которого только один уровень прозрачности, в отличие от 256 уровней формата PNG-24, важно обеспечить корректное наложение на градиентный фон. Для этого при сохранении в Photoshop-е надо указать цвет краёв (Matte) близкий к средней части градиента, где идёт наложение силуэта. Примерно это цвет #9de1f0. В этом случае не возникнет грязных контуров вокруг деревьев и животных, а картинка при наложении на градиент будет восприниматься как единое целое.
Два рисунка для фона шапки подготовлены, пишем код HTML.
И стиль для элемента и слоя header-bg .
Header { background: #00b0d8 url(images/header-gradient.png) repeat-x; } .header-bg { background: url(images/header-animal.png) repeat-x center bottom; height: 405px; }
В итоге объем файлов оказался 12,5 Кб, что даже меньше ожидаемого.
Название сайтаНазвание написано на облаке с растушёванными краями, что должно создать трудности при наложении на градиент. Есть два способа, как их обойти.
Очевидно, что второй способ имеет ряд недостатков - изображение нельзя сдвинуть даже на пару пикселов, оно привязано к градиенту, и если его градиент изменить, придётся менять и картинку. Так что сохраняем заголовок в формате PNG-24. Код HTML останется прежним, а стили расширятся.
Header { background: #00b0d8 url(images/header-gradient.png) repeat-x; } .header-bg { background: url(images/header-animal.png) repeat-x center bottom; height: 405px; /* Высота шапки */ text-align: center; /* Выравнивание по центру */ } .header-bg img { position: relative; /* Относительное позиционирование */ top: 40px; /* Сдвигаем картинку вниз */ }
Выравнивание по центру делается через свойство text-align , добавляемое к родителю тега , а сдвиг вниз через свойство top . Чтобы это свойство сработало, необходимо для картинки задать относительное позиционирование с помощью свойства position со значением relative .
На главной странице сайта картинка с названием выводится как обычно, на остальных страницах она служит ссылкой на главную страницу. Для этого достаточно слегка изменить код:
Значение / у атрибута href указывает на главную страницу и работает только на веб-сервере, но никак не локально.
Окончательный код для шапки приведён в примере 6.14.
Пример 6.14. Шапка сайта
HTML5 CSS 2.1 IE Cr Op Sa Fx
Как поймать льва в пустыне? body { margin: 0; } header { display: block; background: #00b0d8 url(images/header-gradient.png) repeat-x; /* Градиент */ } .header-bg { background: url(images/header-animal.png) repeat-x center bottom; /* Животные */ height: 405px; /* Высота шапки */ text-align: center; /* Выравнивание по центру */ } .header-bg img { position: relative; /* Относительное позиционирование */ top: 40px; /* Сдвигаем картинку вниз */ }
Зачастую вроде бы простые задачи верстки требуют сложной структуры HTML-разметки и использования CSS-трюков. Центрирование элементов или выравнивание контента может быть очень утомительным. Одна из таких задач - это выравнивание элементов верхней части сайта так, чтобы логотип был слева, а пункты меню - справа. Можно использовать float и position:absolute, а для выравнивания по вертикали - добавлять margin и padding разным элементам. Вроде бы ничего сложного. Но если сайт должен корректно отображаться и на мобильных устройствах, возникает много проблем.
Ниже описан лаконичный способ решения этой проблемы.
HTML-разметка максимально проста:
Super Bad First LinkSecond LinkThird Link
Высота шапки фиксированная, добавляем text-align: justify , для дочерних элементов:
Header { text-align: justify; letter-spacing: 1px; height: 8em; padding: 2em 10%; background: #2c3e50; color: #fff; }
Добавляем display: inline-block для всех элементов nav , чтобы можно было расположить их друг за другом:
Header h1, header nav { display: inline-block; }
Чтобы атрибут text-align: justify работал, как мы хотим, нужно использовать небольшой трюк с псведоэлементами, который был найден в статье Perfectly justified CSS grid technique using inline-block , автор Jelmer de Maat:
Header::after { content: ""; display: inline-block; width: 100%; }
В итоге получилось выравнивание по горизонтали, без использования float и position:absolute . Теперь необходимо выравнивание элементов по вертикали. При использовании vertical-align для элементов nav будет зависимость от высоты родительского блока - шапки. А это не очень правильно. Примеры использования vertical-align: top и vertical-align: middle на jsbin. Ниже представлен возможно наиболее удобный способ вертикального выравнивания.
Используем снова псевдоэлементы. используя пример из статьи Centering in the Unknown , упомянутый Michał Czernow:
Header h1 {
height: 100%;
}
header h1::before {
content: "";
display: inline-block;
vertical-align: middle;
height: 100%;
}
В результате получается то, что нужно:
Осталось решить две задачи: корректное отображение при большом количестве текста в шапке и адаптивность. Если заголовок сайта будет слишком длинный, верстка начнет съезжать:
Используем трюк с псевдоэлементом на header
:
CSS-код
header {
text-align: justify;
height: 15em;
padding: 2em 5%;
background: #2c3e50;
color: #fff;
}
header::after {
content: "";
display: inline-block;
width: 100%;
}
header > div,
header nav,
header div h1 {
display: inline-block;
vertical-align: middle;
}
header > div {
width: 50%;
height: 100%;
text-align: left;
}
header > div::before {
content: "";
display: inline-block;
vertical-align: middle;
height: 100%;
}
Выглядит намного лучше:
Теперь перейдем к адаптивности. Есть несколько способов решения этой задачи, можно просто не задавать высоту шапке, и все внутренние элементы будут адаптивны высоте. При этом не потребуется второй трюк с псевдоэлементами, живой пример на jsbin.
CSS-код
header {
text-align: justify;
padding: 2em 5%;
background: #2c3e50;
color: #fff;
}
header::after {
content: "";
display: inline-block;
width: 100%;
}
header h1,
header nav {
display: inline-block;
vertical-align: middle;
}
header h1 {
width: 50%;
text-align: left;
padding-top: 0.5em;
}
header nav {
padding-top: 1em;
}
Если же необходимо задать высоту шапки, то придется использовать и второй трюк с псевдоэлементами, и добавлять media query для экранов разных размеров:
@media screen and (max-width: 820px){ header { height: auto; } header > div, header >
Результат адаптивен и на мобильных устройствах выглядит так:
В примере используется 820px для наглядности, на живом сайте значение конечно должно быть другое, в соответствии с требованиями. Для поддержки Internet Explorer 8 необходимо вместо “::” использовать “:” для псевдоэлементов.
Финальный CSS-код
@import url(http://fonts.googleapis.com/css?family=Lato:400,700italic);
* { padding: 0; margin: 0; }
body { background: #1abc9c; font-family: "Lato", sans-serif; text-transform: uppercase; letter-spacing: 1px;}
header {
text-align: justify;
height: 8em;
padding: 2em 5%;
background: #2c3e50;
color: #fff;
}
header::after {
content: "";
display: inline-block;
width: 100%;
}
header > div,
header > div::before,
header nav,
header > div h1 {
display: inline-block;
vertical-align: middle;
text-align: left;
}
header > div {
height: 100%;
}
header > div::before {
content: "";
height: 100%;
}
header > div h1 {
font-size: 3em;
font-style: italic;
}
header nav a {
padding: 0 0.6em;
white-space: nowrap;
}
header nav a:last-child {
padding-right: 0;
}
@media screen and (max-width: 720px){
header {
height: auto;
}
header > div,
header > div h1,
header nav {
height: auto;
width: auto;
display: block;
text-align: center;
}
}
Результат:
Для начала распишем техническое задание. Нам необходимо создать шапку сайта, которая будет иметь блок ссылок, содержать несколько графических элементов заданной тематики и соответственно иметь некую текстовую часть, которая будет использоваться под слоган или еще что либо, так же я реализую данное творение в резиновом варианте так, чтобы размеры данной шапки изменялись вместе с размерами окна браузера.
Итак, вот что мы получим в конце урока:
Я выбрал тему рыбалки, потому что она мне очень близка и соответственно приятно что либо делать. Графику естественно я заготовил заранее в фотошопе, все сверсвтал и нарезал, как я это делал я вам не буду объяснять, так как это отдельная тема, а в этом уроке я покажу вам как это все реализуется непосредственно в коде, поэтому перейдем ближе к делу.
Вот общая картина того как выглядит эта шапка в html:
Рыбалка
НовостиКрючкиУдочкиЛескаО проекте
#header {
width: 100%;
height: 157px;
background: url(bg.jpg);
}
#links {
width: 100%;
height: 33px;
background:url(linkbg.jpg);
font-size: 14px;
font-weight: bold;
color:#FFFFFF;
}
#links div {
padding: 5px;
text-align:center;
width: 150px;
float: left;
}
.text {
color: #FFFFFF;
padding: 10px;
font-size: 24px;
float: left;
}
h1 {
margin: 0px;
padding: 0px;
font-size: 50px;
font-weight: bold;
color: #FFFFFF;
}
Как вы могли заметить код достаточно короткий и при этом очень эффективный, я буду разбирать все по порядку и соответственно комментировать каждый шаг:
Тег тела документа, здесь мы сразу обнуляем все возможные отступы от краев окна браузера и внутри самого тега body, соответствующими параметрами margin:0px; padding: 0px; это нам необходимо для того чтобы не было белых пробелов по краям окна браузера, да и в принципе это применяется всегда при любой нормальной верстке сайта.
Это у нас начало шапки мы создаем контейнер с заданными параметрами:
#header {
width: 100%;
height: 157px;
background: url(bg.jpg);
}
а именно первым делом задаем ширину шапки в процентах width: 100%; что дает нам возможность создать так называемую резиновую верстку, затем высоту height: 157px; и соответственно фоновый рисунок background: url(bg.jpg); который лежит у нас в той же папке что и файл шапки. Следующим делом нам необходимо создать три контейнера внутри данного, для того чтобы разместить там рисунки и текст:
Рыбалка
Рыбачьте с нами и поймаете...
Первому контейнеру мы задаем выравнивание к левой части чтобы он соответственно был слева, для этого мы используем параметр позиционирования float: left; и просто вставляем туда наше изображение, размер контейнера будет определяться размером изображения. Следующий контейнер мы так же выравниваем с помощью параметра float чтобы он у нас был на одной линии и не перешел на следующею строчку. Здесь мы используем класс class="text":
Text {
color: #FFFFFF;
padding: 10px;
font-size: 24px;
float: left;
}
В первую очередь задали цвет шрифта color: #FFFFFF; отступы от текста внутри контейнера padding: 10px; размер шрифта font-size: 24px; и выравнивание в лево. Так же в данном контейнере присутствует тег которому, так же отдельно прописали параметры:
h1 {
margin: 0px;
padding: 0px;
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size: 50px;
font-weight: bold;
color: #FFFFFF;
}
Первым делом мы убрали все возможные отступы margin: 0px; padding: 0px; далее задали шрифт font-family:Verdana, Arial, Helvetica, sans-serif; размер шрифта font-size: 50px; вес шрифта font-weight: bold; и цвет color: #FFFFFF; вот и все. Остался последний третий бокс который мы выравниваем в право, так же параметром float для того чтобы как и в прошлый раз он был на одной строчке и вставляем второй рисунок. Если у вас возникли затруднения с понятием свойств параметра float советую прочитать урок «CSS позиционирование основные моменты» и вам все станет ясно. На этом наша верхушка закончена, остался блок ссылок:
НовостиКрючкиУдочкиЛескаО проекте
Итак, делаем полосу с фоном:
#links div {
padding: 5px;
text-align:center;
width: 150px;
float: left;
border-right: 1px solid #000;
}
Для красоты отображения делаем отступы в 5 пикселей по всем сторонам padding: 5px; затем выравниваем содержимое контейнеров по центру text-align:center; задаем ширину width: 150px; выравниваем сами контейнеры к левому краю, и осталось только разделить наши ссылки с помощью элементарной обводки краев контейнера справа, а именно border-right: 1px solid #000; мы задали обводку границы справа, полосой шириной в 1 пиксель, стиль solid и цвет черный.
Вот и все, вот так получилась шапка сайта с резиновой версткой, очень удобно и практично и как я надеюсь вы заметили при верстке было использовано очень мало html кода поскольку основная нагрузка ложится на CSS, что позволяет создавать более оптимизированные сайты к которым поисковые системы будут более предрасположены.
Конечно, это не единственный вариант реализации шапки сайта и в будущем я обязательно постараюсь написать еще несколько уроков на данную тему.
Дата публикации:2011-10-11