Блог

  • HTML урок 11. Адаптивная верстка

    Адаптивный веб-дизайн

    «Адаптивный веб-дизайн (англ. Responsive web design) — дизайн веб-страниц, обеспечивающий отличное отображение сайта на различных устройствах, подключённых к интернету.»

    Зачем нужен адаптивный веб-дизайн?

    1) Большое разнообразие устройств, с которых можно выходить в Интернет. В настоящее время существует множество устройств, которыми люди пользуются, в том числе, и для того, чтобы выходить в Интернет. Все эти устройства различаются размером экрана, разрешением и, соответственно, тем, как может отображаться на них веб-сайт. Поэтому важно, чтобы ваш сайт хорошо смотрелся и правильно отображался у любого из пользователей, независимо от того, какое устройство он использует.
    2) Популярность мобильных устройств с выходом в Интернет и увеличение мобильного Интернет-трафика. С ростом популярности мобильных устройств количества пользователей, которые заходят с них на сайты, заметно увеличилось, поэтому просто игнорировать их уже нельзя – это не один-два человека в полгода, это значительная часть вашей аудитории, и им должно быть удобно пользоваться вашим сайтом (иначе они не будут этого делать).
    3) Срочная информация. Если ваш ресурс содержит новостную / срочную информацию, и высока вероятность, что пользователю может понадобится прочитать эту информацию именно с телефона (потому что других устройств у него под рукой нет) в данный момент времени, нужно позаботиться о том, чтобы у него была возможность это сделать.

    Это значит, что один и тот же сайт можно просматривать на самых разных устройствах, независимо от разрешения и формата экрана, – смартфонах, планшетах, ноутбуках и т.д. При этом просмотр будет одинаково удобен для всех форматов – пользователям мобильных устройств, например, не нужно будет расширять отдельные области сайта, чтобы не промахнуться мимо нужной ссылки.
    Адаптивный дизайн призван сделать веб-страницы и отображение их содержимого соответствующими тому устройству, с которого они просматриваются.

    Отличие адаптивного сайта от мобильной версии (приложения) сайта

    Мобильные версии сайтов и мобильные приложения, специально разработанные для различных мобильных устройств, также решают проблему с удобством просмотра сайта, но имеют некоторые недостатки.
    1) Под каждый тип операционной системы нужно свое приложение / версия сайта. Это требует дополнительных ресурсов, как временных, так и денежных.
    2) Необходимость загрузки приложения. Для того, чтобы пользоваться вашим приложением, пользователям необходимо его загрузить. Это требует каких-то дополнительных усилий от пользователей, и многие не будут этого делать, если точно не уверены, что приложение им очень нужно и они планируют регулярно его использовать.
    3) Разделение траффика. С точки зрения продвижения сайта мобильное приложение не удобно тем, что разделяет весь траффик ресурса на траффик сайта и траффик приложения, что будет выглядеть, как меньшая посещаемость сайта.
    4) Необходимость интеграции материалов сайта. В случае с мобильным приложением необходимо либо синхронизировать сайт с приложением (дополнительные ресурсы), либо делать двойную работу по наполнению сайта и приложения материалами.
    В отличие от мобильных приложений, адаптивный дизайн – это один адрес сайта, один дизайн, одна система управления и содержание сайта.
    Безусловно, адаптивный дизайн также имеет свои минусы, главным из которых является относительная новизна технологии и, как следствие, недостаток хороших специалистов и знаний о проектировании адаптивных сайтов.

    Принципы адаптивного дизайна

    Проектирование начинается с адаптивной версии веб-сайта для мобильных устройств. На этом этапе дизайнеры стремятся правильно передать смысл и основные идеи с использованием небольшого экрана и всего одной колонки. Содержимое при необходимости сокращают, удаляя второстепенные информационные блоки и оставляя самое важное.
    • Проектирование для мобильных устройств с самых ранних этапов («mobile first»);
    • Применение гибкого макета на основе сетки (flexible, grid-based layout);
    • Использование гибких изображений (flexible images);
    • Работа с медиазапросами (media queries);
    • Применение постепенного улучшения.

    Типы адаптивных макетов

    1) Резиновый
    Простой в реализации и очевидный для пользователя тип представления сайта. Основные блоки сжимаются до ширины экрана мобильного устройства, где такое невозможно — перестраиваются в одну длинную ленту.

    Untitled-63

    2) Перенос блоков
    Очевидный способ для многоколоночного сайта: при уменьшении ширины экрана дополнительные блоки (сайдбары) переносятся в нижнюю часть макета.

    Untitled-64

    3) Переключение макетов
    Этот способ наиболее удобен при чтении сайта с различных устройств: под каждое разрешение экрана разрабатывается отдельный макет. Способ трудоемок, поэтому менее популярен, чем предыдущие два.

    Untitled-65

    4) Адаптивность «малой кровью»
    Очень простой способ, который подходит для несложных сайтов. Достигается элементарным масштабированием изображений и типографики. Не очень популярен, т.к. не обладает гибкостью.

    Untitled-66

    5) Панели
    Способ, пришедший из мобильных приложений, где дополнительное меню может появляться при горизонтальном или вертикальном тапе. Главный недостаток — неочевидность действий для пользователя: очень непривычно видеть мобильную навигацию на веб-сайта. Но со временем способ может стать достаточно популярным.

    Untitled-67

    Нужно помнить, что представленные выше макеты не являются универсальными решениями — для каждого проекта необходимо выбирать наиболее подходящий под нужды и возможности способ.

    Благодаря адаптивной верстке сайт будет качественно и удобно отображаться на разных устройствах, таких как:

    • персональные компьютеры
    • ноутбуки
    • планшеты
    • смартфоны и других.

    С каждым днем адаптивная верстка становится все популярней. Адаптивных сайтов появляется все больше и больше.

    Нам нравится работать с данными. Мы уделяем много времени изучению аналитической информации о наших веб-сайтах. Любой веб-разработчик, которому это тоже интересно, наверняка заметил, насколько увеличился в последнее время объем трафика с мобильных устройств. За последний год значительно вырос процент просмотров страниц наших основных сайтов со смартфонов и планшетных ПК. Это значит, что все больше посетителей используют устройства с современными браузерами, поддерживающими последние версии HTML, CSS и JavaScript. Однако ширина экранов таких устройств обычно ограничена 320 пикселями.

    Мы стремимся повысить доступность наших продуктов, то есть предоставить всем пользователям оптимальные возможности для работы с ними. Перед нами стояла дилемма: создать специальные мобильные версии сайтов или адаптировать существующие сайты и новые проекты для просмотра как на настольных компьютерах, так и на мобильных устройствах. Создание двух версий сайта позволило бы нам оптимизировать каждую из них для конкретного оборудования, но использование одного общего сайта дает возможность сохранить канонический URL. При этом исключаются сложные переадресации и упрощается совместное использование веб-адресов. Удобство обслуживания является важным фактором, поэтому мы решили не создавать разные версии страниц, а начали обдумывать, как обеспечить выполнение следующих условий:

    1. четкое отображение страниц на экране с любым разрешением;
    2. возможность просмотра группы контента на любом устройстве;
    3. отсутствие горизонтальной полосы прокрутки независимо от размера окна.


    Адаптивный дизайн на странице Chromebooks
    Изменяется расположение контента, навигация и масштаб изображений – Хромбуки

    Реализация

    Начнем с того, что семантическая разметка содержания упрощает перекомпоновку страниц в случае необходимости. С помощью таблицы стилей мы создали резиновый макет. Это первый шаг на пути к достижению нашей цели. Вместо атрибута width для контейнеров мы стали указывать max-width. Атрибут height был заменен атрибутом min-height, чтобы крупный шрифт или многострочный текст не нарушал границы контейнера. Чтобы картинки с фиксированной шириной не ломали резиновые столбцы, применяется следующее правило CSS:

    img{ max-width: 100%; }

    Резиновый макет – хорошая идея, но использование такой компоновки накладывает некоторые ограничения. К счастью,медиа-запросы теперь поддерживаются всеми современными браузерами, в том числе IE9+ и браузерами основной части мобильных устройств. Это позволяет создавать сайты, качество отображения которых в мобильных браузерах не снижается, поскольку они оптимизируются под тот или иной интерфейс. Но сначала необходимо определить, какие особенности смартфонов должны учитываться веб-серверами.

    Области просмотра

    Когда пиксель не является пикселем? В том случае, если речь идет о смартфоне. Обычно браузеры смартфонов имитируют браузеры настольных компьютеров с высоким разрешением, поэтому страницы отображаются в них, как на экране монитора. Вот почему появился «режим обзора» с мелким текстом, который невозможно прочитать без увеличения.Ширина области просмотра по умолчанию в стандартных браузерах Android составляет 800 пикселей, а в браузерах iOS – 980 пикселей, независимо от фактического количества физических пикселей на экране.

    Чтобы переключить браузер в более удобный для чтения режим, необходимо использовать метаэлемент viewport:

    <metaname="viewport" content="width=device-width, initial-scale=1">

    Существует множество вариантов разрешения экранов мобильных устройств, но стандартное значение device-width, сообщаемое браузерами, обычно составляет около 320 пикселей. Если ширина экрана вашего мобильного устройства равна 640 физическим пикселям, изображение шириной 320 пикселей будет масштабировано на всю ширину экрана, и в обработке будет использоваться в два раза больше пикселей. Таким образом, вдвое большая плотность пикселей обеспечивает более четкое отображение на небольшом экране по сравнению с экраном настольного компьютера.

    Важно, что если в качестве значения элемента width в метатеге viewport указывается device-width, это значение обновляется, если пользователь меняет ориентацию экрана смартфона или планшета. В сочетании с медиа-запросами эта функция позволяет изменять макет страницы при повороте устройства:

    @media screen and (min-width:480px) and (max-width:800px) { /* Target landscape smartphones, portrait tablets, narrow desktops */ } @media screen and (max-width:479px) { /* Target portrait smartphones */ }

    В зависимости от того, как функционирует и выглядит ваш сайт на экранах различных устройств, может потребоваться использовать разные контрольные точки. Вы можете также использовать медиа-запрос для выбора определенной ориентации без учета соотношения размеров в пикселях, если эта функция поддерживается.

    @media all and (orientation: landscape) { /* Target device in landscape mode */ } @media all and (orientation: portrait) { /* Target device in portrait mode */ }

    Адаптивный дизайн на странице Института культуры Google

    Изменяется расположение контента и масштаб изображений – Институт культуры

    Пример использования медиа-запросов

    Недавно мы запустили новую версию страницы О Google. Чтобы пользователям устройств с небольшими экранами, такими как планшеты и смартфоны, было удобнее работать с этой страницей, кроме резинового макета мы добавили в ее код несколько медиа-запросов.

    Вместо того чтобы нацеливаться на конкретные разрешения экранов, мы задали относительно широкий набор контрольных точек. Если разрешение экрана составляет более 1024 пикселей, страница отображается в своем первоначальном виде на сетке из 12 столбцов. Если оно составляет от 801 до 1024 пикселей, благодаря резиновому макету отображается слегка сжатая версия страницы.

    Только при разрешении экрана менее 800 пикселей неосновной контент будет отображаться в нижней части страницы:

    @media screen and (max-width: 800px) { /* specific CSS */ }

    Последний медиа-запрос предназначен для смартфонов:

    @media screen and (max-width: 479px) { /* specific CSS */ }

    С этого момента прекращается загрузка больших изображений; блоки контента размещаются один над другим. Мы также добавили дополнительные пробелы между элементами контента, чтобы более четко разграничить разделы.

    Эти простые приемы позволили оптимизировать сайт для просмотра на самых разных типах устройств.
    Адаптивный дизайн на странице о Google
    Изменяется расположение контента, удалено большое изображение – О Google

    Заключение

    Важно понимать, что не существует простого решения, которое бы позволило сделать сайты удобными для просмотра на мобильных устройствах и устройствах с узкими экранами. Резиновые макеты хороши в качестве отправной точки, но их использование накладывает некоторые ограничения. Медиа-запросы также помогают оптимизировать сайты, но не следует забывать, что в 25% случаев при посещении сайтов используются компьютерные браузеры, которые еще не поддерживают данную технологию. Наличие таких запросов влияет на эффективность их работы. А если на сайте есть виджет, с которым удобно работать с помощью мыши, вовсе не факт, что он будет столь же удобен на сенсорном экране, где сложнее выполнять точные действия.

    Крайне важно начинать тестирование на ранних этапах разработки и не прекращать его в дальнейшем. Просматривая свои сайты на смартфоне или планшете, вы не тратите время впустую. Если у вас нет возможности протестировать сайт на реальных устройствах, используйте Android SDK или iOS Simulator. Попросите знакомых и коллег зайти на сайт со своих устройств и понаблюдайте за его работой.

    Оптимизация сайта для мобильных устройств позволит привлечь на него еще больше посетителей. Кроме того, изучение и разработка наилучших методов такой оптимизации открывает новые возможности для профессионального развития.

     

    Как решить проблему? Media Queries!

    Данную проблему можно решить благодаря новой возможности CSS: media queries.
    С их помощью мы можем отслеживать разрешение экрана пользователя и отображать необходимые стили для каждого разрешения или устройства.
    Рассмотрим пример:

    @media screen and (max-width: 960px) {
        .class {
            background: red;
        }
    }
    

    В результате, если у пользователя экран меньше или равен 960 пикселей, то задний фон для класса .class будет красным.
    Таким образом мы может подстраивать наши стили под каждый экран в отдельности.

    Условия для Media Queries

    Условия можно задать следующие условия:

    @media screen and (max-width: XXXpx) { }
    @media screen and (min-width: XXXpx) { }
    @media screen and (min-width: XXXpx) and (max-width: YYYpx) { }
    @media screen and (max-device-width: XXXpx) { }
    

    Способы подключения CSS-таблиц

    Так же можно добавлять условия, для каких экранов будет подключаться та или иная таблица стилей:

    <link rel="stylesheet" media="screen and (max-width: 960px)" href="big.css" />
    <link rel="stylesheet" media="screen and (min-width: 480px)" href="small.css" />
     
    <!-- для iPhone 4 -->
    <link rel="stylesheet" media="only screen and (-webkit-min-device-pixel-ratio: 2)" type="text/css" href="iphone4.css" />
     
    <!-- для iPad portrait and landscape -->
    <link rel="stylesheet" media="all and (orientation:portrait)" href="portrait.css"> 
    <link rel="stylesheet" media="all and (orientation:landscape)" href="landscape.css">
    

    Медиа-запросы

    Синтаксис
    Все запросы начинаются с правила @media, после чего следует условие, в котором используются типы носителей, логические операторы и медиа-функции. Типы носителей перечислены в табл. 1.

    Типы носителей и их описание

    all — Все типы. Это значение используется по умолчанию.
    braille — Устройства, основанные на системе Брайля, которые предназначены для чтения слепыми людьми.
    embossed — Принтеры, использующие для печати систему Брайля.
    handheld — Смартфоны и аналогичные им аппараты.
    print — Принтеры и другие печатающие устройства.
    projection — Проекторы.
    screen — Экран монитора.
    speech — Речевые синтезаторы, а также программы для воспроизведения текста вслух. Сюда, например, можно отнести речевые браузеры.
    tty — Устройства с фиксированным размером символов (телетайпы, терминалы, устройства с ограничениями дисплея).
    tv — Телевизоры.

    Логические операторы, применяемые в медиа-запросах

    and
    Логическое И. Указывается для объединения нескольких условий.
    Пример. Стиль для всех цветных устройств

    @media all and (color) { ... }

    not
    Логическое НЕ. Указывается для отрицания условия.
    Пример. Стиль для всех устройств кроме смартфонов

    @media all and (not handheld) { ... }

    Оператор not имеет низкий приоритет и оценивается в запросе последним, поэтому выражение

    @media not all and (color) { ... }

    следует понимать как

    @media not (all and (color)) { ... }

    а не

    @media (not all) and (color) { ... }

    Медиа-функции

    Медиа-функции задают технические характеристики устройства, на котором отображается документ. Стиль выполняется в том случае, если запрос возвращает истину, иными словами, указанные условия выполняются.

    Большинство функций содержат приставку min- и max-, которая соответствуют минимальному и максимальному значению. Так, max-width: 400px означает, что ширина окна браузера меньше 400 пикселов, а min-width: 1000px, наоборот, сообщает, что ширина окна больше 1000 пикселов.

    aspect-ratio (min-aspect-ratio, max-aspect-ratio)
    Тип носителя: handheld, print, projection, screen, tty, tv
    Значение: целое число/целое число
    Определяет соотношение ширины и высоты отображаемой области устройства. Значение указывается в виде двух целых чисел разделяемых между собой слэшем (/).

    color (min-color, max-color)
    Тип носителя: handheld, print, projection, screen, tty, tv
    Значение: целое число
    Определяет число бит на канал цвета. К примеру, значение 3 означает, что красный, зелёный и синий канал могут отображать 23 цветов каждый, что в общем составляет 512 цветов (8×8×8). Если значение не указано, тогда проверяется что устройство цветное. В примере 1 показана такая проверка.
    Пример 1. Стиль для цветных устройств

    @media screen and (color) { /* Для цветных экранов */
    body { background: #fc0; }
    }
    @media screen and (min-color:3) { /* Минимум 512 цветов */
    body { background: #ccc; }
    }

    color-index (min-color-index, max-color-index)
    Тип носителя: handheld, print, projection, screen, tty, tv
    Значение: целое число
    Определяет количество цветов, которое поддерживает устройство. В примере 2 показан стиль для экранов отображающих не меньше 256 цветов.
    Пример 2. Цветной дисплей

    @media all and (min-color-index: 256) {...}

    device-aspect-ratio (min-device-aspect-ratio, max-device-aspect-ratio)
    Тип носителя: handheld, print, projection, screen, tty, tv
    Значение: целое число/целое число
    Определяет соотношение сторон экрана устройства. Значение указывается в виде двух целых чисел разделяемых между собой слэшем (/). В примере 3 показано, как установить стиль для экранов с соотношением сторон 16:9 и более.
    Пример 3. «Киношное» соотношение

    @media screen and (min-device-aspect-ratio: 16/9) {...}

    device-height (min-device-height, max-device-height)
    Тип носителя: все кроме speech
    Значение: размер
    Определяет всю доступную высоту экрана устройства или печатной страницы.

    device-width (min-device-width, max-device-width)
    Тип носителя: все кроме speech
    Значение: размер
    Определяет всю доступную ширину экрана устройства или печатной страницы. В примере 4 в зависимости от разрешения монитора устанавливается ширина слоя. Так, для значения 1280 пикселов ширина макета задаётся как 1100px.
    Пример 4. Ширина макета

    HTML5CSS3IECrOpSaFx
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Ширина макета</title>
    <style>
    div {
    padding: 10px;
    background: #e8bfad;
    margin: auto;
    }
    @media screen and (min-device-width: 1600px) {
    div {width: 1500px;}
    }
    @media screen and (device-width: 1280px) {
    div {width: 1100px;}
    }
    @media screen and (device-width: 1024px) {
    div {width: 980px;}
    }
    </style>
    </head>
    <body>
    <div>
    Диабаз, формируя аномальные геохимические ряды, сменяет известняк, 
    образуя на границе с Западно-Карельским поднятием своеобразную систему грабенов.
    </div>
    </body>
    </html>

    grid
    Тип носителя: all
    Значение: нет
    Определяет, что это устройство с фиксированным размером символов. Размеры букв на таком устройстве занимают одинаковую ширину и высоту и выстраиваются по заданной сетке. К подобным устройствам можно отнести терминалы, а также телефоны, которые поддерживают только один шрифт.
    Если вам требуется форматировать текст, не указывайте его размер в пикселах, для подобных устройств используется единица em (пример 5).
    Пример 5. Размер букв

    HTML5CSS3IECrOpSaFx
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Стиль для бабушкофона</title>
    <style>
    @media handheld and (grid) and (max-width: 15em) {
    body { font-size: 2em; }
    }
    </style>
    </head>
    <body>
    <p>Привет! Как дела? Как сажа бела?</p>
    </body>
    </html>

    height (min-height, max-height)
    Тип носителя: все кроме speech
    Значение: размер
    Высота отображаемой области.
    monochrome (min-monochrome, max-monochrome)
    Тип носителя: handheld, print, projection, screen, tty, tv
    Значение: целое число
    Определяет, что устройство монохромное. Если указано число, то оно обозначает число бит на пиксел. Так, значение 8 равнозначно 256 оттенкам серого (или другого цвета). В примере 6 показан стиль для монохромного и цветного принтера.
    Пример 6. Стиль для принтера

    @media print and (monochrome) { 
    body { font-family: Times, 'Times New Roman', serif; }
    h1, h2, p { color: black; }
    }
    @media print and (color) { 
    body { font-family: Arial, Verdana, sans-serif; }
    h1, h2, p { color: #556b2f; }
    }

    orientation
    Тип носителя: handheld, print, projection, screen, tty, tv
    Значение: landscape | portrait
    Определяет, что устройство находится в альбомном режиме (ширина больше высоты) или портретном (ширина меньше высоты).
    В примере 7 устанавливается разная фоновая картинка в случае альбомной (landscape) или портретной ориентации (portrait).
    Пример 7. Использование ориентации устройства

    @media screen and (orientation: landscape) { 
    #logo { background: url(logo1.png) no-repeat; }
    }
    @media screen and (orientation: portrait) { 
    #logo { background: url(logo2.png) no-repeat; }
    }

    resolution (min-resolution, max-resolution)
    Тип носителя: handheld, print, projection, screen, tv
    Значение: разрешение в dpi (точек на дюйм) или dpcm (точек на сантиметр)
    Определяет разрешение устройства, например, принтера. В примере 8 стиль будет работать для принтера с минимальным разрешением 300 точек на дюйм.
    Пример 8. Разрешение принтера

    @media print and (min-resolution: 300dpi) {...}

    scan
    Тип носителя: tv
    Значение: interlace | progressive
    Определяет тип развертки телевизора — череcстрочная (interlace) или прогрессивная (progressive). При чересстрочной развёртке телевизор вначале показывает нечётные строки кадра, затем чётные, что позволяет сократить передаваемые данные. В прогрессивной развёртке кадр передаётся и показывается целиком.

    width (min-width, max-width)
    Тип носителя: все кроме speech
    Значение: размер
    Описывает ширину отображаемой области. Это может быть окно браузера или печатная страница. В примере 9 при уменьшении окна до 600 пикселов и меньше меняется цвет фона веб-страницы.
    Пример 9. Использование max-width

    HTML5CSS3IECrOpSaFx
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Ширина страницы</title>
    <style>
    body { background: #f0f0f0; }
    @media screen and (max-width: 600px) {
    body { background: #fc0; }
    }
    </style>
    </head>
    <body>
    <p>Пока магма остается в камере, мусковит сингонально поднимает шток,
    в то время как значения максимумов изменяются в широких пределах. </p>
    </body>

     

  • Задание по HTML к десятому уроку

    Задание к двенадцатому уроку

    Задание 1

    В блоке сайдбар создайте выпадающий список используя свойства display,position, Псевдоклассы :first-child  :last-child, псевдоэлементы ::before  и ::after. Пример страницы урок 10

    Код html

    <div class="sidebar">
        <ul class="ms">
          <li class="mslist"><a href="">Заголовок</a>
            <ul class="msdrop">
              <li><a href="">Подзаголовок</a></li>
              <li><a href="">Подзаголовок</a></li>
              <li><a href="">Подзаголовок</a></li>
              <li><a href="">Подзаголовок</a></li>
              <li><a href="">Подзаголовок</a></li>
            </ul>
          
          </li>
          <li><a href="">Заголовок</a></li>
          <li class="mslist"><a href="">Заголовок</a>
            <ul class="msdrop">
              <li><a href="">Подзаголовок</a></li>
              <li><a href="">Подзаголовок</a></li>
              <li><a href="">Подзаголовок</a></li>
              <li><a href="">Подзаголовок</a></li>
              <li><a href="">Подзаголовок</a></li>
            </ul>
          </li>
          <li><a href="">Заголовок</a></li>
          <li class="mslist"><a href="">Заголовок</a>
            <ul class="msdrop">
              <li><a href="">Подзаголовок</a></li>
              <li><a href="">Подзаголовок</a></li>
              <li><a href="">Подзаголовок</a></li>
              <li><a href="">Подзаголовок</a></li>
              <li><a href="">Подзаголовок</a></li>
            </ul>
          </li>
        </ul>
      
      </div>

    CSS код

    .ms li{
       list-style:none;
     }
    .ms a{
       padding:10px;
       color:#fff;
       background:#555;
       display:block;
       text-decoration:none;
       transition:0.5s;
       border-top:1px #999 solid;
       border-bottom:1px #999 solid;
       
     }
    .ms a:hover{
      background:#888;
      padding:10px 0 10px 20px;
    } 
    
    .mslist{
      position:relative;
      transition:0.5s;
    }
    .mslist::after{
      content:"";
      position:absolute;
      border-left:8px #fff solid;
      border-bottom:4px transparent solid;
      border-top:4px transparent solid;
      right:10px;
      top:17px;
      transition:0.5s;
    }
    .mslist:hover::after{
      transform:rotate(180deg);
    }
    .msdrop{
      position:absolute;
      left:100%;
      top:0;
      width:100%;
      display:none;
    }
    .mslist:hover .msdrop{
      display:block;
    }

    Задание 2

    1. создать на странице istoriya.html вертикальное меню .
    2. заменить первый параграф на список
    3. Скрыть часть параграфов используя свойства display:none и visibility:hidden
    1. Создадим блок для меню:
    <div id="menu">
    
                <a href="gorodmoy.html">Главная</a>
                <a href="galereya.html">Галерея</a>
                <a href="gerb.html">Герб</a>
    
    </div>

    Укажем стиль для него и ссылок:

    #menu{
    
                    width:200px;
                    background:#F7FFFF;
                    margin-left: 200px;
                    float:left;
    
                }
    
    #menu a{
    
                    color:#2b3845;
                    text-decoration:none;
                    display:block;
    
                }

    Результат:

    Untitled-60

    2. Код:

    <ul class="pleft">
       <h6>Страна Казахстан </h6> 
       <h6>Статус областной центр </h6> 
       <h6>Область Карагандинская область </h6> 
       <h6>Координаты Координаты: 49°48′00″ с. ш. 73°07′00″ в. д. </h6> 
       <h6>Аким (чин) Серик Ахметов </h6> 
       <h6>Основан 1931 </h6>
       <h6>Город с 1934 </h6>
       <h6>Площадь 550 км² </h6>
       <h6>Высота центра 553 м </h6> 
       <h6>Тип климата резко-континентальный </h6>
       <h6>Население 457,800 тыс. человек (2010) </h6> 
       <h6>Плотность 846 чел./км² </h6> 
       <h6>Национальный состав казахи, русские, узбеки, украинцы </h6> 
       <h6>Конфессиональный состав мусульмане, христиане и др. </h6> 
       <h6>Часовой пояс UTC+6 </h6> 
       <h6>Телефонный код +7 7212 </h6> 
       <h6>Почтовый индекс 100000 (старый 470000) </h6> 
       <h6>10 февраля 1934 года Караганда получила статус города.
    </ul>

    Результат:

    Untitled-61

    3. Скроем 3-ий и 4-ый параграфы:

    .pright {
       text-align: right;
       line-height: 25px;
       display:none;
    }
    .pcenter {
       text-align: center;
       line-height: 10px;
       visibility:hidden;
    }

    В результате третий параграф не отображается, а вместо четвертого пустое пространство:

    Untitled-62

  • Задание по HTML к девятому уроку

    Создайте страницу контакты, и разместите на ней карту и контактную форму. Пример на сайте урок 9

  • Задание по HTML к восьмому уроку

    <html>
      <head>
        <meta charset="utf-8">
        <title>Трансформация и плавность перехода</title>
        <link rel="stylesheet" href="test.css">
      </head>
      <body>
        <div class="block">Трансформация</div>
      </body>
    </html>

    test.css

    *{
      margin:0;
      padding:0;
      box-sizing:border-box;
    }
    .block{
      width:200px;
      height:200px;
      background:#ff0;
      border-top:5px red solid;
      border-left:5px green solid;
      border-right:5px blue solid;
      border-bottom:5px orange solid;
      text-align:center;
      line-height:200px;
    }

     

    Добавьте анимацию к своей странице как на примере урок8

    Задание для восьмого урока

    1. Создать страницу istoriya.html задать для нее фон
    2. Оформить текст «история города» используя стили приведенные в уроке 8.

    — Первые четыре абзаца с выравниванием по левому краю, по правому краю, по центру и по обоим краям.
    — Добавить три заголовка используя свойста text-decoration, а также применить его в тексте.
    — Сделать чтобы все абзацы начинались с красной строки.
    — Применить в тексте свойства text-transform.
    — использовать свойсто вертикальное выравнивание.
    — изменить растояние между символами и словами для первого абзаца.
    — изменить расстояние между строками второго абзаца и третьего.
    — изменить стили шрифта и font-family для заголовков.

    1. Код страницы со стилями для фона, заголовка и ссылок:

    <html>
    <head>
    
    <title>Город мой</title>
    <meta name="keywords" content="Ключевые слова, HTML и его элементы" >
    <meta charset="utf-8">
    <meta name="description" content="Основы HTML от GoldStudio" >
    <meta name="author" content="Джон Дое" >
    <meta name="robots" content="index,follow">
    
    <style type="text/css">
    h1 {
    color:#009BF9;
    }
    html,body {
    
    background-image: url(gerb.jpg);
    background-repeat: repeat-y;
    }
    }
    a:link {
    color: #00E5FF;
    text-decoration:none;
    }
    a:visited {
    color: #009BF9;
    text-decoration:none;
    }
    a:active {
    font-style: italic;
    text-decoration:none;
    }
    a:hover {
    color:#00FBDB;
    font-style: italic;
    letter-spacing: 10px;
    font-weight:bold;
    text-decoration:none;
    }
    .divstyle
    {
    background-color: #F7FFFF;
    margin-left: 400px;
    margin-right: 400px;
    padding: 20px;
    margin-top: 10px;
    }
    .spanstyle
    {
    Color:#FFDEAD;
    }
    
    </style>
    
    </head>
    
    <body>
    
    <div class="divstyle">
    ….
    </div>
    
    </body>
    
    </html>

    2. Создадим стиль для выравнивания текста первого абзаца

    .pleft {text-align: left}

    И

    <p class="pleft">ваш текст</p>

    3. Стиль для выравнивания по правому краю

    .pright {text-align: right}

    И

    <p class="pright">ваш текст</p>

    4. Выравнивание по центру:

    .pcenter {text-align: center}

    И

    <p class="pcenter">ваш текст</p>

    5. Остальным абцам выравнивание по обоим краям

    p {text-align: justify}

    Смотрим результат:

    Untitled-49

    6. Пропишем стили и классы для заголовков:

    h1 {
    color:#009BF9;
    text-decoration:underline;
    }
    .textа {text-decoration:overline;}
    .textb {text-decoration:line-through;}

    И применим класы для заголовка второго уровня и текста:

    <h2 class="texta">Самый большой город Карагандинской области</h2>
    <p class="textb">здесь ваш текст</p>

    Смотрим результат:

    Untitled-57

    7. Делаем красную строку: text-indent: 20px
    Стиль:

    p {
    text-align: justify; 
    text-indent: 20px;
    }

    Результат:

    Untitled-51

    8.  Сделаем чтоб в заголовке каждое слово начиналось с заглавного символа: text-transform: capitalize
    Стиль:

    h1 {
    color:#009BF9;
    text-decoration:underline;
    text-transform: capitalize;
    }

    Добавим стили для преобразования символов в верхний и нижний регистр:

    .textc {text-transform: lowercase;}
    .textd {text-transform: uppercase;}

    И применим их:

    <span class="textc">Страна</span>
    <span class="textd">Статус</span>

    Результат:

    Untitled-58

    9. Напишем название города например ввиде волны:

    <h2>
    <span>К</span>
    <span style="vertical-align: -10px">а</span>
    <span>р</span>
    <span style="vertical-align: 10px">а</span>
    <span>г</span>
    <span style="vertical-align: -10px">а</span>
    <span>н</span>
    <span style="vertical-align: 10px">д</span>
    <span>а</span>
    </h2>

    Результат:

    Untitled-53

    10. Изменим межсимвольное расстояние для первого абзаца. Добавим в класс pleft строки:

    word-spacing: 10px;
    letter-spacing: 5px;

    результат:

    Untitled-54

    11. Добавим в классы pright строку line-height: 25px; и pcenter строку line-height: 10px;

    Untitled-55

    12. Добавим в стиль заголовка строки font-style: italic; font-family: Comic Sans MS; и в класс texta строку font-style: oblique; font-family: Monotype Corsiva, Verdana;
    Смотрим результат:

    Untitled-56

     

  • Задание по HTML к шестому уроку

    Задание сверстать старницу на подобие этой WebMaster или inext

    Iwemaster

    Inext

     

    IWebMaster

    Код HTML

    <html>
      <head>
        <meta charset="utf-8">
        <title>6 урок</title>
        <link rel="stylesheet" href="style.css">
      </head>
      <body>
        <div id="header" class="fix">
          <div class="center">
            <div class="row">
              <div class="logo">
                <h3>
                <a href="index.html">IWebmaster.kz</a>
                </h3>
              </div>
              <div class="menu">
                <ul>
                  <li><a href="index.html">Главная</a></li>
                  <li><a href="">О нас</a></li>
                  <li><a href="">Услуги</a></li>
                  <li><a href="#">Контакты</a></li>
                </ul>
              </div>
            </div>
          </div>
        </div>
        <div id="content">
          <div class="block">
            <div class="center">
              <div class="row">
              </div>
            </div>
          </div>
          <div class="block2">
            <div class="center">
              <div class="row">content</div>
            </div>
          </div>
          <div class="center">
            <div class="row">
            <div class="col-2"><img src="images/2.jpg">
            </div>
            <div class="col-4 himg"><img src="images/5.jpeg"></div>
            <div class="col-4 himg"><img src="images/6.jpeg"></div>
            <div class="col-4 himg"><img src="images/7.jpeg"></div>
            <div class="col-4 himg"><img src="images/8.jpeg"></div>
            </div>
            </div>
          </div>
        </div>
        <div id="footer">
          <div class="center">
            <div class="row">footer</div>
          </div>
        </div>
        <div id="up">
        <a href="#"><img src="images/up.png"></a>
        </div>
        
      </body>
    </html>
    

    CSS

    /* *-универсальный селектор - 0 баллов
      a,body,h1,p и т.д. - селекторы тегов(элементов) - 2 балла
      .content,.row и т.д. - селекторы классов - 10 баллов
      #header,#content,#footer - селекторы идентификаторов - 100 баллов
     */
    *{
      margin:0;
      padding:0;
      box-sizing:border-box;
      
    }
    a{
      text-decoration:none;
      
    }
    body{
      background:#ff0 url(images/pattern3.jpg) repeat;
    }
    img{
      max-width:100%;
      width:auto;
    }
    /*задаем блокам резиновые свойства*/
    #header,#content,#footer{
      width:100%;
      float:left;
      border:1px solid #FFF;
    }
    .fix{
      position:fixed;
    }
    #header,#footer{
      background:rgba(0,0,0,0.7);
    }
    #content{
      margin-top:64px;
    }
    /*
    position:fixed;
    position:relative;
    position:absolute;
    */
    /*задаем ширину рабочей области и оцентровываем ее*/
    .center{
      max-width:1124px;/**/
      margin:0 auto;
    }
    
    .row{
      float:left;
      width:100%;
      padding:20px;
    }
    .logo{
      float:left;
    }
    .menu{
      float:right;
    }
    .menu a,.logo a{
      color:#fff;
    }
    .menu li{
      float:left;
    }
    .menu a{
      padding:25px 20px;
      
    }
    /* :hover - псевдоселектор, изменяет отображение блока при наведении*/
    .menu a:hover{
      background:#fff;
      color:#000;
      border-bottom:5px solid red;
    }
    .block{
      float:left;
      width:100%;
      background:url(images/fon1.png) no-repeat;
      background-size:cover; /*размер фоновой картинки: ширина 100% и высота 100% блока*/
      background-position:50% 50%;/*оцентровываем картинку*/
      background-attachment:fixed; /*создаем параллакс эффект - фиксируем картинку*/
      height:100vh; /*100% высота окна*/
      
    }
    .block2{
      float:left;
      width:100%;
      background:url(images/pattern.jpg) no-repeat;
      background-size:cover;
      background-position:50% 50%;
      background-attachment:fixed;
      height:100vh;
      
    }
    .col-2{
      width:50%;
      padding:20px;
      float:left;
    }
    .col-4{
      width:25%;
      padding:20px;
      float:left;
    }
    
    .himg{
      height:150px;
    }
    #up{
      position:fixed;
      width:50px;
      bottom:10%;
      right:5%;
    }
    .str1{
      
    }
    .str1::after{
       content: " ";
        height: 200px;
        background: #000;
        width: 1px;
        position: absolute;
        transform: rotate(-45deg);
        left: 100%;
        top: 20px;
    }
    

     

     


     

    INEXT

    Код HTML

    <html>
        <head> 
           <title> Блочная верстка </title>
         <meta charset="utf-8">
        <link rel="stylesheet" href="style.css">
        
      </head>
        
      <body> 
        <div id="wrapper">
        <!--шапка сайта-->
          <div class="header">
          <div class="top">
            <div class="zapis"><a href="contact.html">Записaться</a></div>
            <div class="phone"><address>г.Караганда, ул.Бульвар мира 37, офис 412 | тел: +7 7212 421218, + 7 777 226 27 88</address></div>
          </div>
          <div class="main">
            <div class="logo"><a href="index.html"><img src="images/logo.png"></a></div>
            <div class="menu">
                <ul>
                  <li><a href="">Главная </a>	</li>
                  <li><a href="">Портфолио</a></li>
                  <li><a href="">Отзывы</a></li>
                  <li><a href="">Контакты</a></li>
                </ul>
            </div>
          </div>
          </div>
          <!--Конец шапки сайта-->
          <!--1 блок-->
          <div id="content">
            <div class="backcontent">
            </div>
            <div class="center"><h1>Школа программирования NEXT в Караганде</h1></div>
            <div class="left">
            <p>Ты школьник или студент? Хочешь изучать современные языки программирования?
            Создавать сайты, мобильные приложения, игры.
            Тебя ждёт школа программирования «Next».<br>
            Запишись скорее, количество мест ограничено.
            Школа «Next» - программировать с нами – это увлекательно.</p>
            </div>
            <div class="right"></div>
          </div>
          <!--Конец второго блока-->
          <!--2 блок-->
          <div id="content2">
            <h2>Расписание школы программирования Next</h2>
            <div class="left2">
            <p>Время занятий:<br>
            10:00 - 12:00, 12:00 - 14:00<br>
            14:00 - 16:00, 16:00 - 18:00<br>
            Два занятия в неделю<br>
            Группы: Пн-Пт, Вт-Чт, Ср-Сб<br></p>
            </div>
            <div class="center2">
            <p>
            Предлагаемые курсы:<br>
            - Общий курс программирования<br>
            (3 - 11 классы)<br>
            - Алгоритмы и олимпиады<br>
            (6 - 11 классы, студенты)<br>
            - Веб: дизайн и программирование<br>
            (6 - 11 классы, студенты)<br>
            </p>
            </div>
            <div class="right2"><p>
              11000 тг. в месяц
              Скидка 30%.<br>
              </p><p>
              Адрес:<br>
              Г. Караганда.<br>
              Бульвар Мира 37 <br>
              Офис 412	. 4 этаж.</p>
            </div>
          </div>
          <!--конец второго блока-->
          <div class="footer">Футер</div>
          
        </div>
      </body>
    </html>

    Код СSS

    @import url(https://fonts.googleapis.com/css?family=Ubuntu+Condensed&subset=latin,cyrillic);
    *{
      margin:0;
      padding:0;	
    }
    body{
      font-family: 'Ubuntu Condensed', sans-serif;
      background:url(images/pattern.png);
      background-attachment:fixed;
      
    }
    img{
      max-width:100%;
      width:auto;
    }
    /*Внешняя оболочка сайта*/
    #wrapper{
      max-width:1200px;
      min-width:300px;
      margin:0 auto;
      position:relative;
    }
    /*шапка сайта*/
    .header{
      width:100%;
      float:left;
      border-bottom: 2px #fff solid;
    }
    /*верхняя часть шапки где указывается координаты*/
    .top{
      max-width:1200px;
      width:100%;
      min-width:300px;
      background: rgba(0, 0, 0, 0.8);
        color: #F5F5F5;
        border-bottom: 1px #fff solid;
        font-size: 12px;
      position:fixed;
      top:0;
      z-index:5;
      
    }
    /*ссылка записаться на курсы */
    .zapis{
      float:left;
      margin:10px 20px;
    }
    .zapis a{
      color:#fff;
    }
    /*контактные данные*/
    .phone{
      float:right;
      margin:10px 20px;
      max-width:375px;
      width:100%;
      min-width:300px;
    }
    /*конец верхней части top*/
    
    /*логотип*/
    .main{
      background:rgba(222, 33, 75, 0.82);
      float:left;
      width:100%;
      margin-top: 34px;
    }
    .logo{
      max-width:300px;/*максимальная ширина блока с логотипом*/
      float:left;
      margin:10px 20px;
    }
      .logo img{
      width:100px;/*ширина картинки*/
    }
    /*меню*/
    .menu{
      max-width:820px;/*максимальная ширина блока*/
      margin:10px 0px;/*внешний отступ сверху и снизу 10px*/
      float:right;/*расположение справа*/
      font-size: 20px;/*размер шрифта*/
    }
    
    .menu li{
      float:left;
      margin:5px 0px;
    }
    .menu a{
      padding:10px 20px;
      text-decoration:none;
      color:#fff;
      border-left:1px transparent solid;/*рамка слева с прозрачным цветом*/
      border-right:1px transparent solid;/*рамка справа с прозрачным цветом*/
    }
    /*правило для меню при наведении*/
    .menu a:hover{
      padding:15px 20px; 
      background:#a73c53;
      border-left:1px #fff solid;
      border-right:1px #fff solid;
    }
    .sidebar{
      width:300px;
      background:#666;
      float:left;
      padding:15px;
      box-sizing:border-box;
    }
    .content{
      width:calc(100% - 300px);
      min-width:300px;
      background:#777;
      float:left;
      padding:15px;
      box-sizing:border-box;
    }
    #content{
      float:left;
      width:100%;
      position:relative;
      border-bottom: 2px #fff solid;
    }
    #content2{
      z-index:3;
      background:#fff;
      float:left;
      width:100%;
    }
    /*фон картинка*/
    .backcontent{
      width:100%;
      height:400px;
      background:url(images/Zanyatiya.jpg);
      background-size:cover;/*Масштабирует изображение с сохранением пропорций так, чтобы его ширина или высота равнялась ширине или высоте блока.*/
      background-attachment:fixed;/*Делает фоновое изображение элемента неподвижным.*/
      -webkit-filter: blur(0px) brightness(0.3);/*размытие 0, яркость 0.3*/
      -moz-filter:  blur(0px) brightness(0.3);
      -o-filter:  blur(0px) brightness(0.3);
      -ms-filter:  blur(0px) brightness(0.3);
      filter: blur(1px) brightness(0.3);
    }
    .center{
      width:100%;
      text-align:center;
      color:#fff;
      position:absolute;
      top:40px;
      z-index:2;
    }
    .left{
      width:40%;
      color:#fff;
      position:absolute;
      left:10%;
      top:100px;
      font-size:18px;
      text-align:center;
    }
    
    .right{
      width:40%;
      color:#fff;
      position:absolute;
      right:10%;
      top:80px;
      font-size:18px;
      text-align:center;
    }
    .left2,.center2,.right2{
      width:30%;
      float:left;
      margin:20px;
      text-align:center;
      font-weight:bold;
      }
    #content2 h2{
      text-align:center;
      margin:20px 0;
      
    }
      
    
    .footer{
      width:100%;
      background:#000;
      float:left;
      padding:15px;
      box-sizing:border-box;
      color:#fff;
    }

    Дополнительно

    Работа с фоном

    1. Сделать фон, который при прокрутке сайта в низ становился темнее.
    2. Создать галерию для сайта с эфффектами для фото.
    1. Создать страницу galereya.html и задать стиль для фона:
    <html>
    
        <head>
    
            <title>Город мой</title>
            <meta name="keywords" content="Ключевые слова, HTML и его элементы" >
            <meta charset="utf-8">
            <meta name="description" content="Основы HTML от GoldStudio" >
            <meta name="author" content="Джон Дое" >
            <meta name="robots" content="index,follow">
            <style type="text/css">
    
                html,body {
                     height:auto !important;
                     height:3000px;
                     background: #f0f9ff;
                     background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f0f9ff), color-stop(3000px,#6996d3));
                     background: -webkit-linear-gradient(top,  #f0f9ff 0%,#6996d3 3000px);
                     background: -moz-linear-gradient(top,  #f0f9ff 0%, #6996d3 3000px);
                     background: -ms-linear-gradient(top,  #f0f9ff 0%,#6996d3 3000px);
                     background: -o-linear-gradient(top,  #f0f9ff 0%,#6996d3 3000px);
                     background: linear-gradient(to bottom,  #f0f9ff 0%,#6996d3 3000px);
                     filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f0f9ff', endColorstr='#6996d3',GradientType=0 );
                     }
             </style>
    
        </head>
        <body>
    …
        </body>
    
    </html>

    Тот же стиль можно добавить и на остальные страницы убрав или закоментировав имеющийся, тогда при увеличении длины страницы и прокрутки ее в низ до размеров в 3000px фон будет становится темнее. Длину можно сделать больше или меньше. Плюс поменять цвета для остальных стилей например так:

    Untitled-32

    2.Перед тем как приступить работать с изображениями в стилях зададим базовые правила для них. Код:

    * {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    -ms-box-sizing: border-box;
    box-sizing: border-box;
    }
    
    body {
    background: #333;
    }
    
    .pic {
    border: 10px solid #fff; 
    float: left;
    height: 300px;
    width: 300px;
    margin: 20px;
    overflow: hidden;
    
    -webkit-box-shadow: 5px 5px 5px #111;
    box-shadow: 5px 5px 5px #111; 
    }

    border-box означает, что высота и ширина блоков с изображениями будут включать в себя значения полей и границ, а класс pic является общим для всех изображений. Ограничивает высоту, ширину, задает границу и тень. И что самое важное содержимое (т.е. изображения) этого блочного элемента, будет отображаться только внутри, за пределы не выйдет свойство overflow : hidden

    3.Рассмотрим применение фильтров изображений.  Чтобы обеспечить максимальную совместимость браузера, в фильтрах использовать будем префикс-WebKit (для браузеров Chrome и Safari), потому что другие браузеры, к сожалению их (фильтры) не поддерживают.
    Эффект размытия:

    <div class="blur pic">
    <img src="gorod7.jpg" alt="plane">
    </div>

    Стиль:

    /*BLUR*/
    .blur img {
    -webkit-transition: all 1s ease;
    -moz-transition: all 1s ease;
    -o-transition: all 1s ease;
    -ms-transition: all 1s ease;
    transition: all 1s ease;
    }
    
    .blur img:hover {
    -webkit-filter: blur(5px);
    }

    Untitled-40

    4. С помощью этого фильтра, добьемся эффекта черно-белого изображения.

    <div class="bw pic">
    <img src="gorod8.jpg" alt="sea">
    </div>

    Стиль:

    /*B&W*/
    .bw {
    -webkit-transition: all 1s ease;
    -moz-transition: all 1s ease;
    -o-transition: all 1s ease;
    -ms-transition: all 1s ease;
    transition: all 1s ease;
    }
    
    .bw:hover {
    -webkit-filter: grayscale(100%);
    }

    Untitled-41

    5. Еще один эффект перевод цветного изображения в тональность сепия.
    Значения фильтров сепия и оттенки серого указаны в процентах, где 100% является максимальным. Если не указывать число то 100% будут применены по умолчанию. То же относится и к предыдущему стилю.

    <div class="sepia pic"style="clear: both">
    <img src="gorod9.jpg" alt="sea">
    </div>

    И

    /*SEPIA*/
    .sepia img {
    -webkit-transition: all 1s ease;
    -moz-transition: all 1s ease;
    -o-transition: all 1s ease;
    -ms-transition: all 1s ease;
    transition: all 1s ease;
    }
    
    .sepia img:hover {
    -webkit-filter: sepia(100%);
    }

    Untitled-42

    6. Теперь контрастность. Существует небольшая разница в использовании этого фильтра. Обычным значение контрастности является 100%. Больше 100% цвета насыщенней, меньше цвета тускнеют.

    /*CONTRAST*/
    .contrast img {
    -webkit-transition: all 1s ease;
    -moz-transition: all 1s ease;
    -o-transition: all 1s ease;
    -ms-transition: all 1s ease;
    transition: all 1s ease;
    }
    
    .contrast img:hover {
    -webkit-filter: contrast(185%); 
    }

    И

    <div class="contrast pic">
    <img src="gorod10.jpg" alt="sea">
    </div>

    Результат:

    Untitled-43

    7. Данный фильтр изменяет цвета картинки в зависимости от заданного угла. Так что здесь можно поэксперементировать, но я предлагаю такой вариант:

    /*HUE_ROTATE*/
    .hue-rotate img {
    -webkit-transition: all 1s ease;
    -moz-transition: all 1s ease;
    -o-transition: all 1s ease;
    -ms-transition: all 1s ease;
    transition: all 1s ease;
    }
    
    .hue-rotate img:hover {
    -webkit-filter: hue-rotate(130deg); 
    }

    И

    <div class="hue-rotate pic">
    <img src="gorod11.jpg" alt="sea">
    </div>

    Untitled-44

    8. Еще один Webkit фильтр изображений — это инверсия. Данный фильтр инвертирует цвета. Значение задается в % от 0-100.

    /*INVERT*/
    .invert img {
    -webkit-transition: all 1s ease;
    -moz-transition: all 1s ease;
    -o-transition: all 1s ease;
    -ms-transition: all 1s ease;
    transition: all 1s ease;
    }
    
    .invert img:hover {
    -webkit-filter: invert(100%); 
    }

    И

    <div class="invert pic">
    <img src="gorod12.jpg" alt="sea">
    </div>

    Untitled-45

    9. Наверное самый распространенный способ манипуляции с цветами изображения, так это добавление прозрачности. Теперь и с помощью CSS3. Вынес его в отдельный раздел в связи с одной особенностью, о ней ниже. Значение прозрачности в фильтре задается опять таки процентами, где 100% это не прозрачно, а 0% полностью прозрачно. Особенность использования прозрачности заключается в том, что его можно использовать как обычное свойство CSS, а не только как фильтр. Соответственно и работает такой эффект во всех браузерах, даже в IE9+.

    /*OPACITY*/
    .opacity img {
    -webkit-transition: all 1s ease;
    -moz-transition: all 1s ease;
    -o-transition: all 1s ease;
    -ms-transition: all 1s ease;
    transition: all 1s ease;
    }
    
    .opacity img:hover {
    -webkit-filter: opacity(25%); 
    }

    И

    <div class="opacity pic">
    <img src="gorod13.jpg" alt="sea">
    </div>

    Untitled-46

    10. Ну и в заключении объединим фильтры в одном правиле, это возможно и дает боле комплексный эффект например такой:

    /*obe*/
    .obe img {
    -webkit-transition: all 1s ease;
    -moz-transition: all 1s ease;
    -o-transition: all 1s ease;
    -ms-transition: all 1s ease;
    transition: all 1s ease;
    }
    
    .obe img:hover {
    -webkit-filter: sepia(100%) contrast(150%) opacity(40%);
    }

    И

    <div class="obe pic">
    <img src="gorod9.jpg" alt="sea">
    </div>

    Untitled-47

     

    1. Сделаем блок с фотографиями под заголовком, используя position:absolute

    1. Под заголовок вставляем блок с содержимым:

     

    <div>
    
             <img class="pic  a" src="gorod.jpg" alt="караганда">
             <img class="pic  b" src="gorod1.jpg" alt="караганда">
             <img class="pic  c" src="gorod2.jpg" alt="караганда">
             <img class="pic  d" src="gorod3.jpg" alt="караганда">
             <img class="pic  e" src="gorod4.jpg" alt="караганда">
    
    </div>

    Обратите внимание на использование двух классов для одного изображения class=»pic  

    1. Укажем общий класс для всей изображений pic:
    .pic {
    
                    border: 10px solid #fff; 
                    float: left;
                    height: 200px;
                    width: 200px;
                    margin: 20px;
                    overflow: hidden;
                    -webkit-box-shadow: 5px 5px 5px #111;
                    box-shadow: 5px 5px 5px #111; 
    
          }
    1. Укажем класс для каждого отдельного изображения:

     

     .a {
    
                    position: absolute;
                    left: 10px;
                    top: 30px;
                    z-index: 1;
    
                }
      .b {
    
                    position: absolute;
                    left: 115px;
                    top: 115px;
                    z-index: 2;
    
                }
      .c {
    
                    position: absolute;
                    left: 10px;
                    top: 300px;
                    z-index: 3;
    
                }
      .d {
    
                    position: absolute;
                    left: 115px;
                    top: 400px;
                    z-index: 4;
    
                }
      .e {
    
                    position: absolute;
                    left: 10px;
                    top: 570px;
                    z-index: 5;
    
                }

    Смотрим результат:

    Untitled-59

     

  • Задание по HTML к седьмому уроку

    Пример работы 7 урок

    https://ot7.ru/html/7

     

    Работа с иконками

    Чтобы вставить иконки на сайт,необходимо подключить их, для этого перейдите по ссылке http://fortawesome.github.io/Font-Awesome/get-started/, скопируйте тег линк и разместите его в контейнер head

    Все иконки здесь: http://fortawesome.github.io/Font-Awesome/icons/.

     

    Эффекты для фото.

    Попробуйте создать собственную галерию на странице galereya.html с фотографиями.

    1. Переходи к эфектам первый эффект увеличение. Стиль:

    /*GROW*/
    .grow img {
    height: 300px;
    width: 300px;
    
    -webkit-transition: all 1s ease;
    -moz-transition: all 1s ease;
    -o-transition: all 1s ease;
    -ms-transition: all 1s ease;
    transition: all 1s ease;
    }
    
    .grow img:hover {
    width: 400px;
    height: 400px;
    }

    И между тегами <body></body> изображение к которому нам небходимо применить стиль:

    <div class="grow pic">
    <img src="gorod.jpg" alt="portrait">
    </div>

    Результат:

    Untitled-33

    Само по себе изображение 400х400px, но мы его подгоняем под размеры блока 300x300px и указываем transition свойство, означающее что другие свойства будут изменяться плавно в течении одной секунды. Так как нам необходимо увеличение изображение то при наведении оно возвращается к исходным размерам.

    2. Второй эффект Это абсолютно противоположный эффект. Изначально изображение в полноценном размере, а при наведении уменьшается до 300х300px. таким образом создается эффект сжатия.
    Стиль:

    /*SHRINK*/
    .shrink img {
    height: 400px;
    width: 400px;
    
    -webkit-transition: all 1s ease;
    -moz-transition: all 1s ease;
    -o-transition: all 1s ease;
    -ms-transition: all 1s ease;
    transition: all 1s ease;
    }
    
    .shrink img:hover {
    width: 300px;
    height: 300px;
    }

    И

    <div class="shrink pic">
    <img src="gorod1.jpg" alt="city">
    </div>

    Untitled-34

    3. Горизонтальное смещение, при наведении картинка смещается горизонтально в сторону.

    <div class="sidepan pic">
    <img src="gorod2.jpg" alt="kick"><br>
    </div>
    Стиль:
    /*SIDEPAN*/
    .sidepan img {
    margin-left: 0px;
    -webkit-transition: margin 1s ease;
    -moz-transition: margin 1s ease;
    -o-transition: margin 1s ease;
    -ms-transition: margin 1s ease;
    transition: margin 1s ease;
    }
    
    .sidepan img:hover {
    margin-left: -200px;
    }

    Все с помощью того же свойства transition мы плавно меняем, но уже свойство margin. При наведении смещаем картинку влево на 200px.

    Untitled-35

    4. Вертикальное смещение аналогичен предыдущему:

    <div class="vertpan pic">
    <img src="gorod3.jpg" alt="climb">
    </div>

    И стиль:

    /*VERTPAN*/
    .vertpan img {
    margin-top: 0px;
    -webkit-transition: margin 1s ease;
    -moz-transition: margin 1s ease;
    -o-transition: margin 1s ease;
    -ms-transition: margin 1s ease;
    transition: margin 1s ease;
    }
    
    .vertpan img:hover {
    margin-top: -200px;
    }

    Untitled-36

    5. Еще один эффект используя свойство transform , создадим наклон изображения, небольшой поворот изображения в результате наведения курсора мыши, повернув изображение на десять градусов.

    <div class="tilt pic">
    <img src="gorod4.jpg" alt="car">
    </div>

    Стиль:

    /*TILT*/
    .tilt {
    -webkit-transition: all 0.5s ease;
    -moz-transition: all 0.5s ease;
    -o-transition: all 0.5s ease;
    -ms-transition: all 0.5s ease;
    transition: all 0.5s ease;
    }
    
    .tilt:hover {
    -webkit-transform: rotate(-10deg);
    -moz-transform: rotate(-10deg);
    -o-transform: rotate(-10deg);
    -ms-transform: rotate(-10deg);
    transform: rotate(-10deg);
    }

    обратите внимание, что эффект нацелен на сам класс, а не на изображение.

    Untitled-37

    6. Когда пользователь наводит на изображение, оно начинает вращаться. Пока изображение вращается, блок див трансформируется в круг.

    <div class="morph pic">
    <img src="gorod6.jpg" alt="beach">
    </div>

    И

    /*MORPH*/
    .morph {
    -webkit-transition: all 0.5s ease;
    -moz-transition: all 0.5s ease;
    -o-transition: all 0.5s ease;
    -ms-transition: all 0.5s ease;
    transition: all 0.5s ease;
    }
    
    .morph:hover {
    border-radius: 50%;
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    transform: rotate(360deg);
    }

    Суть заключается в том, что для классы morph вращается на 360 градусов при наведении курсора мыши. В это же время, border-radius принимает значение 50%, в результате чего получается круг.

    Untitled-38

    7. Подобный эффект предыдущему, однако вращения не будет просто изображение закруглим и увеличим толщину границы.

    <div class="focus pic">
    <img src="gorod5.jpg" alt="cricket">
    </div>

    Стиль:

    /*FOCUS*/
    .focus {
    -webkit-transition: all 1s ease;
    -moz-transition: all 1s ease;
    -o-transition: all 1s ease;
    -ms-transition: all 1s ease;
    transition: all 1s ease;
    }
    
    .focus:hover {
    border: 70px solid #000;
    border-radius: 50%;
    }

    Untitled-39

    В результате мы получим  такую галерею:

    Untitled-48

  • Задание по HTML к пятому уроку

    Содержание:

    Верстка 1  https://ot7.ru/html/51

    Верстка 2 https://ot7.ru/html/urok5

    Верстка 1

    1. Создайте меню и фон как на  примере https://ot7.ru/html/51
    2. Код html
    <html>
      <head>
        <meta charset="utf-8">
        <title>Блочная верстка</title>
        <link rel="stylesheet" href="style.css">
      </head>
      <body>
        <div id="header">
          <div class="center">
            <div class="row">
              <div class="logo">
                <h3>
                <a href="index.html">IWebmaster.kz</a>
                </h3>
              </div>
              <div class="menu">
                <ul>
                  <li><a href="index.html">Главная</a></li>
                  <li><a href="">О нас</a></li>
                  <li><a href="">Услуги</a></li>
                  <li><a href="#">Контакты</a></li>
                </ul>
              </div>
            </div>
          </div>
        </div>
        <div id="content">
          <div class="block">
            <div class="center">
              <div class="row">content</div>
            </div>
          </div>
          <div class="block2">
            <div class="center">
              <div class="row">content</div>
            </div>
          </div>
          <div class="center">
            <div class="row">
            <p>
            Lorem ipsum dolor sit amet, essent insolens ad duo. His augue explicari at, per ad enim facete appetere. Labore virtute suscipit ex nec, per modo sonet lobortis ad. Mel ei homero dolorum dissentias. Eu quem solet tritani est, deserunt elaboraret mei ex. At est interesset cotidieque, has dicunt melius in, sed an prima clita scripserit. At eos omnis causae eligendi.
    
            Cum id graeci vidisse interesset. Tempor moderatius nam ea, ea vel scaevola liberavisse philosophia, evertitur voluptaria est at. Eum doming omittantur eu, munere ponderum percipitur at sit. Vis fugit adipisci abhorreant id, aeque clita qui ei. Audiam sensibus instructior mei ex. Apeirian consequuntur interpretaris ad vim.
    
            Ex hinc qualisque elaboraret his, integre nominati percipitur ius et. Pro esse luptatum at, mei in iisque alterum. Sit id porro ignota intellegebat, mei at ancillae gubergren. Vim odio labore voluptua ei.
    
            Has soluta aperiam disputationi ea, brute tation vix an. In qui habemus accumsan invidunt, sea commune adipisci aliquando et. At ius tacimates conclusionemque. Mea ea tota aliquid. An nostrum adolescens sententiae pri, sea ut duis vulputate referrentur, hinc postea patrioque eu sed. Has cu maiorum percipitur signiferumque, sea blandit lucilius reprehendunt id.
    
            Sea no solum graeco referrentur, doming percipitur in cum. Nemore diceret vis cu. No mundi similique ius, at nihil omnes omnesque vix, id iuvaret elaboraret est. Mea cu tota solet discere, diam erroribus mel at.
            </p>
            </div>
          </div>
        </div>
        <div id="footer">
          <div class="center">
            <div class="row">footer</div>
          </div>
        </div>
      </body>
    </html>
    

    Код файла style.css

    /* *-универсальный селектор - 0 баллов
      a,body,h1,p и т.д. - селекторы тегов(элементов) - 2 балла
      .content,.row и т.д. - селекторы классов - 10 баллов
      #header,#content,#footer - селекторы идентификаторов - 100 баллов
     */
    *{
      margin:0;
      padding:0;
      box-sizing:border-box;
      
    }
    a{
      text-decoration:none;
      
    }
    body{
      background:#ff0 url(images/pattern3.jpg) repeat;
    }
    /*задаем блокам резиновые свойства*/
    #header,#content,#footer{
      width:100%;
      float:left;
      border:1px solid #FFF;
    }
    #header,#footer{
      background:rgba(0,0,0,0.7);
    }
    /*задаем ширину рабочей области и оцентровываем ее*/
    .center{
      max-width:1124px;/**/
      margin:0 auto;
    }
    
    .row{
      float:left;
      width:100%;
      padding:20px;
    }
    .logo{
      float:left;
    }
    .menu{
      float:right;
    }
    .menu a,.logo a{
      color:#fff;
    }
    .menu li{
      float:left;
    }
    .menu a{
      padding:25px 20px;
      
    }
    /* :hover - псевдоселектор, изменяет отображение блока при наведении*/
    .menu a:hover{
      background:#fff;
      color:#000;
      border-bottom:5px solid red;
    }
    .block{
      float:left;
      width:100%;
      background:url(images/fon1.png) no-repeat;
      background-size:cover; /*размер фоновой картинки: ширина 100% и высота 100% блока*/
      background-position:50% 50%;/*оцентровываем картинку*/
      background-attachment:fixed; /*создаем параллакс эффект - фиксируем картинку*/
      height:100vh; /*100% высота окна*/
      
    }
    .block2{
      float:left;
      width:100%;
      background:url(images/pattern.jpg) no-repeat;
      background-size:cover;
      background-position:50% 50%;
      background-attachment:fixed;
      height:100vh;
      
    }
    

     


     

    Верстка 2

    1. Создайте меню и фон как на  примере https://ot7.ru/html/urok5
    2. Код html
      <html>
          <head> 
             <title> Блочная верстка </title>
           <meta charset="utf-8">
          <link rel="stylesheet" href="style.css">
          
        </head>
          
        <body> 
          <div id="wrapper">
            <div class="header">
            <div class="top">
              <div class="zapis"><a href="contact.html">Записaться</a></div>
              <div class="phone"><address>г.Караганда, ул.Бульвар мира 37, офис 412 | тел: +7 7212 421218, + 7 777 226 27 88</address></div>
            </div>
            <div class="logo"><a href="index.html"><img src="images/logo.png"></a></div>
            <div class="menu">
                <ul>
                  <li><a href="">Главная </a>	</li>
                  <li><a href="">Портфолио</a></li>
                  <li><a href="">Отзывы</a></li>
                  <li><a href="">Контакты</a></li>
                </ul>
            </div>
            </div>
            <div class="sidebar"> Сайдбар</div>
            <div class="content">Контент
            </div>
            <div class="footer">Футер</div>
          </div>
        </body>
      </html>
    3. Код style.css
      @import url(https://fonts.googleapis.com/css?family=Ubuntu+Condensed&subset=latin,cyrillic);
      body{
        margin:0;
        padding:0;
        font-family: 'Ubuntu Condensed', sans-serif;
        background:url(images/pattern.png);
        background-attachment:fixed;
        
      }
      img{
        max-width:100%;
        width:auto;
      }
      /*Внешняя оболочка сайта*/
      #wrapper{
        max-width:1200px;
        margin:0 auto;
      }
      /*шапка сайта*/
      .header{
        width:100%;
        background:#DE214B;
        float:left;
        border-bottom: 2px #fff solid;
      }
      /*верхняя часть шапки где указывается координаты*/
      .top{
        width:100%;
        float:left;
        background: #a73c53;
          color: #F5F5F5;
          border-bottom: 1px #fff solid;
          font-size: 12px;
      }
      /*ссылка записаться на курсы */
      .zapis{
        float:left;
        margin:10px 20px;
      }
      .zapis a{
        color:#fff;
      }
      /*контактные данные*/
      .phone{
        float:right;
        margin:10px 20px;
      }
      /*конец верхней части top*/
      
      /*логотип*/
      .logo{
        max-width:300px;/*максимальная ширина блока с логотипом*/
        float:left;
        margin:20px;
      }
        .logo img{
        width:100px;/*ширина картинки*/
      }
      /*меню*/
      .menu{
        max-width:820px;/*максимальная ширина блока*/
        margin:10px 0px;/*внешний отступ сверху и снизу 10px*/
        float:right;/*расположение справа*/
        font-size: 20px;/*размер шрифта*/
      }
      .menu ul{
        margin:10px 0px;/*внешний отступ блока со списком*/
        float:right;
      }
      .menu li{
        float:left;
        margin:5px 0px;
      }
      .menu a{
        padding:10px 20px;
        text-decoration:none;
        color:#fff;
        border-left:1px transparent solid;/*рамка слева с прозрачным цветом*/
        border-right:1px transparent solid;/*рамка справа с прозрачным цветом*/
      }
      /*правило для меню при наведении*/
      .menu a:hover{
        padding:25px 20px; 
        background:#a73c53;
        border-left:1px #fff solid;
        border-right:1px #fff solid;
      }
      .sidebar{
        width:300px;
        background:#666;
        float:left;
        padding:15px;
        box-sizing:border-box;
      }
      .content{
        width:calc(100% - 300px);
        min-width:300px;
        background:#777;
        float:left;
        padding:15px;
        box-sizing:border-box;
      }
      .footer{
        width:100%;
        background:#000;
        float:left;
        padding:15px;
        box-sizing:border-box;
        color:#fff;
      }

     

     

     

  • Задание по HTML к четвертому уроку. Блочная верстка

    В своей рабочей папке с уроками, создайте html документ index.html  и сверстайте страницу по шаблону

    или по лабораторной работе

    4 урок Лекционная часть

    1. Пропишите основную структуру документа
    2. В контейнере Body — создайте 6 блоков div: 1 оберточный блок wrapper, отвечаeт за общую ширину рабочего пространства и расположения страницы по середине. 5 остальных блоков — ячейки, каждый из них  будет нести свой функционал
      <div id="wrapper"> <!--обертка-->
          <div class="header"> Шапка </div>  
          <div class="menu"> Навигация </div>
          <div class="sidebar"> Сайдбар </div>
          <div class="content"> Контент </div>
          <div class="footer"> Футер </div>
      </div>
      
    3. В контейнере head — создайте парный тэг style,и внутри <style>…</style> опишите стили для созданных классов и идентификатора, а также обнулите внешние и внутренние отступы, которые заданы браузером по умолчанию.
    4. <style>
        body{margin:0;padding:0;}
        #wrapper{max-width:1200px;margin:0 auto;}
        .header{width:100%;background:#555;float:left;}
        .menu {width:100%;background:#666;float:left;}
        .sidebar{width:300px;background:#666;float:left;padding:15px;box-sizing:border-box;}
        .content{width:calc(100% - 300px);min-width:300px;background:#777;float:left;padding:15px;box-sizing:border-box;}
        .footer{width:100%;background:#000;float:left;padding:15px;box-sizing:border-box;color:#fff;}
        </style>

      Вот что у вас должно получиться
      блок

    5. Внутри контейнера header мы расположим по центру блок с классом logo, где будет располагаться логотип, максимальная ширина блока равна 300px
      <div class="logo"> Логотип </div>
      .logo{max-width:300px;margin:20px auto;background:#999;}

      блок2
      Итоговый код страницы

      <html>
          <head> 
             <title> Блочная верстка </title>
           <meta charset="utf-8">
        <!--Стили-->
          <style>
            body{margin:0;padding:0;}
            img{max-width:100%;width:auto;}
            #wrapper{max-width:1200px;margin:0 auto;}
            .header{width:100%;background:#555;float:left;}
              .logo{max-width:300px;margin:20px auto;background:#999;}
            .menu {width:100%;background:#666;float:left;}
              .main{max-width:100%;margin:10px;background:#999;}
            .sidebar{width:300px;background:#666;float:left;padding:15px;box-sizing:border-box;}
            .content{width:calc(100% - 300px);min-width:300px;background:#777;float:left;padding:15px;box-sizing:border-box;}
            .footer{width:100%;background:#000;float:left;padding:15px;box-sizing:border-box;color:#fff;}
          </style>
        <!------>
        </head>
          
        <body> 
          <div id="wrapper">
            <div class="header">
            <div class="logo">Логотип</div>
            </div>
            <div class="menu">Навигация
              <div class="main">Меню</div>
            </div>
            <div class="sidebar"> Сайдбар</div>
            <div class="content">Контент</div>
            <div class="footer">Футер</div>
          </div>
        </body>
      </html>

    Дополнительно

    В корневом каталоге создайте папку css и в нем файл style.css

    Перенесите стили с документа в отдельный файл style.css.

    В index.html вместо <style>…</style> подключите файл стилей style.css

    <link rel="stylesheet" type="text/css" href="css/style.css">
  • HTML урок 10. Виды и свойства блоков. Псевдоклассы и псевдоэлементы

    Как вы помните, элементы могут быть блочными и строчными. По умолчанию для каждого элемента его вид определен, так элементы div и p являются блочными, а span
    и a — строчными. Но иногда это необходимо изменить, для этого используется свойство display.
    Это свойство может принимать одно из четырех значений. Рассмотрим все четыре на примерах.

    display:block

    Это значение делает элемент блочным. Предположим, мы решили сделать вертикальное меню. Для этого на html-странице мы напишем
    следующий код:

    <html>
    <head>
    <title>css display</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body>
    <div id="menu">
    <a href="index.html">Главная</a>
    <a href="about_us.html">О нас</a>
    <a href="contact.html">Контакты</a>
    </div>
    </body>
    </html>

    Зададим на странице style.css стиль для наших ссылок, причем только для ссылок, которые находятся в div-е с id=»menu» (тогда другие ссылки на странице, если они будут, останутся без изменения или им можно будет задать другой стиль):

    #menu{
    width:200px;
    background:yellow;
    }
    #menu a{
    color:#2b3845;
    text-decoration:none;
    }
    #menu a:hover{
    color:#92A9BF;
    background:blue;
    }

    Сейчас наши ссылки выглядят так:

    Untitled-1

    Элемент a является строчным, поэтому наши ссылки расположились в одну строку и их размер зависит от текста.
    Но мы хотели сделать вертикальное меню, для этого мы и добавим нашим ссылкам свойство display:block:

    #menu{
    width:200px;
    background:yellow;
    }
    #menu a{
    color:#2b3845;
    text-decoration:none;
    display:block;
    }
    #menu a:hover{
    color:#92A9BF;
    background:blue;
    }

    Теперь наше меню выглядит так:

    Untitled-2

    Обратите внимание, так как теперь наши ссылки стали блочными элементами, то и размер у них стал одинаковый, равный ширине родительского div-а.

    display:inline

    Это значение делает элемент строчным. Предположим, мы хотим разместить на странице параграф, который должен начинаться с заголовка. На html-странице мы напишем следующий код:

    <html>
    <head>
    <title>css display</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body>
    <h5>Заголовок.</h5> <p>Текст параграфа</p>
    </body>
    </html>

    Сейчас наша страница выглядит так:

    Untitled-3

    Добавим на страницу style.css стили для наших элементов:

    h5, p{
    display:inline;
    }

    Теперь наша страница выглядит так, как мы и хотели:

    Untitled-4

    display:list-item

    Это значение делает любой элемент частью списка. Используется он редко, да и поддерживается браузерами не в полной мере. Но давайте все-таки посмотрим пример. Пусть у нас есть три заголовка одного уровня, и мы хотим оформить их списком. Для этого на html-странице мы напишем:

    <html>
    <head>
    <title>css display</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body>
    <ul>
    <h6>Заголовок</h6>
    <h6>Заголовок</h6>
    <h6>Заголовок</h6>
    </ul>
    </body>
    </html>

    Сейчас наши заголовки выглядят, как положено:

    Untitled-5

    На странице стилей напишем всего одно свойство:

    h6{
    display:list-item;
    }

    В результате получим список из заголовков:

    Untitled-6

    display:none

    Это значение убирает элемент со страницы. Очень часто используется для формирования раскрывающихся меню сайтов, например, с помощью языка javascript. Вы, наверно, встречали такие меню, где при щелчке по пункту меню раскрывается список подпунктов.
    Вот в таких меню и используется значение display:none.

    Надо сказать, что в CSS есть еще одно свойство на первый взгляд похожее на display:none. Это свойство, отвечающее за видимость блока — visibility. Оно может принимать два значения: visible (отображать) и hidden (сделать невидимым).
    Различия здесь следующее: display:none скрывает элемент, как будто его и не было, а
    visibility:hidden делает элемент прозрачным. Понятнее будет на примере.
    Пусть у нас есть пять параграфов:

    <html>
    <head>
    <title>css display</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body>
    <p>Параграф 1</p>
    <p id="p2">Параграф 2</p>
    <p>Параграф 3</p>
    <p id="p4">Параграф 4</p>
    <p>Параграф 5</p>
    </body>
    </html>

    Сейчас наша страница выглядит так:

    Untitled-7

    Давайте зададим для второго параграфа свойство display:none, а для четвертого — свойство visibility:hidden:

    #p2{
    display:none;
    }
    #p4{
    visibility:hidden;
    }

    Посмотрим, что получилось:

    Untitled-8

    Как видите, второй параграф отсутствует, а четвертый — невидим, но место под него оставлено. В этом и заключается разница.

    Свойство visibility так же, как и свойство display, чаще всего применяется совместно с javascript.

    Отображение содержимого блоков в разных браузерах

    Как вы думаете, что будет, если блочному элементу задать меньшие размеры, чем его содержимое? Ваш ответ будет зависеть от того, в каком браузере вы работаете. Предположим мы задали блоку размер 200х100 пикселов и поместили в него текст, явно превышающий эти размеры. Ниже приведен рисунок, где отображено поведение различных браузеров в такой ситуации:

    css60

    Как видите, одни браузеры растягивают блоки, чтобы вместить содержимое, а другие перекрывают блок содержимым.

    Конечно,лучшего всего контролировать размеры объектов, но это не всегда возможно. Как же быть тогда? Воспользоваться свойством overflow. Это свойство может принимать четыре значения:

    visible — если содержимое превышает размеры блока, оно все-равно останется на экране. Результат будет такой же, как на рисунке выше.

    hidden — браузер отрежет содержимое, которое превышает размер блока.

    css61

    scroll — блок будет снабжен полосами прокрутки, причем как горизонтальной, так и вертикальной.

    Untitled-9

    auto — блок будет снабжен только теми полосами прокрутки, которые необходимы.

    Untitled-10

    Надо сказать, что на практике свойство overflow используется редко, но знать о его существовании все-таки стоит.

    Псевдокласс :first-child

    Псевдокласс :first-child применяет стилевое оформление к первому дочернему элементу своего родителя.

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
     <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <title>first-child</title>
      <style type="text/css">
        B:first-child {
         color: red; /* Красный цвет текста */
        }
      </style>
     </head>
     <body>
       <p><b>Lorem ipsum</b> dolor sit amet, <b>consectetuer</b> 
       adipiscing <b>elit</b>, sed diem nonummy nibh euismod tincidunt ut lacreet 
       dolore magna aliguam erat volutpat.</p>
       <p><b>Ut wisis enim</b> ad minim veniam, <b>quis nostrud</b> 
       exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea <b>commodo 
       consequat</b>.</p>
     </body>
    </html>

    Выделение цветом первого дочернего элемента абзаца

    Псевдокласс :last-child

    Псевдокласс :last-child задает стилевое оформление последнего элемента своего родителя.

    элемент:last-child { … }

    <!DOCTYPE html>
    <html>
     <head>
      <meta charset="utf-8">
      <title>last-child</title>
      <style>
       .block {
        background: #7da7d9; /* Цвет фона */
        color: #fff; /* Цвет текста */
       }
       .block :first-child {
        padding: 10px; /*  Поля вокруг текста */
       }
       .block :last-child { 
        background: #dda458 url(images/line.png) repeat-x; /* Параметры фона */
        height: 5px; /* Высота блока */
       }
      </style>
     </head>
     <body>
      <div class="block">
       <div>
        При истечении возможности понимания вышеизложенной информации вы
        имеете объективную возможность подать официальный запрос главному 
        субординатору локальной виртуальной вселенной.
       </div>
       <div></div>
      </div>
     </body>
    </html>

    Результат использования псевдокласса :last-child

    Псевдокласс :nth-child

    Псевдокласс :nth-child используется для добавления стиля к элементам на основе нумерации в дереве элементов.

    элемент:nth-child(odd | even | <число> | <выражение>) {…}

    Значения

    odd
    Все нечетные номера элементов.
    even
    Все четные номера элементов.
    число
    Порядковый номер дочернего элемента относительно своего родителя. Нумерация начинается с 1, это будет первый элемент в списке.
    выражение
    Задается в виде an+b, где a и b целые числа, а n — счетчик, который автоматически принимает значение 0, 1, 2…

    Если a равно нулю, то оно не пишется и запись сокращается до b. Если b равно нулю, то оно также не указывается и выражение записывается в форме an. a и b могут быть отрицательными числами, в этом случае знак плюс меняется на минус, например: 5n-1.

    За счет использования отрицательных значений a и b некоторые результаты могут также получиться отрицательными или равными нулю. Однако на элементы оказывают влияние только положительные значения из-за того, что нумерация элементов начинается с 1.

    В табл. 1 приведены некоторые возможные выражения и ключевые слова, а также указано, какие номера элементов будут задействованы.

    Табл. 1. Результат для различных значений псевдокласса
    Значение Номера элементов Описание
    1 1 Первый элемент, является синонимом псевдокласса :first-child.
    5 5 Пятый элемент.
    2n 2, 4, 6, 8, 10 Все четные элементы, аналог значения even.
    2n+1 1, 3, 5, 7, 9 Все нечетные элементы, аналог значения odd.
    3n+2 2, 5, 8, 11, 14
    -n+3 3, 2, 1
    5n-2 3, 8, 13, 18, 23
    even 2, 4, 6, 8, 10 Все четные элементы.
    odd 1, 3, 5, 7, 9 Все нечетные элементы.
    <html>
     <head>
      <meta charset="utf-8">
      <title>nth-child</title>
      <style>
       table { 
        width: 100%; /* Ширина таблицы */
        border-spacing: 0; /* Расстояние между ячейками */
       }
       tr:nth-child(2n) {
        background: #f0f0f0; /* Цвет фона */
       } 
       tr:nth-child(1) {
        background: #666; /* Цвет фона */
        color: #fff; /* Цвет текста */
       } 
      </style>
     </head>
     <body>
      <table border="1">
       <tr> 
        <td>&nbsp;</td><td>2134</td><td>2135</td>
        <td>2136</td><td>2137</td><td>2138</td>
       </tr>
       <tr> 
        <td>Нефть</td><td>16</td><td>34</td>
        <td>62</td><td>74</td><td>57</td>
       </tr>
       <tr>
        <td>Золото</td><td>4</td><td>69</td>
        <td>72</td><td>56</td><td>47</td>
       </tr>
       <tr>
        <td>Дерево</td><td>7</td><td>73</td>
        <td>79</td><td>34</td><td>86</td>
       </tr>
       <tr>
        <td>Камни</td><td>23</td><td>34</td>
        <td>88</td><td>53</td><td>103</td>
       </tr>
      </table> 
     </body>
    </html>

    Применение псевдокласса :nth-child к строкам таблицы

    Псевдоэлемент :before

    Псевдоэлемент :before применяется для отображения желаемого контента до содержимого элемента, к которому он добавляется. Работает совместно со свойством content.

    Для :before характерны следующие особенности.

    • При добавлении :before к блочному элементу, значение свойства display может быть только: block, inline,none, list-item. Все остальные значения будут трактоваться как block.
    • При добавлении :before к встроенному элементу, display ограничен значениями inline и none. Все остальные будут восприниматься как inline.
    • :before наследует стиль от элемента, к которому он добавляется.
    <html>
     <head>
      <meta charset="utf-8">
      <title>before</title>
      <style>
       li:before {
         content: "¶ "; /* Добавляем желаемый символ перед элементом списка */ 
       }
       li {
         list-style: none; /* Убираем исходные маркеры */ 
       }
      </style>
     </head>
     <body>
       <ul>
         <li>Альфа</li>
         <li>Бета</li>
         <li>Гамма</li>
       </ul>
     </body>
    </html>

    Псевдоэлемент :after

    Псевдоэлемент, который используется для вывода желаемого текста после содержимого элемента, к которому он добавляется. Псевдоэлемент :after работает совместно со свойством content.

    Для :after характерны следующие особенности.

    • При добавлении :after к блочному элементу, значение свойства display может быть только: block, inline, none,list-item. Все остальные значения будут трактоваться как block.
    • При добавлении :after к встроенному элементу, display ограничен значениями inline и none. Все остальные будут восприниматься как inline.

    Синтаксис

    элемент:after  { content: "текст"  }
    <html>
     <head>
      <meta charset="utf-8">
      <title>after</title>
      <style>
        p.new:after {
          content: "Новьё!"; /* Добавляемый текст */ 
          color: #333; /* Цвет текста */ 
          background-color: #fc0; /* Цвет фона */ 
          font-size: 90%; /* Размер шрифта */ 
          padding: 2px; /* Поля вокруг текста */ 
        }
      </style>
     </head>
     <body>
      <h2>Истории</h2>
      <p class="new">История о том, как необходимо было сделать могилу, 
         ее начали копать, а потом закапывать, и что из этого получилось.</p>
      <p>История о том, как возле столовой появились загадочные розовые
         следы с шестью пальцами, и почему это случилось.</p>
     </body>
    </html>
    Результат использования псевдоэлемента :after 
  • HTML урок 9. тег FORM

    Описание

    Тег <form> устанавливает форму на веб-странице. Форма предназначена для обмена данными между пользователем и сервером. Область применения форм не ограничена отправкой данных на сервер, с помощью клиентских скриптов можно получить доступ к любому элементу формы, изменять его и применять по своему усмотрению.

    Документ может содержать любое количество форм, но одновременно на сервер может быть отправлена только одна форма. По этой причине данные форм должны быть независимы друг от друга.

    Для отправки формы на сервер используется кнопка Submit, того же можно добиться, если нажать клавишу Enter в пределах формы. Если кнопка Submit отсутствует в форме, клавиша Enter имитирует ее использование.

    Когда форма отправляется на сервер, управление данными передается программе, заданной атрибутом action тега<form>. Предварительно браузер подготавливает информацию в виде пары «имя=значение», где имя определяется атрибутом name тега <input>, а значение введено пользователем или установлено в поле формы по умолчанию. Если для отправки данных используется метод GET, то адресная строка может принимать следующий вид.

    http://www.htmlbook.ru/cgi-bin/handler.cgi?nick=%C2%E0%ED%FF+%D8%E0%EF%EE%F7%EA%E8%ED&page=5

    Параметры перечисляются после вопросительного знака, указанного после адреса CGI-программы и разделяются между собой символом амперсанда (&). Нелатинские символы преобразуются в шестнадцатеричное представление (в форме %HH, где HH — шестнадцатеричный код для значения ASCII-символа), пробел заменяется на плюс (+).

    Допускается внутрь контейнера <form> помещать другие теги, при этом сама форма никак не отображается на веб-странице, видны только ее элементы и результаты вложенных тегов.

    Синтаксис

    <form action="URL">
      ...
    </form>

    Атрибуты

    accept-charset
    Устанавливает кодировку, в которой сервер может принимать и обрабатывать данные.
    action
    Адрес программы или документа, который обрабатывает данные формы.
    autocomplete
    Включает автозаполнение полей формы.
    enctype
    Способ кодирования данных формы.
    method
    Метод протокола HTTP.
    name
    Имя формы.
    novalidate
    Отменяет встроенную проверку данных формы на корректность ввода.
    target
    Имя окна или фрейма, куда обработчик будет загружать возвращаемый результат.

    Также для этого тега доступны универсальные атрибуты и события.

    Пример

    <!DOCTYPE HTML>
    <html>
     <head>
      <meta charset="utf-8">
      <title>Тег FORM</title>
     </head>
     <body>
    
     <form action="handler.php">
      <p><b>Как по вашему мнению расшифровывается аббревиатура &quot;ОС&quot;?</b></p>
      <p><input type="radio" name="answer" value="a1">Офицерский состав<Br>
      <input type="radio" name="answer" value="a2">Операционная система<Br>
      <input type="radio" name="answer" value="a3">Большой полосатый мух</p>
      <p><input type="submit"></p>
     </form>
    
     </body>
    </html>

    Тег <input>

    Тег <input> является одним из разносторонних элементов формы и позволяет создавать разные элементы интерфейса и обеспечить взаимодействие с пользователем. Главным образом <input> предназначен для создания текстовых полей, различных кнопок, переключателей и флажков. Хотя элемент <input> не требуется помещать внутрь контейнера <form>, определяющего форму, но если введенные пользователем данные должны быть отправлены на сервер, где их обрабатывает серверная программа, то указывать <form> обязательно. То же самое обстоит и в случае обработки данных с помощью клиентских приложений, например, скриптов на языке JavaScript.

    Основной атрибут тега <input>, определяющий вид элемента — type. Он позволяет задавать следующие элементы формы: текстовое поле (text), поле с паролем (password), переключатель (radio), флажок (checkbox), скрытое поле (hidden), кнопка (button), кнопка для отправки формы (submit), кнопка для очистки формы (reset), поле для отправки файла (file) и кнопка с изображением (image). Для каждого элемента существует свой список атрибутов, которые определяют его вид и характеристики. Кроме того, в HTML5 добавлено еще более десятка новых элементов.

    Атрибуты

    accept
    Устанавливает фильтр на типы файлов, которые вы можете отправить через поле загрузки файлов.
    accesskey
    Переход к элементу с помощью комбинации клавиш.
    align
    Определяет выравнивание изображения.
    alt
    Альтернативный текст для кнопки с изображением.
    autocomplete
    Включает или отключает автозаполнение.
    autofocus
    Устанавливает фокус в поле формы.
    border
    Толщина рамки вокруг изображения.
    checked
    Предварительно активированный переключатель или флажок.
    disabled
    Блокирует доступ и изменение элемента.
    form
    Связывает поле с формой по её идентификатору.
    formaction
    Определяет адрес обработчика формы.
    formenctype
    Устанавливает способ кодирования данных формы при их отправке на сервер.
    formmethod
    Сообщает браузеру каким методом следует передавать данные формы на сервер.
    formnovalidate
    Отменяет встроенную проверку данных на корректность.
    formtarget
    Определяет окно или фрейм в которое будет загружаться результат, возвращаемый обработчиком формы.
    list
    Указывает на список вариантов, которые можно выбирать при вводе текста.
    max
    Верхнее значение для ввода числа или даты.
    maxlength
    Максимальное количество символов разрешенных в тексте.
    min
    Нижнее значение для ввода числа или даты.
    multiple
    Позволяет загрузить несколько файлов одновременно.
    name
    Имя поля, предназначено для того, чтобы обработчик формы мог его идентифицировать.
    pattern
    Устанавливает шаблон ввода.
    placeholder
    Выводит подсказывающий текст.
    readonly
    Устанавливает, что поле не может изменяться пользователем.
    required
    Обязательное для заполнения поле.
    size
    Ширина текстового поля.
    src
    Адрес графического файла для поля с изображением.
    step
    Шаг приращения для числовых полей.
    tabindex
    Определяет порядок перехода между элементами с помощью клавиши Tab.
    type
    Сообщает браузеру, к какому типу относится элемент формы.
    value
    Значение элемента.

    Пример

    <!DOCTYPE HTML>
    <html>
     <head>
      <meta charset="utf-8">
      <title>Тег INPUT</title>
     </head>
     <body>
    
     <form name="test" method="post" action="input1.php">
      <p><b>Ваше имя:</b><br>
       <input type="text" size="40">
      </p>
      <p><b>Каким браузером в основном пользуетесь:</b><Br>
       <input type="radio" name="browser" value="ie"> Internet Explorer<Br>
       <input type="radio" name="browser" value="opera"> Opera<Br>
       <input type="radio" name="browser" value="firefox"> Firefox<Br>
      </p>
      <p>Комментарий<Br>
       <textarea name="comment" cols="40" rows="3"></textarea></p>
      <p><input type="submit" value="Отправить">
       <input type="reset" value="Очистить"></p>
     </form>
    
     </body>
    </html>

    Атрибут type

    button Кнопка.
    checkbox Флажки. Позволяют выбрать более одного варианта из предложенных. Пиво Чай Кофе
    file Поле для ввода имени файла, который пересылается на сервер.
    hidden Скрытое поле. Оно никак не отображается на веб-странице.
    image Поле с изображением. При нажатии на рисунок данные формы отправляются на сервер.
    password Обычное текстовое поле, но отличается от него тем, что все символы показываются звездочками. Предназначено для того, чтобы никто не подглядел вводимый пароль.
    radio Переключатели. Используются, когда следует выбрать один вариант из нескольких предложенных. Пиво Чай Кофе
    reset Кнопка для возвращения данных формы в первоначальное значение.
    submit Кнопка для отправки данных формы на сервер.
    text Текстовое поле. Предназначено для ввода символов с помощью клавиатуры.

    В HTML5 добавлены новые значения, представленные в табл. 2.

    Табл. 2. Значения type в HTML5
    Тип Описание
    color Виджет для выбора цвета.
    date Поле для выбора календарной даты.
    datetime Указание даты и времени.
    datetime-local Указание местной даты и времени.
    email Для адресов электронной почты.
    number Ввод чисел.
    range Ползунок для выбора чисел в указанном диапазоне.
    search Поле для поиска.
    tel Для телефонных номеров.
    time Для времени.
    url Для веб-адресов.
    month Выбор месяца.
    week Выбор недели.