Вот и подходим к финалу наших уроков по блочной верстке сайтов. Сегодня 11.11.11 г., время публикации статьи 11:11, думаю это счастливый знак для закрытия основных, базовых уроков по верстке . Мы прошли небольшой курс, и осталось совсем немного. Сегодня мы напишем css файл для сайта, подключим его и будем радоваться полученному результату ;).Подключаем css файл до закрытия тега <head>:
<link rel="stylesheet" href="css/style.css" type="text/css" >
href=”css/style.css” – ссылка на css файл, может быть как относительный так и абсолютный url. Например, <link rel=”stylesheet” href=”http://gtalk.kz/css/style.css” type=”text/css” >, поэтому css файл можно подключать и с другого места.
Комментирование в css файле
В html коде я писал для вас комменты с помощью <!– это комментарий –> . В ccs также я буду объяснять многое через комментарии. Комментарии пишутся с помощью данной конструкции: /* это комментарий */ . (зеленым цветом написаны комментарии)
Советую разделять комментариями основные блоки стилей. Например, типографию, стиль шапки,стиль контента и т. д. Вы скоро сами поймете, что это очень удобно, в первую очередь для себя. Обычно в начале файла пишут автора и его mail либо сайт в комментариях:
/*
* автор: УтБ
* сайт: http://gtalk.kz
*/
Можете добавить это в самое начало css файла. Можете еще написать немного о себе
Пишем сss файл
ок, все запомнили?! Перейдем к написанию.
Запомните id в css определяют как #id, class как .class (точка)
Для начала сделаем сброс ccs стилей всех элементов. Делается это несколькими способами. Мы пишем так:
/* css файл #author: УтБ #site: http://gtalk.kz * ! читайте http://htmlbook.ru/css/ значения свойств. */ /*********** глобальные настройки *************/ * { /* reset - сброс */ margin: 0; /* удаляем отступы внешние*/ padding: 0; /* удаляем отступы внутренние*/ border:0 none; /* удаляем рамки*/ }
Сброс необходим, чтобы стили не перебивали друг друга. По умолчанию у них не будет отступа внешнего и внутреннего и рамок. Чтоб вы знали, сброс еще делают подключением соответствующего файла с yahoo, либо отдельным файлом, в основном, resert.css
Добавляем глобальные свойства. Применимы ко всему сайту. Если не заданы локальные свойства, то применяются глобальные свойства.
Body – задаем стиль для тела сайта:
body { /* задаем стиль телу */ font: 12px/18px Arial, Tahoma, Verdana, sans-serif; /* стиль шрифта-универсальный: размер/межстрочное расстояние и Стиль семейства по приоритетности - обязательные свойства*/ width: 100%; /* ширина тела - на всю ширину*/ height: 100%;/* высота тела - на всю высоту*/ background:#fff; /*фон белый - можно и не писать, но лучше перестраховаться*/ }
Теперь стиль для абзаца, ссылок:
p { /*стиль абзаца*/ color:#b8b8b8; /* цвет текста в абзацах*/ margin: 0 0 10px 0; /*внешний отступ: сверху справа снизу слева (по часовой стелке,обычно задается только снизу)*/ line-height: 2em; /* межстрочный интервал */ font-size: 15px ;/* размер шрифта */ } a { /* ссылки */ color:#8c6641; font-weight: bold; /* жирность букв: полужирный */ text-decoration: none; /* подчеркивание: нет */ outline: none; /*точечная рамка вокруг ссылок при нажатии: нет*/ } a:hover {/* ссылки при наведении курсором */ color: black; }
По сути можно задать стиль и многим другим основным элементам: спискам, кнопкам и т . д. Но я обычно пишу отдельный блок в файле как типография, либо подключаю файл typografy.css . Думаю, это тема для отдельного поста, пока нам надо понять суть
Теперь давайте объяснимся зачем нам нужна была оболочка warp. Добавим ей стиль:
#wrap { /* оболочка сайта, куда мы все помещаем */ margin: 20px auto; /* внешний отступ: сверху/снизу справа/слева; auto устанавливает блок по центру*/ background: url("../images/bg.jpg") repeat-x #fff; /*Фон: ссылка на картинку повторение по горизонтали цвет белый(т.к. картинка у нас не везде, где ее нет - белый цвет)*/ width: 947px; /* ширина оболочки (сайта)*/ position: relative;/* позиция: относительно исходного места */ min-height: 100%; /*мнимальная высота: на высоту экрана (в ie 6 не работает)*/ border: 8px solid #ccc; /*рамка: ширина в пикселях сплошная(solid) #цвет*/ /* не проходят валидацию в ccs 2, закругления с помощью css 3. Тема для отдельного поста ;)*/ border-radius: 7px; /* закругления - общее*/ -webkit-border-radius: 7px; /*для Chrome и Safari */ -moz-border-radius: 7px;/*для ff */ -khtml-border-radius:7px; /*для Konqueror*/ }
В нашу оболочку мы центрировали, добавили фон для сайта и т. д. Для сложных фонов можно делать несколько логических вложений таких оболочек.
Дальше все просто, читайте комментарии либо задавайте вопросы в комментариях;) В общем не сложно если подучить каскадные таблицы стилей.
Стиль для шапки сайта:
/*********** шапка сайта *************/ div#header { /* шапка сайта*/ width:100%; height: 200px; } div#header a.logo { /* логотип можно записать просто как .logo*/ background: url("../images/logo.png") no-repeat; height: 37px; float: left; /*обтекание: слева*/ width:310px; margin: 30px; } ul.menu { /* маркированный список - меню в шапке */ list-style: none; /*стиль для списка: нет (убираем квадратики, круглики)*/ padding: 20px 30px 0 0;/*внутренний отступ: сверху справа снизу слева*/ float: right; /*обтекание: справа*/ } ul.menu li { /*элемент маркированного списка*/ float: left; width:auto; } ul.menu li a {/* ссылки маркированного списка */ padding: 10px 20px; text-decoration: none; color:#b8b8b8; font-weight: normal; font-size: 14px; } ul.menu li a:hover { /*псевдокласс hover - при на ведении курсора на ссылку ненумерованного списка*/ color:#8a6540; } .text {/* блок с текстом в шапке */ float: left; width: auto; border-top:1px #eee solid;/* рамка сверху */ border-bottom:1px #eee solid;/* рамка снизу */ padding: 20px 0px; margin: 0px 30px; }
Стиль для центральной части сайта:
div#middle {/* центарльный блок*/ width: 100%; padding: 0 0 85px; position: relative; } #middle:after {/*отступ для центрального блока - уберите его и помотрите результат, думаю станет ясно для чего он нужен*/ content: '.'; display: block; clear: both; visibility: hidden; height: 0; } div#content {/* центральный блок с текстом*/ float: left; padding: 20px 0 10px 10px; width: 634px;/*зададим ширину чтоб не скакало ничего*/ } .block {/* блок с картинкой и текстом*/ float:left; /*обтекание слева*/ margin-left: 15px; width: 300px;/* ширина в 300px чтоб вместилось 2 блока*/ } .block img {/* стиль для картинке в блоке */ border: 1px solid #ccc; padding: 5px; margin-left: 5px; } .block h2 { /* свой стиль заголовка, перекрывает глобальные настройки*/ color:#939393; font-size:16px; padding: 5px; } button, .button { /* стиль для зеленых кнопок*/ float:right; width:96px; height: 26px; padding-top: 6px; /* стиль для зеленых кнопок*/ text-align: center; /* выравнивание текста: по центру*/ color:#fff; margin-right: 10px; background:url("../images/button.png") no-repeat; }
Стиль для sidebar:
/******* sidebar *******/ div#sidebar {/* стиль для сайдбара */ float: right; padding: 20px 10px 10px 0; width: 290px; color:#939393; } .twitter {/* блок для твиттов */ background:url("../images/twitter.png") no-repeat ; height:150px; width:257px; } .twitter p { /* текст твиттов*/ width:225px; /*ширина фиксированная чтобы текст не выходил за рамки*/ padding: 10px; font-size: 12px; } .twitter span { padding: 5px; float: right; width:100%; text-align: right; } ul.navigation {/* меню сайдбара - маркивованный список*/ list-style:none; padding:5px; } div#sidebar h3 {/* стиль для заголовка h3*/ color:#404040; font-weight: normal; padding: 10px 5px; } ul.navigation li { width:257px; height:30px; margin-bottom: -1px; border-bottom:1px solid #ccc; border-top:1px solid #ccc; } ul.navigation li:hover {/* меняем цвет элемента маркированного списка при на ведении курсора*/ background: #f9f9f9; } ul.navigation li a { text-decoration: none; padding: 0px 10px; color:#939393; font-size:12px; font-weight: normal; } ul.navigation li a:hover {/* меняем цвет фона ссылки маркированного списка при на ведении курсора*/ background: #f9f9f9; } .contacts {/* блок контактов */ padding: 5px; } .contacts p { line-height:1.5em; }
Стиль для футера:
div#footer {/* подвал сайта */ border-top: 1px solid #CCCCCC; position: absolute; /*позиция блока: абсолютная*/ bottom: 0; /*прижимаем footer к нижней части браузера*/ height: 85px; margin: 0 30px; width: 875px; } p.copyright {/* текст копирайта */ float: left; width:50%; padding-top: 25px; font-size: 12px; } .fb, .tw {/* блоки для иконок */ float:right; width:200px; padding-top: 10px; } .fb img, .tw img { float:left; width:40px; padding-right: 5px; } .fb p, .tw p { padding-top: 10px; }
Поздравляю!У вас все получилось! Можете взглянуть на конечный результат.
Демо верстка
Уважаемые пользователи! надеюсь Вам понравились мои уроки Сегодня у меня появились мысли насчет продолжения. Будем продолжать углублять свои знания по верстки сайта. Если Вам это интересно отпишитесь в комментариях, либо напишите мне какие темы будут интересны, и вы хотите их увидеть на блоге.
c/у УтБ
На десерт сегодня еще фото и картинки любимого браузера
Также можете почитать Если бы девушки были браузерами
незабываем для
.header:after {
content: ”;
clear: both;
display: block;
visibility: hidden;
}
иначе меню вверху не будет работать
В начале статьи, ошибка в слове “раДоваться”.
спасибо, поправил
Когда пробисую
div#middle {/* центарльный блок*/
width: 100%;
padding: 0 0 85px;
position: relative;
}
свойство
position: relative;
замораживает всю страницу
что делать?
что значит “замораживает всю страницу” ?
Нашел! В общем у вас там иногда перепутаны классы с ид. В хтмл написано класс, а в стиле ид (#) или наоборот из за этого столько косяков!
:)спс я гляну
Футер должен быть прижат к полу, но он почему то сразу после контента идет выше сайдбара. В свойствах у него стоит боттом 0. НЕ могу понять что там не так.
Сейчас вот опять косяк – почему то сайдбар у меня находится не справа, а справа внизу и картинки в контенте идут не 2 вверху две внизу, а 3 подряд и одна внизу справа. То есть они заехали на сайдбар и не могу найти ошибку что то. Буду искать.
С помощью файрбага я нашел в вашем коде в CSS вот эту строчку (#header h1 {
visibility: hidden;) она означает, что все надписи H1 в хидере будут скрыты, а у вас это не написано в тексте
когда люди ищут сами лучше запоминают)
А лучше скачать уже готовый конечный шаблон, и сравнивать со своим
Да я ставил шаблон, но хотел там цвет сменить не получалось и запутался. Мне посоветовали свой создать так как в своем коде легче разбираться. И нужен был пример создания во ту Вас как раз такой вариант.
У меня почему то надпись “Моя Первая верстка” (div#header a.logo) никуда не исчезла. Не могу найти что не так сделал??? Или дело в прозрачности картинки??? Которую замостили по горизонтали она закрывает текст у Вас, а у меня не закрывает почему то.
Зеленые кнопки и соцсети в футере меняются местами(первый элемент отображается справа, а второй слева). Как это можно исправить?
скорее всего дело в свойстве
float
измените его
Разве не лучше использовать не точно заданную ширину текста, а текст в 100% и прочее, чтобы можно в браузере было машстабировать его плохо видящим людям? Например, так оформлено в яндексе, если я не путаю.
Как вы узнали, какие везде нужны отступы, какой размер текста и цвет? Совсем не понятно, а ведь это очень важно. Вот я смотрю на картинку в фотошопе и даже не представляю, как узнать какого размера должен быть блок, какого отступ…
Хорошие вопросы.Учту их. Спасибо.
может я не совсем поняла вопрос, но ведь для этого в фотошопе есть линейка и пипетка…
не подскажете как убрать нижний белый фон? я поменял бекфон на свою картинку а снизу громадный белый отступ не исчез((
l2arts.ru спасибо заранее за ответ
он и не исчезнет картинка не повторяется по вертикали, поэтому ее нет в нижней части сайта. добавьте repeat-y к background
Поставил fixed top center no-repeat
Ибо мне нужно чтобы картинка была всегда статична по центру и никуда не девалась….только контент перемещался… но белый фон снизу сантиметров в 10 не знаю как убрать((
#zt-mainframe {
background: url("../images/bg-main.png") no-repeat scroll center top transparent;
min-height: 1400px;
}
.zt-wrapper {
margin: -200px auto 0;
width: 960px;
}
так норм?
{jntkjcm бы 6 урока и ссылочку тут на него! есть много неясного-вот зайдите на мой сайт-так при изменении масштаба всё разхожится и съезжает.
обязательно продолжение будет, подписывайтесь
А как сделать выравнивание по центру всего блога? Вот на сайте вконтакте при разрешении 800×600 – на целый экран, а 1024×768 – не на целый, но справа и слева одинаковые отступы. Если задаю для body,html text-align:center или для div – то текст по центру, но все блоки всё-равно слева. а нужно сами блоки отцентровать.
читайте внимательно: выравнивание по центру сайта wrap {margin:0 auto;}, т.е. отступы справа и слева одинаковые;) советую добавить оболочку, например wrap.
text-aling:center выравнивает текст по центру.
UPD: посмотрел Ваш сайт понял в чем дело))
<body id=top>
<div class=”wrap” >
бла бла бла
</div >
</body>
css: .wrap {width:920px;min-width:760px;margin:0 auto;padding:0;}
и можете убрать в шапке и в других местах ширину
Вроде разобралась, тем более, что этот язык очень на С++ похож, а его я знаю неплохо. Спасибо за урок. Жду следующего.
по сути урока 6го не будет:) но логические продолжения обязательно: поговорим о кроссбраузерности, хаках и т. д.;)
Спасибо за уроки. Они мне помогли разобраться в некоторых моментах. И меня к Вам вопрос, вы используете css фреймворки, например blueprint? Хотелось бы услышать ваше мнение. Спасибо.
css фреймворки интересный момент, почти не использую, так как не приходится по работе))
а лично мое мнение то, такие фреймворки полезны, все зависит от вашей цели.хотелось бы с ними работать больше, но …