Блог

  • Единицы измерения CSS

    Содержание:

    Единицы измерения CSS используются для указания величины в различных свойствах. Они делятся на абсолютные и относительные.

    Абсолютные единицы

    К абсолютным единицам измерения относятся сантиметры (cm), миллиметры (mm) и дюймы (in). Не смотря на то, что они предназначены для одинакового отображения элементов на веб-странице, браузер не всегда может точно вычислить физический размер дисплея или монитора, поэтому на разных устройствах элементы могут иметь разные размеры.

    .one-cm { font-size: 1cm; }
    .one-mm { font-size: 1mm; }
    .one-in { font-size: 1in; }

    Обычно эти единицы измерения используются при указании размера для вывода страниц на печать.

    Типографские единицы

    К типографским единицам измерения относятся точки (pt) и пики (pc). Точка (1pt) имеет фиксированный размер 1/72 дюйма, в то время как пика (1pc) равна 1/6 дюйма (1pc = 12pt). Эти две единицы измерения наиболее полезны в стилях, написанных для печатных версий документов, а не для использования на экранах.

    .one-point { font-size: 1pt; }
    .one-pica { font-size: 1pc; }

    Относительные единицы

    К относительным единицам измерения относятся пиксели (px) и проценты (%). Процент — единица измерения, не имеющая напрямую никакого отношения к размеру шрифта в элементе или к размеру самого элемента. Величина свойства, установленная в процентах, напрямую зависит от величины этого же свойства, установленного для родительского элемента. Например, размер шрифта задается относительно размера шрифта родительского элемента, также высота и ширина выражается в процентах относительно высоты и ширины области содержимого родительского элемента.

    .one-pixel { font-size: 1px; }
    .one-percent { font-size: 1%; }

    Пиксель — точка равная одному физическому пикселю на экране. Однако браузеры не всегда точно расчитывают размер области просмотра в пикселях.

    Рассмотрим последние модели ноутбуков, планшетов и смартфонов, оснащенные экранами с высоким разрешением. На таких устройствах браузер не соотносит единицу px с количеством физических пикселей на экране. Вместо этого он нормализует единицу px, так чтобы приблизить характеристики просмотра к традиционному настольному монитору с плотностью пикселей в районе от 96 до 120 пикселей/дюйм. В результате квадрат со стороной в 10px может отрисовыватся браузером на смартфоне так, что на каждой стороне окажется от 15 до 20 физических пикселей. Это означает, что px также оказывается относительной единицей измерения.

    Шрифтозависимые относительные единицы

    Двумя дополнительными относительными единицами измерения являются em и ex. Em — высота текущего шрифта, ex — высота символа «х» в нижнем регистре указанного шрифта.

    .one-ex { font-size: 1ex; }
    .one-em { font-size: 1em; }

    Как и проценты, em является распространенной единицей измерения, которую обычно используют для установки размера шрифта для текста на веб-странице.

    В CSS3 введены две дополнительные единицы измерения: rem и ch. Rem — размер шрифта корневого элемента (<html>), она может использоваться вместо em для предотвращения влияния размеров шрифта родителя или предков на размер шрифта текущего элемента.

    .one-rem { font-size: 1rem; }

    Единица ch равна ширине символа ноль (0) шрифта элемента. Ее использование может быть полезным для определения ширины поля, содержащего текст, потому что 1ch примерно соответствует одному символу.

    <div style="width: 5ch;">00000</div>

    Единица ch поддерживается только в Chrome 27+, Firefox 19+ и IE9. Rem поддерживается в Chrome 4+, Firefox 3.6+, IE9+, Safari 4.1+ и Opera 11.6+.

    Единицы области просмотра

    К единицам измерения области просмотра относятся vw (ширина) и vh (высота), позволяющие масштабировать элементы относительно области просмотра, то есть видимой части веб-страницы.

    width: 50vw; /* 50% от ширины области просмотра */
    height: 25vh; /* 25% от высоты области просмотра */

    Двумя дополнительными единицами являются vmin и vmax, которые задают минимальное или максимальное значение размера области просмотра.

    width: 1vmin; /* 1vh или 1vw, в зависимости от того что меньше */
    height: 1vmax; /* 1vh или 1vw, в зависимости от того что больше */

    Единицы измерения относительные области просмотра поддерживаются в Chrome 26+, Firefox 19+, IE11+, Safari 6.1+ и Opera 15+.

    Значения единиц измерения

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

    p { font-size: 0.394in; } /* десятичная дробь */
    p { margin: -1px; } /* отрицательное значение */

    Обратите внимание, что объявление не будет работать, если перед единицей измерения стоит пробел, или если единица измерения не указана (за исключением нулевого значения). Если в качестве значения используется ноль, то указание единицы измерения можно опустить.

    p { font-size: 1ex; }   /* корректно */
    p { font-size: 0; }     /* корректно */
    p { font-size: 0ex; }   /* корректно */
    p { font-size: 1 ex; }  /* неправильно */
    p { font-size: 1; }     /* неправильно */

    Всякий раз, когда CSS объявление содержит ошибку, оно игнорируется браузером, при этом остальные объявление продолжают работать.

  • Введение в HTML

    В этой главе:

    • Как браузер получает веб-страницы?
    • Зачем нужен HTML-редактор?
    • Что из себя представляет HTML-документ?
    • Что такое html?
    • Что такое теги?

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

    Как браузер получает веб-страницы?

    Для общего понимания давайте рассмотрим небольшую теорию о том, как браузер получает веб-страницы и что такое веб-сервер. Чтобы получить веб-страницу, нужно создать файл, написанный на языке HTML, и поместить его на веб-сервер. После того как вы поместили созданный файл на веб-сервер, любой браузер сможет через интернет отыскать вашу веб-страницу. Веб-сервер — это обычный компьютер с доступом в интернет, который непрерывно работает и ожидает запросов от браузеров. Любой сервер хранит веб-страницы, картинки, аудиофайлы и файлы других типов. Когда сервер получает запрос от браузера на какой-нибудь ресурс (изображения, веб-страницы и др.), он находит этот ресурс (если может определить местоположение ресурса) и отправляет его браузеру.

    взаимодействие браузера с веб-сервером

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

    Но каким образом браузер узнает о том, как именно отображать страницу? Вот здесь начинает работать язык HTML. Он говорит браузеру все о содержании и структуре страницы. Если вы выполните свою работу хорошо (код будет написан корректно и без ошибок), то ваши страницы будут одинаково отображаться во всех браузерах.

    Примечание: Браузер (от англ. Web browser — Веб-обозреватель) — программное обеспечение, используемое для просмотра веб-сайтов, то есть для запроса веб-страниц (преимущественно из Сети — интернета), их обработки, вывода в окне браузера и перехода от одной страницы к другой. К наиболее популярным браузерам относятся:Internet Explorer, Mozilla Firefox, Google Chrome, Safari, Opera.

    Обратите внимание: во время обучения вам не придется выкладывать никакие страницы на веб-сервер, все прекрасно будет работать и на вашем локальном компьютере.

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

    Зачем нужен HTML-редактор?

    Редактировать HTML-документы можно и в обычном текстовом документе, но удобнее это делать, конечно же, в специальных HTML-редакторах. HTML-редактор — это один из основных инструментов для создания и редактирования веб-страниц и сайта в целом. Основное преимущество редакторов перед обычным блокнотом состоит в том, что они осуществляют подсветку кода, что в свою очередь позволяет проще и быстрее редактировать необходимый код.

    Существует множество платных и бесплатных HTML-редакторов, к наиболее часто используемым платным относятся Dreamweaver, Visual Studio и PHPStorm. В качестве бесплатных редакторов можно использовать notepad++ и geany.

    Что из себя представляет HTML-документ?

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

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

    1. В открытом редакторе (или в обычном текстовом документе) нажимаем файл → выбираемсохранить как → внизу в текстовом поле имя файла: напишем к примеру так: mypage.html → жмем сохранить. Всё, HTML-документ создан.
    2. Кликаем правой кнопкой мыши (ПКМ) на текстовом файле → выбираем переименовать и меняем расширение с .txt на .html. Чтобы воспользоваться данным способом, нам надо сделать так, чтобы по умолчанию у всех файлов были доступны их расширения, делается это следующим образом: нажимаем Пуск → открываем Панель управления → выбираем Параметры папок → вкладка Вид → прокручиваем в самый низ и убираем галочку на Скрывать расширения для зарегистрированных типов файлов.

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

    1. Кликнуть по нему два раза левой кнопкой мыши, в этом случае веб-страница откроется в том браузере, который выбран по умолчанию.
    2. Кликнуть по нему ПКМ → наводим курсор на открыть с помощью… → выбираем нужный вам браузер.

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

    HTML-код:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <html>
      <head>
        <title>Заголовок</title>
      </head>
      <body>
        <h1>Мой первый заголовок</h1>
        <p>Мой первый абзац</p>
      </body>
    </html>

    Результат данного кода в окне браузера:

    моя первая страничка

    Чтобы отредактировать код HTML-документа, нажмите на него ПКМ → наводим курсор на открыть с помощью… → выбираем нужный вам редактор, если в списке нет нужного редактора, жмемВыбрать программу… и выбираем нужный редактор. Некоторые редакторы (для примера возьмемnotepad++) можно выбрать прямо в контекстном меню, нажав по документу ПКМ и выбрав сверхуEdit with Notepad++ (редактировать с помощью notepad++).

    Что такое HTML?

    HTML — это язык для описания структуры веб-страниц. Cтраницы, созданные с его помощью, могут быть просмотрены только при помощи специальных программ (браузеров), установленных на компьютерах пользователей.

    • Аббревиатура HTML расшифровывается как Hyper Text Markup Language (язык разметки гипертекста).
    • Запомните, он не является языком программирования, это язык разметки.
    • HTML использует теги разметки, чтобы описать структуру веб-страницы.

    Что такое теги?

    HTML теги — это ключевые слова или символы, заключенные в угловые скобки, например <body>,<p>, <h2> и т.д. Теги бывают двух видов: парные и одиночные (их также называют пустыми). Парные теги состоят из открывающего и закрывающего тега, например: <p>текст</p>. Символ «/» после угловой скобки указывает на то, что тег закрывающий. Одиночные теги состоят только из открывающего тега, например: <br>. Теги не чувствительны к регистру, поэтому могут быть написаны как прописными, так и строчными буквами: <P> означает то же самое, что и <p>. По стандарту HTML5 теги могут быть написаны в любом регистре.

    С помощью тегов браузер распознает структуру и значение вашего текста, например, они сообщают браузеру, какая часть текста является заголовком, где начинается новый абзац, что нужно подчеркнуть и где расположить изображение (картинку). Получив эту информацию, браузер использует встроенные в него по умолчанию правила о том, как отображать каждый из этих элементов. Без использования тегов браузер выведет просто сплошной поток текста, без отступов, заголовков, абзацев и т.д. Чтобы стало понятнее, рассмотрим это подробнее на примерах ниже.

    Так выглядит страница, в которой используются теги для разметки:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <html>
      <head>
        <title>Летнее меню</title>
      </head>
      <body>
        <h1>Напитки в нашем кафе</h1>
        <h3>Мультифрукт - 100р.</h3>
        <p>Фруктовый напиток, содержащий апельсиновый и ананасовый соки.</p>
        <h3>Молочный коктель - 150р.</h3>
        <p>Сливочное мороженое, перемешанное с мякотью фруктов.</p>
      </body>
    </html>

    Пример веб-страницы с использованием HTML-тегов

    То же самое, но без использования тегов:

    1
    2
    3
    4
    5
    6
    7
    Напитки в нашем кафе
    Мультифрукт - 100р.
    Фруктовый напиток, содержащий апельсиновый и ананасовый соки.
    Молочный коктель - 150р.
    Сливочное мороженое, перемешанное с мякотью фруктов.

    Пример веб-страницы без использования HTML-тегов

  • Задание к 1 уроку JS

     

    Задание:

    Написать скрипт который будет определять правильность ввода цифры в промежутке от 1 до 10 и выводить результат.

    <!DOCTYPE html>
    <html>
    <body>
    <h1>Валидация с помощью JavaScript</h1>
    <p>Пожалуйста введите число от 1 до 10:</p>
    <input id="numb" type="number">
    <button type="button" onclick="myFunction()">Submit</button>
    <p id="output"></p>
    <script>
    function myFunction() {
     //Здесь ваше решение
    }
    </script>
    </body>
    </html>

    [spoiler title=»Решение»]

    <!DOCTYPE html>
    <html>
    <body><h1>Валидация с помощью JavaScript</h1>
    <p>Пожалуйста введите число от 1 до 10:</p>
    <input id="numb" type="number">
    <button type="button" onclick="myFunction()">Submit</button>
    <p id="output"></p>
    <script> 
    function myFunction() { 
     var x, text; 
     // Получаем значение инпута с id="numb" 
     x = document.getElementById("numb").value; 
     // Если x не является числом или число больше 10
     if (isNaN(x) || x < 1 || x > 10) {
      text = "Вы ввели не число!";
     } else {
      text = "Все правильно. Молодец :)";
     } 
     document.getElementById("output").innerHTML = text;
    }
    </script>
    </body>
    </html>

    [/spoiler]

     

     

     

  • Лабораторная работа №4 Позиционирование элементов, таблица, формы

    Задание:

    1.Создать таблицу Достоинства и недостатки

    Достоинства: Недостатки
    Привлекательный внешний вид. Нелегко дрессировать и воспитывать.
    Не лают много. Могут быть агрессивны к животным, нужно приучать к ним.
    Привязчивы Охотничьи инстинкты. Нужно всерьёз заниматься обучением.

    2. Создать кнопку наверх и задать ему позиционирование fixed

    3. Блоку контент задать прозрачность 0.7

    4. На странице контакты создать форму связаться с нами и добавить яндекс карту

    яндекс карта https://tech.yandex.ru/maps/tools/constructor/

    Позиционирование элементов

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

    Принципы CSS-позиционирования
    Абсолютное позиционирование
    Относительное позиционирование

    Принципы CSS-позиционирования

    Представим окно браузера как систему координат:

    figure017

    Принципы CSS-позиционирования — в том, что вы можете расположить бокс в

    системе координат где угодно.
    Скажем, мы хотим позиционировать заголовок. При использовании боксовой модели (см.
    Урок 9) заголовок выглядит так:

    figure018

    Если мы хотим расположить его на 100px от верхней границы документа и на 200px
    слева, мы должны ввести следующий код CSS:

    h1 {
    position:absolute;
    top: 100px;
    left: 200px;
    }

    Вот результат:

    figure019

    Как видите, Позиционирование с помощью CSS — очень точная техника приразмещении элементов. Это намного проще, чем использовать таблицы, прозрачные изображения или ещё что-нибудь подобное.

    Абсолютное позиционирование

    Элемент, позиционированный абсолютно, не получает никакого пространства в
    документе. Это означает, что после позиционирования он не оставляет после себя
    пустое пространство.
    Для абсолютного позиционирования элемента свойство position
    должно иметь значение absolute. Вы можете использовать значения left, right, top
    и bottom для размещения бокса.
    В качестве примера абсолютного позиционирования мы разместим 4 бокса в углах
    документа:

    #box1 {
    position:absolute;
    top: 50px;
    left: 50px;
    }
    
    #box2 {
    position:absolute;
    top: 50px;
    right: 50px;
    }
    
    #box3 {
    position:absolute;
    bottom: 50px;
    right: 50px;
    }
    
    #box4 {
    position:absolute;
    bottom: 50px;
    left: 50px;
    }

    Относительное позиционирование

    Чтобы позиционировать элемент относительно, установите в свойстве position
    значение relative. Разница между относительным абсолютным
    позиционированием состоит в том, как обсчитывается позиционирование.
    Позиция элемента, размещаемого относительно, обсчитывается
    относительно его оригинальной позиции в документе. Это означает, что вы
    смещаете элемент вправо, влево, вверх или вниз. Таким образом, элемент всё ещё
    занимает в документе пространство после позиционирования.
    Как пример относительного позиционирования попробуем разместить три рисунка
    относительно их оригинального расположения на странице. Обратите внимание, что
    рисунки оставили после смещения пустое пространство на своих оригинальных
    позициях в документе:

    #dog1 {
    position:relative;
    left: 350px;
    bottom: 150px;
    }
    #dog2 {
    position:relative;
    left: 150px;
    bottom: 500px;
    }
    
    #dog3 {
    position:relative;
    left: 50px;
    bottom: 700px;
    }

    Наслоение с помощью z-index (Слои)

    CSS оперирует в трёх измерениях — высота, ширина и глубина. Мы работали в
    двух измерениях на протяжении всех предшествующих уроков.
    В этом уроке мы научимся создавать слои/layers. Коротко говоря — упорядочивать
    элементы так, чтобы они перекрывались.
    Для этого вы можете присвоит каждому элементу номер (z-index).
    Элемент с бóльшим номером перекрывает элемент с меньшим номером.
    Скажем, мы играем в покер и у нас — royal flush. Наша «рука» должна быть
    представлена так, чтобы каждая карта имела z-index:

    figure020

    При этом номера идут подряд (1-5), но того же результата можно добиться и при
    использовании 5 различных номеров. Важна хронологическая последовательность
    номеров (порядок).
    Вот код примера с картами:

    #ten_of_diamonds {
    position: absolute;
    left: 100px;
    top: 100px;
    z-index: 1;
    }
    
    #jack_of_diamonds {
    position: absolute;
    left: 115px;
    top: 115px;
    z-index: 2;
    }
    
    #queen_of_diamonds {
    position: absolute;
    left: 130px;
    top: 130px;
    z-index: 3;
    }
    
    #king_of_diamonds {
    position: absolute;
    left: 145px;
    top: 145px;
    z-index: 4;
    }
    
    #ace_of_diamonds {
    position: absolute;
    left: 160px;
    top: 160px;
    z-index: 5;
    }

    Это относительно простой метод, но в нём заложены большие возможности. Вы
    можете размещать текст над изображением, изображение над текстом и т. д.

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

    Создаем таблицы <TABLE><TR><TD>

    Описание

    Элемент <table> служит контейнером для элементов, определяющих содержимое таблицы. Любая таблица состоит из строк и ячеек, которые задаются с помощью тегов <tr> и <td>. Внутри <table> допустимо использовать следующие элементы: <caption><col><colgroup>,<tbody><td><tfoot><th><thead> и <tr>.

    Таблицы с невидимой границей долгое время использовались для верстки веб-страниц, позволяя разделять документ на модульные блоки. Подобный способ применения таблиц нашел воплощение на многих сайтах, пока ему на смену не пришел более современный способ верстки с помощью слоев.

    Синтаксис

    <table>  <tr>    <td></td>  </tr></table>

    Закрывающий тег обязателен.

    Пример

    <!DOCTYPE HTML>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Таблица размеров обуви</title>
      </head>
    <body>
      <table border="1">
        <caption>Таблица размеров обуви</caption>
        <tr>
            <th>Россия</th>
            <th>Великобритания</th>
            <th>Европа</th>
            <th>Длина ступни, см</th>
        </tr>
          <tr>
                <td>34,5</td><td>3,5</td><td>36</td><td>23</td>
            </tr>
            <tr>
                <td>35,5</td><td>4</td><td>36⅔</td><td>23–23,5</td>
            </tr>
            <tr>
                <td>36</td><td>4,5</td><td>37⅓</td><td>23,5</td>
            </tr>
            <tr>
                <td>36,5</td><td>5</td><td>38</td><td>24</td>
            </tr>
            <tr>
                <td>37</td><td>5,5</td><td>38⅔</td><td>24,5</td>
            </tr>
            <tr>
                <td>38</td><td>6</td><td>39⅓</td><td>25</td>
            </tr>
            <tr>
                <td>38,5</td><td>6,5</td><td>40</td><td>25,5</td>
            </tr>
            <tr>
                <td>39</td><td>7</td><td>40⅔</td><td>25,5–26</td>
            </tr>
            <tr>
                <td>40</td><td>7,5</td><td>41⅓</td><td>26</td>
            </tr>
            <tr>
                <td>40,5</td><td>8</td><td>42</td><td>26,5</td>
            </tr>
            <tr>
                <td>41</td><td>8,5</td><td>42⅔</td><td>27</td>
            </tr>
            <tr>
                <td>42</td><td>9</td><td>43⅓</td><td>27,5</td>
            </tr>
            <tr>
                <td>43</td><td>9,5</td><td>44</td><td>28</td>
            </tr>
            <tr>
                <td>43,5</td><td>10</td><td>44⅔</td><td>28–28,5</td>
            </tr>
            <tr>
            <td>44</td><td>10,5</td><td>45⅓</td><td>28,5–29</td>
            </tr>
            <tr>
                <td>44,5</td><td>11</td><td>46</td><td>29</td>
            </tr>
            <tr>
                <td>45</td><td>11,5</td><td>46⅔</td><td>29,5</td>
            </tr>
            <tr>
                <td>46</td><td>12</td><td>47⅓</td><td>30</td>
            </tr>
            <tr>
                <td>46,5</td><td>12,5</td><td>48</td><td>30,5</td>
            </tr>
            <tr>
            <td>47</td><td>13</td><td>48⅔</td><td>31</td>
            </tr>
            <tr>
                <td>48</td><td>13,5</td><td>49⅓</td><td>31,5</td>
            </tr>
        </table>
    </body>
    </html>

    Форма <FORM> </FORM> и поля ввода данных

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

    Синтаксис
    <form action=»URL»>

    </form>

    Для того чтобы дать возможность пользователю вводить данные используем тег <input>

    Тег <input>
    Описание
    Сообщает браузеру, к какому типу относится элемент формы.

    Синтаксис
    <input type=»button|checkbox|file|hidden|image|password|radio|reset|submit|text»>

    Значения type

    button Кнопка.
    checkbox Флажки. Позволяют выбрать более одного варианта из предложенных.
    file Поле для ввода имени файла, который пересылается на сервер.
    hidden Скрытое поле. Оно никак не отображается на веб-странице.
    image Поле с изображением. При нажатии на рисунок данные формы отправляются на сервер.
    password Обычное текстовое поле, но отличается от него тем, что все символы показываются звездочками. Предназначено для того, чтобы никто не подглядел вводимый пароль.
    radio Переключатели. Используются, когда следует выбрать один вариант из нескольких предложенных.
    reset Кнопка для возвращения данных формы в первоначальное значение.
    submit Кнопка для отправки данных формы на сервер.
    text Текстовое поле. Предназначено для ввода символов с помощью клавиатуры.
    color Виджет для выбора цвета.
    date Поле для выбора календарной даты.
    datetime Указание даты и времени.
    datetime-local Указание местной даты и времени.
    email Для адресов электронной почты.
    number Ввод чисел.
    range Ползунок для выбора чисел в указанном диапазоне.
    search Поле для поиска.
    tel Для телефонных номеров.
    time Для времени.
    url Для веб-адресов.
    month Выбор месяца.
    week Выбор недели.

    Пример

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Тег FORM</title>
    </head>
    <body>
    <form action="handler.php">
    <p><b>Как по вашему мнению расшифровывается аббревиатура ОС?</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=" radio "></p>
    </form>
    </body>
    </html>

     

  • Лабораторная работа №3

    Ссылки

    HTML тег a

    С помощью html тега <A> создаются ссылки на сайте. Причем как внешние, так и внутренние. Тег a встречается на каждой странице сайта. Если бы его не было, то было бы очень затруднительно перемещаться по интернету, поскольку каждый адрес страницы (URL) пришлось бы писать вручную.

    Синтаксис тега <A>

    1. <a class=«имя класса» target=«параметр» title=«подсказка» href=«URL»>анкор</a>

    Обязательным параметром у ссылки является только href=»URL», т.е. адрес ссылки. Между открывающим тегом <a> и закрывающим тегом </a> пишется анкор ссылки.

    Пример. Html код:

    1. <body>
    2. <a href=«http://zarabotat-na-sajte.ru/»>как заработать на своем сайте</a>
    3. </body>

    К открывающему тегу <a> можно прописывать различные атрибуты. Они являются не обязательными, но очень важными. Давайте рассмотрим их.

    Атрибуты тега a

    1) Атрибут target=»параметр», который может принимать следующие значения:

    _blank — открывает страницу в новом окне

    _self — загружает страницу в текущее окно

    _parent — загружает страницу во фрейм-родитель

    _top — отменяет все фреймы и загружает страницу в полном окне браузера

    Пример

    1. <body>
    2. <a target=«_blank» href=«http://iboard.kz/»>доска бесплатных объявлений в Казахстане</a>
    3. </body>

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

    2) Атрибут title=»подсказка» позволяет прописать подсказку, которая высветится при наведении курсора на ссылку.

    Пример

    1. <body>
    2. <a title=«Подсказка для ссылки на главную страницу сайта» href=«http://iboard.kz»>как заработать на своем сайте</a>
    3. </body>

    В данном случае подсказка высвечивается стандартным способом. Однако можно также сделать более красивую всплывающую подсказку: как сделать красивую всплывающую подсказку для ссылки.

    3) Атрибут class=»название класса» задает класс для ссылки со стилями. О классах Вы уже знаете из предыдущего урока (стили в html). Для тега a стили имеют небольшие отличия.

    Всё изученное в предыдущих уроках вы можете применять и для ссылок/links (например
    изменять шрифт, цвет, подчёркивание и т. д). Новым будет то, что в CSS эти
    свойства можно определять по-разному, в зависимости от того, посетили уже ссылку,
    активна ли она, находится ли указатель мыши над ссылкой. Это позволяет добавить
    интересные эффекты на ваш web-сайт. Для этого используются так называемые
    псевдоклассы.

    Что такое псевдокласс?

    Псевдокласс позволяет учитывать различные условия или события при определении
    свойств HTM-тэга.
    Рассмотрим пример. Как вы знаете, ссылки специфицируются в HTML тэгом <a>.
    В CSS мы также можем использовать a в качестве селектора:

    1. a {
    2. color: blue;
    3. }

    Ссылка может иметь разные состояния. Например, её уже посетили/visited или
    ещё нет. Можно использовать псевдоклассы для установки разных стилей посещённых
    и непосещённых ссылок.

    1. a:link {
    2. color: blue;
    3. }
    4. a:visited {
    5. color: red;
    6. }

    Используйте |a:link| и |a:visited| для непосещённых и посещённых ссылок, соответственно. Активные ссылки имеют псевдокласс a:active, и a:hover, когда указатель — над ссылкой.
    Мы рассмотрим каждый их этих четырёх псевдоклассов на примерах и с
    объяснениями.

    Псевдокласс: link.

    Псевдокласс :link используется для ссылок на страницы, которые
    пользователь ещё не посещал.
    В примере кода непосещённые ссылки — синие.

    1. a:link {
    2. color: #6699CC;
    3. }

    Псевдокласс: visited

    Псевдокласс :visited используется для ссылок на страницы,
    которые пользователь посетил.
    В примере кода посещённые ссылки — фиолетовые.

    1. a:visited {
    2. color: #660099;
    3. }

    Псевдокласс: active

    Псевдокласс :active используется для активных ссылок.
    В примере активные ссылки имеют жёлтый фон.

    1. a:active {
    2. background-color: #FFFF00;
    3. }

    Псевдокласс: hover

    Псевдокласс :hover используется для ссылок, над которыми
    находится указатель мыши.
    Это можно использовать для создания интересных эффектов. Например, если мы
    хотим, чтобы ссылки становились оранжевыми и курсивными при прохождении
    указателя над ними, то наш CSS должен выглядеть так:

    1. a:hover {
    2. color: orange;
    3. font-style: italic;
    4. }

    Эффект при нахождении указателя над ссылкой

    Эффекты для положения указателя мыши над ссылкой стали уже общим местом. Мы рассмотрим несколько дополнительных примеров для псевдокласса :hover.

    Пример 1a: Расстояние между буквами
    Расстояние между
    символами можно установить свойством letter-spacing. Это можно
    применить для ссылки:

    1. a:hover {
    2. letter-spacing: 10px;
    3. font-weight:bold;
    4. color:red;
    5. }

    Пример 1b: UPPERCASE и lowercase
    Свойство text-transform может переключать символы с верхнего на нижний регистр. Это также можно
    использовать для создания эффектов на ссылке:

    1. a:hover {
    2. text-transform: uppercase;
    3. font-weight:bold;
    4. color:blue;
    5. background-color:yellow;
    6. }

    Эти два примера показывают почти безграничные возможности комбинирования
    различных свойств. Вы можете создавать свои собственные эффекты — попробуйте!

    Удаление подчёркивания ссылок

    Обычный вопрос — как удалить подчёркивание ссылок?Вы должны точно определить, нужно ли убрать подчёркивание ссылок, так как это может значительно снизить использование вашего web-сайта. Люди привыкли видеть на web-страницах синие подчёркнутые ссылки и знают, что по ним нужно щёлкать. Даже моя мама знает это! Если вы уберёте подчёркивание и измените цвет ссылок, весьма вероятно, что это смутит пользователей и они не получат доступа ко всему содержимому вашего сайта web-сайт.

    Вообще-то удалить подчёркивание ссылок очень просто. Свойство text-decoration
    можно использовать для определения подчёркивания текста. Для удаления
    подчёркивания просто установите в text-decoration значение none.

    1. a {
    2. text-decoration:none;
    3. }

    Альтернативно можно также установить text-decoration, наряду с
    другими свойствами, для всех четырёх псевдоклассов.

    1. a:link {
    2. color: blue;
    3. text-decoration:none;
    4. }
    5. a:visited {
    6. color: purple;
    7. text-decoration:none;
    8. }
    9. a:active {
    10. background-color: yellow;
    11. text-decoration:none;
    12. }
    13. a:hover {
    14. color:red;
    15. text-decoration:none;
    16. }

     

     

    Цвет — color

    В течение предыдущих уроков мы все время использовали свойство цвета — color. Это свойство задает цвет текста внутри элемента. Свойство color является наследуемым. Рассмотрим на примере, что это значит. Пусть у нас имеется html-страница со следующим кодом:

    1. <html>
    2. <head>
    3. <title>css color (цвет)</title>
    4. <link rel=«stylesheet» type=«text/css» href=«style.css»>
    5. </head>
    6. <body>
    7. <h1>Заголовок</h1>
    8. <p>Здесь текст параграфа</p>
    9. Здесь просто текст
    10. </body>
    11. </html>

    Зададим стиль для элемента body:

    1. body{
    2. color:green;
    3. }

    Теперь весь текст на странице зеленого цвета. Если мы захотим изменить цвет какого-либо элемента, то ему нужно будет задать свой стиль. Например, сделаем цвет заголовка красным:

    1. body{
    2. color:green;
    3. }
    4. h1{
    5. color:red;
    6. }

    Теперь цвет заголовка красный, т.к. мы задали ему свойство color, а до этого он, как и все остальные элементы, был зеленым, потому что унаследовал свойство color от своего «предка» — элемента body. Таким образом, если у элемента не задано свойство color, то оно наследуется от элемента «предка». Если оно не задано и для предка, то будет осуществлен поиск вверх по дереву элементов, пока не будет найден элемент, для которого это свойство задано. Дерево элементов — структура всех элементов html-страницы, отражающая их вложенность друг в друга. Схематично дерево элементов для нашего примера выглядит так:

    css8

    В нашем примере для элементов h1 и p предком является элемент body, для которого предком является элемент html. Это и есть принцип наследования.
    Значениями свойства color могут быть именные цвета (red, blue…), шестнадцатеричные коды цветов (#FF0000) и десятичные коды цвета в модели RGB (rgb(255, 0, 0)). Итак, задать цвет текста для элемента можно тремя способами:

    1. body{
    2. color:green;
    3. }
    4. h1{
    5. color:red;
    6. }
    7. h2{
    8. color:rgb(255,0,0);
    9. }

    Фон — background На самом деле это группа свойств, так или иначе связанная с фоном. При помощи CSS фон можно задать не только странице, но и заголовку, и абзацу, и любому другому элементу. Пусть у нас есть html-страница с таким кодом:

    1. <html>
    2. <head>
    3. <title>css background (фон)</title>
    4. <link rel=«stylesheet» type=«text/css» href=«style.css»>
    5. </head>
    6. <body>
    7. Здесь содержимое документа
    8. </body>
    9. </html>

    Рассмотрим группу свойств

    background: background-color — задает цвет фона. По умолчанию не наследуется, но его можно сделать наследуемым, если в качестве значения указать значение inherit.
    Пример:

    1. body{
    2. background-color:#243CED;
    3. color:yellow;
    4. }

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

    css9

    background-image — задает фоновое изображение. Значением свойства является URL графического файла. Формат задания следующий: сначала идет обозначение функции url, а затем в круглых скобках указывается путь к файлу. Путь к файлу указывается относительно таблицы стилей.

    Пример:

    1. body{
    2. background-image:url(picture.gif);
    3. background-color:#243CED;
    4. color:yellow;
    5. }

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

    css10

    В нашем примере страница стилей style.css лежит в той же папке, что и изображение picture.gif (об относительной адресации читайте на странице абсолютная и относительная адресация). Обратите внимание, мы задали оба свойства: background-image и background-color. Это рекомендуется делать на случай, если фоновое изображение по тем или иным причинам окажется недоступным. При задании обоих свойств фоновое изображение будет лежать поверх фонового цвета.

    background-repeat — задает возможность повторения фонового изображения. В качестве фонового изображения может выступать как цельное изображение (например, шапка сайта), так и маленькое изображение, которое должно замостить собой все пространство элемента. Данное свойство как раз и указывает, повторять ли изображение и, если да, то как именно повторять. Возможны 4 варианта:

    repeat — повторять изображение по горизонтали и вертикали.
    repeat-x — повторять изображение только по горизонтали.
    repeat-y — повторять изображение только по вертикали.
    no-repeat — не повторять изображение.
    По умолчанию используется значение repeat, как мы и убедились в предыдущем примере.

    Давайте посмотрим как ведут себя остальные значения:

    1. body{
    2. background-image:url(picture.gif);
    3. background-repeat:no-repeat;
    4. background-color:#243CED;
    5. color:yellow;
    6. }

    В браузере выглядит так:

    css11

    1. body{
    2. background-image:url(picture.gif);
    3. background-repeat:repeat-x;
    4. background-color:#243CED;
    5. color:yellow;
    6. }

    В браузере выглядит так:

    css12

    1. body{
    2. background-image:url(picture.gif);
    3. background-repeat:repeat-y;
    4. background-color:#243CED;
    5. color:yellow;
    6. }

    В браузере выглядит так:

    css13

    background-attachment — указывает, должно ли фоновое изображение прокручиваться вместе с текстом элемента или оно должно оставаться неподвижным. Может принимать два значения:

    scroll — фон прокручивается вместе с текстом. Это значение используется по умолчанию.

    fixed — фоновое изображение фиксируется относительно окна браузера, и во время прокрутки текста оно остается неподвижным.

    Пример:

    1. body{
    2. background-image:url(picture.gif);
    3. background-repeat:no-repeat;
    4. background-attachment:fixed;
    5. background-color:#243CED;
    6. color:yellow;
    7. }

     

    Результат действия значения fixed непривычно для пользователя, поэтому применяйте его только когда это действительно обоснованно.

    background-position — задает расположение элемента относительно окна браузера. Значения можно задавать в процентах, в единицах длины и при помощи ключевых слов. Рассмотрим на примерах:

    1. body{
    2. background-image:url(picture.gif);
    3. background-repeat:no-repeat;
    4. background-color:#243CED;
    5. background-position:10% 30%;
    6. color:yellow;
    7. }

    Левый верхний угол изображения будет смещен на 10% от ширины окна по горизонтали и на 30% от выстоты окна по вертикали. Следует заметить, что это свойство по-разному воспринимается разными браузерами. Например, в IE7 наш пример будет выглядеть так:

    css14

    А в Opera так:

    css68

    Этой проблемы можно избежать, задавая размер в пикселах:

    1. body{
    2. background-image:url(picture.gif);
    3. background-repeat:no-repeat;
    4. background-color:#243CED;
    5. background-position:50px 50px;
    6. color:yellow;
    7. }

    Левый верхний угол изображения будет смещен на 50 пикселов по горизонтали и на 50 пикселов по вертикали:

    css15

    1. body{
    2. background-image:url(picture.gif);
    3. background-repeat:no-repeat;
    4. background-color:#243CED;
    5. background-position:center top;
    6. color:yellow;
    7. }

    Изображение будет выровнено по горизонтали — по центру, а по вертикали — по верхнему краю страницы:

    Вообще, для выравнивания по горизонтали (первый параметр) можно использовать следующие ключевые слова: left (по левому краю), center (по центру) и right (по правому краю). Для выравнивания по вертикали (второй параметр): top (по верхнему краю), center (по центру) и bottom (по нижнему краю).

     Сокращенная запись свойства background

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

    1. body{
    2. background:url(picture.gif) no-repeat #33CCFF center top;
    3. color:yellow;
    4. }

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

    OPACITY

    Краткая информация

    Значение по умолчанию 1
    Наследуется Нет
    Применяется Ко всем элементам
    Процентная запись Неприменима
    Ссылка на спецификацию http://www.w3.org/TR/css3-color/#transparency

    Версии CSS

    CSS 1 CSS 2 CSS 2.1 CSS 3

    Описание

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

    Синтаксис

    opacity: значение

    Значения

    В качестве значения выступает число из диапазона [0.0; 1.0]. Значение 0 соответствует полной прозрачности элемента, а 1, наоборот — его непрозрачности. Дробные числа вида 0.6 устанавливают полупрозрачность. Допускается писать числа без нуля впереди, вида opacity: .6.

    Пример

    1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4. <meta charset=«utf-8»>
    5. <title>opacity</title>
    6. <style>
    7. .semi {
    8. opacity: 0.5; /* Полупрозрачность элемента */
    9. }
    10. </style>
    11. </head>
    12. <body>
    13. <p>
    14. <img src=«images/igels.png» alt=«Обычный рисунок»>
    15. <img src=«images/igels.png» alt=«Полупрозрачный рисунок» class=«semi»>
    16. </p>
    17. </body>
    18. </html>

    Результат данного примера:

    Untitled-10

    Браузеры

    Firefox до версии 3.5 поддерживает нестандартное свойство -moz-opacity.

    Internet Explorer до версии 9.0 для изменения прозрачности использует фильтры, для этого браузера следует записать filter: alpha(opacity=50), где параметр opacity может принимать значение от 0 до 100

     

  • Лабораторная работа по HTML №2 — Блочная верстка

    Задание сверстать макет

    макет

     Селектор       width   height

    #header           960          100

    #nav                 960          100

    #section            ?            700

    .article                            100

    #aside              300         700

    #footer            960          100

    Справочный материал
    marg pad

    Бордюр

           Описание

    Универсальное свойство border позволяет одновременно установить толщину, стиль и цвет границы вокруг элемента. Значения могут идти в любом порядке, разделяясь пробелом, браузер сам определит, какое из них соответствует нужному свойству. Для установки границы только на определенных сторонах элемента, воспользуйтесь свойствами border-top, border-bottom, border-left, border-right.

    Синтаксис

    border: [border-width || border-style || border-color] | inherit

    Значения

    Значение border-width определяет толщину границы. Для управления ее видом предоставляется несколько значений border-style. Их названия и результат действия представлен на рис. 1.

    border

    Рис.1. Стили рамок

    border-color устанавливает цвет границы, значение может быть в любом допустимом для CSS формате.

    Пример: border: 4px double black; Можно задавать стиль одной строкой как показанов в примере.

    float:left

    В случае, если необходимо разместить два блока div в одну линию друг за другом, у первого блока указывается стиль float:left (это означает что своей левой границей данный блок должен прилипнуть к предыдущему блоку в потоке). Первый блок оказывается прижатым, например к левой границе окна браузера. Если следующему блоку в потоке указать тоже самое значение в стилях, то два блока будут выводиться на одной линии. Первый блок будет прилипать к левой границе экрана, а второй, своей левой границей, к правой границе предыдущего блока.

    Если у второго блока указать значения стиля float:right, то оба блока все так же окажутся расположенными на одной линии, но теперь первый блок будет прилипать к левой границе окна браузера, а правый — своей правой стороной к правой границе окна браузера.

    Clear- Запрет на обтекание.

    Устанавливает, с какой стороны элемента запрещено его обтекание другими элементами. Если задано обтекание элемента с помощью свойства float, то clear отменяет его действие для указанных сторон.

    Синтаксис

    clear: none | left | right | both | inherit

    Значения

    None — Отменяет действие свойства clear, при этом обтекание элемента происходит, как задано с помощью свойства float или других настроек.

    Both — Отменяет обтекание элемента одновременно с правого и левого края. Это значение рекомендуется устанавливать, когда требуется снять обтекание элемента, но неизвестно точно с какой стороны.

    Left — Отменяет обтекание с левого края элемента. При этом все другие элементы на этой стороне будут опущены вниз, и располагаться под текущим элементом.

    Right — Отменяет обтекание с правой стороны элемента.

    Inherit — Устанавливает значение родителя.

     

    float

    Блочная верстка или основы анатомии скелета сайтов

    Сайты тоже имеют свой скелет. Но о его особенностях спрашивать врачей бесполезно. Да и ветеринары тоже не в курсе строения сайта. Об этом ведомо лишь верстальщикам. Именно от них зависит строение скелета будущего ресурса. А главным способом создания костей его скелета является блочная верстка.

    Верстка сайта – ремесло для посвященных

    Есть в верстке сайта что-то таинственное. Но это до тех пор, пока не познакомишься с этим ремеслом поближе. Начинаем наше посвящение:

    Следующим этапом разработки сайта после создания его макета является верстка. Задача верстальщика перенести с помощью html кода и таблиц css скелет будущего сайта в виртуальный мир. Проще говоря, перенести размеры и пропорции ресурса в форму, понятную для браузера.

    В процессе верстки кодом html происходит разбивка «скелета» сайта на части. А с помощью css(каскадных таблиц стилей) задаются размеры его «костей», цвет и расположение.

    Различают несколько видов верстки:

    I. Табличная – ранее была основным способом верстки. В табличной верстке для задания структуры сайта используется тег <table> и его дочерние теги. Верстка с помощью таблиц позволяет наиболее пропорционально расположить все элементы дизайна относительно друг друга. Но в тоже время такой код получается слишком объемным:

    Верстка с помощью таблиц

    Также к основным недостаткам табличного кода относится его долгая загрузка и плохая индексация содержимого поисковыми системами.

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

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

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

    II. Блочная – в данный момент является основным способом верстки. В отличие от табличной блочная верстка обладает рядом преимуществ:

    • Отделение стиля элементов от кода html;
    • Возможность наложения одного слоя на другой – такая возможность во многом облегчает позиционирование элементов.
    • Лучшая индексация поисковиками;
    • Высокая скорость загрузки страницы, состоящей от взаимно независимых элементов;
    • Легкость создания визуальных эффектов (выпадающих меню, списков, всплывающих подсказок).

    Основным недостатком блочной верстки является некая «двусмысленность» понимания ее кода различными браузерами. Поэтому часто html страницы приходится «доводить» путем использования специальных хаков.

    С появлением блочной верстки родилось такое понятие, как «кроссбраузерность». Из-за различия отображения одного и того же элемента в разных браузерах верстальщикам приходится вставлять в основной html целые куски кода (хаки).

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

    Основным элементом, применяемым в блочной верстке, является тег <div>. Участок кода, отделенный этим тегом, называется слоем. Все стилевые решения вынесены за границы кода html в каскадные таблицы стилей. Доступ к ним осуществляется через идентификаторы или классы css:

    стилевые решения

    Как происходит блочная верстка?

    Перед началом верстки готовый psd макет сайта в графическом редакторе разрезают на блоки (слои). В отдельную папку помещают вырезанные фоновые картинки, которые будут прикрепляться отдельно к каждому слою:

    Как происходит блочная верстка?

    Для примера возьмем вот такой макет сайта, созданный в Photoshop. Сначала в текстовом редакторе с помощью div задаем структуру будущего ресурса и присваиваем каждому слою свой селектор id. Получается такая структура:

    макет сайта

    Затем к готовой структуре сайта на html строкой <link rel=»stylesheet» type=»text/css» href=»style.css» /> прикрепляем файл css. После чего добавляем в него стилевое описание каждого слоя, позиционирование относительно других элементов и его размеры.

    Более подробно ознакомиться со всеми свойствами css можно из технической документации к языку.

    Полный код примера index.html:

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
                <title>Пример блочной верстки</title>
    <link rel="stylesheet" type="text/css" href="style.css" />
    </head>
     
    <body>
     
    <div id="container">
    	<div id="header">
    	<h2>Шапка</h2>
    	</div>
    		 
    	<div id="navigation">
    	<h2>Блок навигации</h2>
    	</div>
    		 
    	<div id="menu">
    	<h2>Меню</h2>
    	</div>
    		 
    	<div id="content">
    	<h2>Контент</h2>
    	</div>
    		 
    	<div id="clear">
    		 
    	</div>
    							   
    	<div id="footer">
    	<h2>Подвал сайта</h2>
    	</div>
    </div>
    		 
    </body>
    </html>

    Содержимое файла style.css:

    body {
                background: #f3f2f3;
                color: #000000;
                font-family: Trebuchet MS, Arial, Times New Roman;
                font-size: 12px;
    }
     
    #container {
                background:#99CC99;
                margin: 30px auto;
                width: 900px;
                height: 600px;
    }
     
    #header {
                background: #66CCCC;
                height: 100px;
                width: 900px;
    }
     
    #navigation {
                background: #FF9999;
                width: 900px;
                height: 20px;
    }
     
    #menu {
                background: #99CC99;
                float: left;
                width: 200px;
                height: 400px;
    }
     
    #content {
                background: #d2d0d2;
                float: right;
     
                width: 700px;
                height: 400px;
    }
     
    #clear {
                clear:both;
    }
     
    #footer {
                background: #0066FF;
                height: 80px;
                width: 900px;
    }

    Вот так наш пример блочной верстки сайта выглядит в окне браузера:

    пример блочной верстки сайта

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

     

  • Лабораторная работа №1 по HTML

    Лабораторная работа №1:

    Задание сверстать страницу по ссылке 

    Ход выполнения работы:

    1. Создайте сайт (папку) и назовите «dog»

    В папку «dog» создайте папку с изображениями «images» и создайте файл index.html.

    1. Откройте index.html через NotePad++
    1. Напишите структуру html
     <html>
          <head>
            <title></title>
         </head>
        <body></body>
      </html>
    1. Пропишите все meta тэги (<meta name=»description» content=»описание сайта»> и т.д.)
    1. Сделайте верстку по по ссылке 
    1. Создайте гиперссылку на изображения и укажите путь к изображениям. 

    ___________________________________________________________________

    Форматирование шрифтов. Шрифты различаются по своему внешнему виду (начертанию), по размеру, по стилю (прямой, курсив или наклонный) и по «жирности» отображения (нормальный, полужирный).

    • font-family – приоритетный список шрифтов. Вместо названия конкретного шрифта можно использовать типовые семейств шрифтов: serif, sans-serif, cursive, fantasy, monospace.
    • font-style – стиль шрифта: нормальный (normal), курсивный (italic) или наклонный (oblique).
    • font-weight – жирность шрифта: нормальная (normal), полужирный (bold).
    • font-size – размер шрифта. Его значение может быть абсолютным (xx-small, х-small, small, medium, large, x-large, xx-large или в pt) или относительным (larger и smaller, процентах или em).
    • line-height – высота строки.

    Для сочетания всех возможных стилей для шрифта используется свойство font. Если свойство не задаётся, то это соответствует значению по умолчанию. Размер шрифта и высота строки задаются через косую черту.

    Р {font-family: Impact, «Times New Roman», serif}

    Р {font-size: l2pt}

    Р {line-height: l4pt}

    Цвет и фон. Свойства этой категории определяют цвет и фон элемен-та. Фон можно задать в виде цвета или изображения.

    • color – цвета текста. Начальное значение – transparent, которое определяет фон элемента как прозрачный.
    • background-color – цвет фона.
    • background-image – фоновое изображение.

    background-image: url(путь к файлу) | none | inherit

    text-align

    Данный стиль задает выравнивание текста внутри родительского блока. Может иметь значения left, right, center.

    Тег <img>

    Тег <img> предназначен для отображения на веб-странице изображений в графическом формате GIF, JPEG или PNG. Адрес файла с картинкой задаётся через атрибут src. Если необходимо, то рисунок можно сделать ссылкой на другой файл, поместив тег <img> в контейнер <a>. При этом вокруг изображения отображается рамка, которую можно убрать, добавив атрибут border=»0″ в тег <img>.

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

    Синтаксис

    HTML <img src=»URL» alt=»альтернативный текст»>
    XHTML <img src=»URL» alt=»альтернативный текст» />

    Атрибуты

    alt — Альтернативный текст для изображения.

    width – Ширина изображения.

    height – Высота изображения.

    Src — Путь к графическому файлу.

    Закрывающий тег

    Не требуется.

    Пример

    <img src=»images/girl.png» width=»189″ height=»255″ alt=»Фото моей дочки»>

    ТЕГ <a>

    Тег <a> является одним из важных элементов HTML и предназначен для создания ссылок. В зависимости от присутствия атрибутов name или href тег <a> устанавливает ссылку или якорь. Якорем называется закладка внутри страницы, которую можно указать в качестве цели ссылки. При использовании ссылки, которая указывает на якорь, происходит переход к закладке внутри веб-страницы.

    Для создания ссылки необходимо сообщить браузеру, что является ссылкой, а также указать адрес документа, на который следует сделать ссылку. В качестве значения атрибута href используется адрес документа (URL, Universal Resource Locator, универсальный указатель ресурсов), на который происходит переход. Адрес ссылки может быть абсолютным и относительным. Абсолютные адреса работают везде и всюду независимо от имени сайта или веб-страницы, где прописана ссылка. Относительные ссылки, как следует из их названия, построены относительно текущего документа или корня сайта.

    Синтаксис

    <a href=»URL»>…</a>

    <a name=»идентификатор»>…</a>

    Атрибуты

    Title — Добавляет всплывающую подсказку к тексту ссылки.

    Href — Задает адрес документа, на который следует перейти.

    Списки <UL> <LI>

    Тег <ul> устанавливает маркированный список. Каждый элемент списка должен начинаться с тега <li>. Если к тегу <ul> применяется таблица стилей, то элементы <li> наследуют эти свойства.

    Синтаксис

    <ul>

    <li>элемент маркированного списка</li>

    </ul>

    Пример

     

    <!DOCTYPE HTML>
    
    <html>
    
                <head>
    
                            <meta charset="utf-8">
    
                            <title>Тег UL</title>
    
               </head>
    
     <body>
    
      <ul>
    
                                        <li>Чебурашка</li>
    
                                       <li>Крокодил Гена</li>
    
                                       <li>Шапокляк</li>
    
                            </ul>
    
     </body>
    
    </html>
  • Задание по HTML к двенадцатому уроку

    Пример к 12 уроку

    HTML код

    <html>
        <head> 
           <title>12 урок</title>
         <meta charset="utf-8">
        <link rel="stylesheet" href="style.css">
        <link rel="stylesheet" href="style.css" media="screen">
        <meta name="viewport" content="width=device-width, initial-scale=1" >		
      </head>
        
      <body> 
      
        <div class="container">
        <div class="row">
        <div class="cols col-2">
          <div class="logo">
            <a href="index.html"><img src="images/logo.png"></a>
          </div>
        </div>
        <div class="cols col-10">
          <div class="menu">
            <ul>
            <li><a href="index.html">Главная</a></li>
            <li><a href="index.html">Главная</a></li>
            <li><a href="index.html">Главная</a></li>
            <li><a href="index.html">Главная</a></li>
            </ul>
          </div>
        </div>
        </div>
        <div class="row">
          <div class="cols col-6">
            <div class="cols col-4">Четыре</div>
            <div class="cols col-4">Четыре</div>
            <div class="cols col-4">Четыре</div>
          </div>
          <div class="cols col-6">
            <div class="cols col-3">Три</div>
            <div class="cols col-3">Три</div>
            <div class="cols col-3">Три</div>
            <div class="cols col-3">Три</div>
          </div>
        </div>
        
        <div class="row">
          <div class="cols col-4">Четыре</div>
          <div class="cols col-4">Четыре
          В Алматы пассажиры жалуются на многочасовые ожидания автобусов25
          В городе не хватает водителей общественного транспорта
          10:30
          42 начальника участков BI Group получили льготные квартиры
          Цена льготных квартир составляет 150 000 тенге за кв.метр
          10:26
          Как рост акцизов на бензин скажется на экономике страны14
          Разные ставки акцизов создают неравные условия для поставщиков ГСМ
          </div>
          <div class="cols col-4">Четыре</div>
        </div>	
        <div class="row">
          <div class="cols col-3">Три</div>
          <div class="cols col-3">Три</div>
          <div class="cols col-3">Три</div>
          <div class="cols col-3">Три</div>
        </div>
        <div class="row">
          <div class="cols col-8">Восемь</div>
          <div class="cols col-4">Четыре</div>
          <div class="cols col-3">Три</div>
        </div>
        
        
        </div>
        
      </body>
    </html>

    СSS код

    *{
     margin:0;
     padding:0;
     box-sizing:border-box;
    }
    ul,li{
     margin:0;
    }
    body{
     background:#eee;
    }
    .container{
     max-width:1200px;
     margin:0 auto;
    }
    .container .cols{
     float:left;
     padding:20px;
     text-align:center;
     background:#ff0;
     border:2px #000 solid;
    }
    .container .cols.col-1{width:8.333333333333333% ;}
    .container .cols.col-2{width:16.66666666666667% ;}
    .container .cols.col-3{width:25% ;}
    .container .cols.col-4{width:33.33333333333333%;}
    .container .cols.col-5{width:41.66666666666667% ;}
    .container .cols.col-6{width:50%;}
    .container .cols.col-7{width:58.33333333333333% ;}
    .container .cols.col-8{width:66.66666666666667% ;}
    .container .cols.col-9{width:75% ;}
    .container .cols.col-10{width:83.33333333333333% ;}
    .container .cols.col-11{width:91.66666666666667%;}
    .container .cols.col-12{width:100%;}
    
    .row:before,.row:after,
    .container:before,.container:after,
    .clear:before,.clear:after
    {content:" ";display:table;}
    .container:after,.row:after,.clear:after{clear:both;}
    
    .logo{
     margin: 2.5px;
    }
    .logo img{
     width:100px;
    }
    .menu{
     float:right;
     margin: 10px 0;
    }
    
    .menu li{
     float:left;
    }
    .menu a{
     text-decoration:none;
     color:#fff;
     padding:20px 20px;
     background:#888;
    }
    .menu a:hover{
     background:#ff0;
    }
    @media screen and (max-width:600px){
    .container .cols.col-1,
    .container .cols.col-2,
    .container .cols.col-3,
    .container .cols.col-4,
    .container .cols.col-5,
    .container .cols.col-6{width:50%;}
    .container .cols.col-7{width:58.33333333333333% ;}
    .container .cols.col-8{width:66.66666666666667% ;}
    .container .cols.col-9{width:75% ;}
    .container .cols.col-10{width:83.33333333333333% ;}
    .container .cols.col-11{width:91.66666666666667%;}
    .container .cols.col-12{width:100%;}
    }
    @media screen and (max-width:500px){
    .container .cols.col-1,
    .container .cols.col-2,
    .container .cols.col-3,
    .container .cols.col-4,
    .container .cols.col-5,
    .container .cols.col-6,
    .container .cols.col-7,
    .container .cols.col-8,
    .container .cols.col-9,
    .container .cols.col-10,
    .container .cols.col-11,
    .container .cols.col-12{width:100%;}

     

  • HTML урок 12. Адаптивная модульная сетка

    Ссылка на скачивание BOOTSTRAP

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

    Право выбора остается за вами: использовать для создания макета фиксированную или плавающую сетку (Fluid Grids). В этом статье мы подробно расскажем о плавающей сетке и ее важности в адаптивном дизайне.

    Что такое Fluid Grid?

    Прежде чем начинать думать о конкретных проектах, важно для начала понять, что такое плавающая сетка. Думаю, наилучшее определение Fluid (жидкости) приведено в Википедии:

    Жидкость представляет собой вещество, которое постоянно изменяется (перетекает) под воздействием приложенного усилия – Википедия.

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

    Независимо от того, какое устройство использует пользователь или какой размер экрана у этого устройства, компоненты плавающего дизайна перетекают и адаптируются к ним.

    Важность Fluid Grid

    В адаптивных сетках мы определяем размеры на основе пикселей. Поэтому для некоторых видов устройств нам придется корректировать ширину и высоту вручную.

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

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

    Преимуществом Fluid Grid является то, что мы можем установить максимальную ширину, и она все равно будет работать на больших экранах, благодаря расчетам на основе процентов.

    Как работает Fluid Grid?

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

    Это все, что касается разработки на основе пикселей. Теперь нам нужно создать конструкцию на основе процентных соотношений. Она и известна под названием Fluid Grid (плавающая сетка).

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

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

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

    Dusty Cartridge

    Dusty Cartridge

    Palantir.net

    Palantir.net

    Dress Responsively

    Dress Responsively

    Системы Fluid Grid и генераторы

    Создание плавающей сетки с нуля – это непростая задача, которая потребует много времени и усилий. Поэтому намного мудрее взять за основу для нашего макета существующие CSS Grid Framework или Grid Generator.

    Ниже приведен перечень некоторых бесплатных CSS-систем Fluid Grid и генераторов:

    Большинство CSS-фреймворков имеют дополнительные встроенные функции и проверены на совместимость со многими из существующих браузеров. Цель этого статьи раскрыть полностью от и до, что такое Fluid Grids и как они работают.

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

    Чтобы создать плавающую сетку, которая подойдет под наши требования, я буду использовать Variable Grid System. Перейдите по этой ссылке и установите значения переменных. Я буду использовать следующие значения.

    Ширина столбца – 60.
    Количество столбцов – 12.
    Расстояние между столбцами – 20.

    Demo

    Затем загружаем плавающую версию файла CSS. Теперь откройте его в вашем любимом текстовом редакторе и найдите строку Grid >> 12 Columns. Приведенный ниже код отображает содержимое разделаGrid >> 12 Columns:

    .container_12.grid_1{ width:6.333%; }.container_12.grid_2{ width:14.667%; }.container_12.grid_3{ width:23.0%; }.container_12.grid_4{ width:31.333%; }.container_12.grid_5{ width:39.667%; }.container_12.grid_6{ width:48.0%; }.container_12.grid_7{ width:56.333%; }.container_12.grid_8{ width:64.667%; }.container_12.grid_9{ width:73.0%; }.container_12.grid_10{ width:81.333%; }.container_12.grid_11{ width:89.667%; }.container_12.grid_12{ width:98.0%; }

    Как видите, container_12 является основным контейнером. Каждый элемент нашего дизайна должен располагаться внутри этого контейнера, принадлежащего классу container_12.

    Тогда различные размеры элементов, определяющиеся в процентном отношении к основному контейнеру, задаются классами .grid_1 , .grid_2 … .grid_n. Плавающая сетка строится с помощью столбцов, которые называются плавающими столбцами.

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

    В нашей сетке у нас есть 12 плавающих столбцов. Давайте посмотрим, как эти столбцы укладываются в структуру:

    12 плавающих столбцов

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

    <meta charset=«utf-8» /><meta name=«viewport» content=«width=device-width, initial-scale=1, maximum-scale=1» /> Fluid Grid with Fluid Columns <link href=«style.css» rel=«stylesheet» type=«text/css» /></pre><div class=«container_12» id=«single-columns»><div class=«grid_1»><span>1</span></div><div class=«grid_1»><span>1</span></div><div class=«grid_1»><span>1</span></div><div class=«grid_1»><span>1</span></div><div class=«grid_1»><span>1</span></div><div class=«grid_1»><span>1</span></div><div class=«grid_1»><span>1</span></div><div class=«grid_1»><span>1</span></div><div class=«grid_1»><span>1</span></div><div class=«grid_1»><span>1</span></div><div class=«grid_1»><span>1</span></div><div class=«grid_1»><span>1</span></div></div><div class=«container_12» id=«double-columns»><div class=«grid_2»><span>2</span></div><div class=«grid_2»><span>2</span></div><div class=«grid_2»><span>2</span></div><div class=«grid_2»><span>2</span></div><div class=«grid_2»><span>2</span></div><div class=«grid_2»><span>2</span></div></div><pre>

    Каждый набор компонентов содержится внутри элемента класса class container_12. Чтобы создавать плавающие колонки определенной ширины, мы можем использовать внутри контейнера класс grid_n. Если мы используем класс grid_1, то получаем 1/12 ширины исходной сетки, если grid_2 — то 2/12.

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

    Вложенные плавающие столбцы

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

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

    Demo

    Demo

    Приведенный выше макет содержит 2 строки. Первая строка разделена на 2 секции по 6 столбцов, и каждая из их этих двух секций в свою очередь делится на 4 секции по 3 столбца.

    Аналогично вторая строка разделена на 3 секции по 4 столбца, и каждая из этих 3-х секций снова делится на 3 секции по 4 столбца. Таким образом, вы создаете вложенные столбцы в сетке. Давайте рассмотрим код описанной выше структуры:

    <meta charset=«utf-8» /><meta name=«viewport» content=«width=device-width, initial-scale=1, maximum-scale=1» /> Nested Fluid Columns <link href=«style.css» rel=«stylesheet» type=«text/css» /></pre><div class=«container_12»><div class=«grid_6»><div class=«container_12»><div class=«grid_3»><span>3</span></div><div class=«grid_3»><span>3</span></div><div class=«grid_3»><span>3</span></div><div class=«grid_3»><span>3</span></div></div></div><div class=«grid_6»><div class=«container_12»><div class=«grid_3»><span>3</span></div><div class=«grid_3»><span>3</span></div><div class=«grid_3»><span>3</span></div><div class=«grid_3»><span>3</span></div></div></div></div><div class=«container_12»><div class=«grid_4»><div class=«container_12»><div class=«grid_4»><span>4</span></div><div class=«grid_4»><span>4</span></div><div class=«grid_4»><span>4</span></div></div></div><div class=«grid_4»><div class=«container_12»><div class=«grid_4»><span>4</span></div><div class=«grid_4»><span>4</span></div><div class=«grid_4»><span>4</span></div></div></div><div class=«grid_4»><div class=«container_12»><div class=«grid_4»><span>4</span></div><div class=«grid_4»><span>4</span></div><div class=«grid_4»><span>4</span></div></div></div></div><pre>

    Сначала мы создаем основной контейнер и делим его на столбцы, как мы делали в предыдущем разделе. Внутри столбца нам нужно создать еще один контейнер с классом container_12 для вложенных столбцов. Теперь мы получаем еще 12 столбцов в базовых шести столбцах.

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

    Дизайн на основе Fluid Grid

    Большинство начинающих дизайнеров думают, что просто использовав адаптивный CSS-фреймворк, они получат адаптивный дизайн. К сожалению, не все так просто. Плавающая сетка будет адаптироваться к изменениям размеров окна браузера или устройства.

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

    Рассмотрим следующий пример:

    Fluid Grid

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

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

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

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

    Шаблон главной страницы 

    Примеры адаптивной верстки по ссылке1  и ссылке2  

    код HTML

    <html>
        <head> 
           <title>4 урок</title>
         <meta charset="utf-8">
        <link rel="stylesheet" href="style.css">
        <link rel="stylesheet" href="style.css" media="screen">
        <meta name="viewport" content="width=device-width, initial-scale=1" >		
      </head>
        
      <body> 
      <div class="wrapper">
        <div class="header">Блочный тег</div>
        <div class="sidebar"></div>
        <div class="content">
          <div class="col-3"><img src="images/colorwebdesign.jpg"></div>
          <div class="col-3">Блочный тег</div>
          <div class="col-3">Блочный тег</div>
          <div class="col-2"><img src="images/colorwebdesign.jpg"></div>
          <div class="col-2">Блочный тег</div>
          <div class="col-4">Блочный тег</div>
          <div class="col-4">Блочный тег</div>
          <div class="col-4">Блочный тег</div>
          <div class="col-4"><img src="images/colorwebdesign.jpg"></div>
        </div>
        <div class="footer"></div>
      </div>	
      </body>
    </html>

    код CSS

    body{
      font:100%/1.5em Arial,sans-serif;
      word-wrap: break-word; 
    }
    .wrapper{
      max-width:90%;
      margin:0 auto;
    }
    .header{
      width:100%;
      clear:both;
      height:100px;
      background:#222;
      
    }
    
    
    .sidebar{
      width:300px;
      float:left;
      height:300px;
      background:#444;
      
    }
    .content{
      width:calc(100% - 300px);
      float:left;
      background:#777;
      
    }
    .footer{
      width:100%;
      clear:both;
      height:100px;
      background:#222;
    }
    .col-2{
      margin:2%;
      width:46%;
      float:left;
      background:blue;
      color:#fff;
      height:300px;
    }
    .col-3{
      margin:2%;
      width:29%;
      float:left;
      background:green;
      color:#fff;
      height:300px;
    }
    .col-4{
      margin:2%;
      width:21%;
      float:left;
      background:pink;
      color:#fff;
      height:300px;
    }
    img{
      max-width:100%;
      width:auto;
    }
    
    

     

    Модальное окно

    <!DOCTYPE html>
    <head>
      <title>Creating a modal window with HTML5 &amp; CSS3</title>
      
      <style>
      .modalDialog {
        position: fixed;
        font-family: Arial, Helvetica, sans-serif;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        background: rgba(0,0,0,0.8);
        z-index: 99999;
        opacity:0;
        -webkit-transition: opacity 400ms ease-in;
        -moz-transition: opacity 400ms ease-in;
        transition: opacity 400ms ease-in;
        pointer-events: none;
      }
    
      .modalDialog:target {
        opacity:1;
        pointer-events: auto;
      }
    
      .modalDialog > div {
        width: 400px;
        position: relative;
        margin: 10% auto;
        padding: 5px 20px 13px 20px;
        border-radius: 10px;
        background: #fff;
        background: -moz-linear-gradient(#fff, #999);
        background: -webkit-linear-gradient(#fff, #999);
        background: -o-linear-gradient(#fff, #999);
      }
    
      .close {
        background: #606061;
        color: #FFFFFF;
        line-height: 25px;
        position: absolute;
        right: -12px;
        text-align: center;
        top: -10px;
        width: 24px;
        text-decoration: none;
        font-weight: bold;
        -webkit-border-radius: 12px;
        -moz-border-radius: 12px;
        border-radius: 12px;
        -moz-box-shadow: 1px 1px 3px #000;
        -webkit-box-shadow: 1px 1px 3px #000;
        box-shadow: 1px 1px 3px #000;
      }
    
      .close:hover { background: #00d9ff; }
      </style>
    </head>
    
    <body>
    
    <a href="#openModal">Open Modal</a>
    
    <div id="openModal" class="modalDialog">
      <div>
        <a href="#close" title="Close" class="close">X</a>
        <h2>Modal Box</h2>
        <p>This is a sample modal box that can be created using the powers of CSS3.</p>
        <p>You could do a lot of things here like have a pop-up ad that shows when your website loads, or create a login/register form for users.</p>
      </div>
    </div>
    
    </body>
    </html>

     

    Задание

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

    1. Для начала создать обычное изображение, которое будет растягиваться на всю ширину экрана.

    <div>
        <img src="../images/1.jpg">
    </div>
    

    Предельно просто. Всего лишь обернули изображение в контейнер.

    div {
        width: 100%;
        text-align: center;
    }
    div img {
        width: 100%;
        height: auto;
    }
    

    Мы задаем ширину изображению, равную ширине контейнера div. Благодаря этому, если уменьшается div, то уменьшается img.
    В итоге мы получили изображение, которое растягивается на весь экран, будь-то экран 320*240 пикселей или экран с разрешением 1920*1080 пикселей.

    Untitled-68

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

    div {
        margin: 0 auto;
        width: 1000px;
        max-width: 90%; /* контейнер не превышает 90% ширины экрана */
        min-width: 500px;
    }
    div img {
        max-width: 100%;
        height: auto;
    }
    

    Теперь контейнер, а следовательно и изображение будут изменяться в разумных пределах от 500 до 1000 пикселей по ширине.

    Фотогалерея
    2. Попробуем создать минигалерею.
    Будем использовать уже известные нам принципы.

    <div class="image_gallery">
        <div>
            <img src="../images/1.jpg" title="Деревья, листики..." />
        </div>
        <div>
            <img src="../images/2.jpg" title="Зима"  />
        </div>
        <div>
            <img src="../images/3.jpg" title="Озеро"  />
        </div>
        <div>
            <img src="../images/4.jpg" title="Райский остров"  />
        </div>
    </div>
    

    В HTML мы лишь добавили несколько изображений и завернули все в один div.

    div.image_gallery {
        margin: 0 auto;
        width: 1000px;
        text-align: center;
        max-width: 90%; /* контейнер не превышает 90% ширины экрана */
        min-width: 500px;
    }
    img {
        float: left;
        max-width: 48%;
        height: auto;
        padding: 1%; /* небольшие оступы для изображений */
    }
    

    Каждое изображение в галерее теперь будет изменять свой размер в зависимости от контейнера. Так же мы добавили небольшой отступ по 1% с каждой стороны для красоты.

    Untitled-69

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

     

    Задание 2

    Доработать галерею используя медиа запросы:

    <h1>...</h1>
    <div class="image_gallery">
        <div>
            <img src="../images/1.jpg" title="Деревья, листики..." />
        </div>
        <div>
            <img src="../images/2.jpg" title="Зима"  />
        </div>
        ...
    </div>
    h1 {
        font-size: 24px;
        text-align: center;
    }
    div.image_gallery {
        margin: 0 auto;
        width: 1000px;
        text-align: center;
        max-width: 90%; /* контейнер не превышает 90% ширины экрана */
        min-width: 500px;
    }
    img {
        float: left;
        max-width: 31%;
        height: auto;
        padding: 1%; /* небольшие оступы для изображений */
    }
    

    Что получилось? Смотрим:

    Untitled-70

    При небольшом разрешении картинки становятся слишком мелкими, а текст в заголовке огромным.
    Решим нашу проблему!

    /* прошлый CSS */
    h1 {}
    div.image_gallery {}
    img {}
     
    @media screen and (max-width: 768px) { /* разрешение планшета */
        h1 {
            font-size: 20px;
        }
        div.image_gallery {
            min-width: 320px;
        }
        img {
            max-width: 48%; /* 2 изображения в ряд */
            height: auto;
            padding: 1%; /* небольшие оступы для изображений */
        }
    }
    

    Мы добавили проверку на разрешение. Если разрешение экрана меньше или равно 768 пикселей, то наша галерея перестраивается. В ряд у нас умещается теперь по 2 изображения (width 48% + padding 2%).

    Untitled-71

    В результате фотографии на экране планшета стали выглядеть намного лучше!

    Теперь разберемся с экраном поменьше.

    @media screen and (max-width: 480px) { /* разрешение смартфона */
        h1 {
            min-width: 320px;
            font-size: 16px;
        }
        div.image_gallery {
            width: 320px;
            min-width: 320px;
        }
        img {
            max-width: 98%;
            height: auto;
            padding: 1%; /* небольшие оступы для изображений */
        }
    }
    

    После добавления этого кода при разрешении экрана меньше либо равного 480 пикселей, изображения вновь перестраиваются и теперь отображаются по одному в ряд.

    Untitled-72

    Итог
    Теперь мы имеет фотогалерею, которая удобно подстраивается под устройства. При желании можно добавить и другие разрешения (320 пкс, 960 пкс и т.д.).
    Ничего сложного и такая хорошая возможность подстроить наш сайт под разные экраны!

     

    <h1>...</h1>
    <div class="image_gallery">
        <div>
            <img src="../images/1.jpg" title="Деревья, листики..." />
        </div>
        <div>
            <img src="../images/2.jpg" title="Зима"  />
        </div>
        ...
    </div>
    h1 {
        font-size: 24px;
        text-align: center;
    }
    div.image_gallery {
        margin: 0 auto;
        width: 1000px;
        text-align: center;
        max-width: 90%; /* контейнер не превышает 90% ширины экрана */
        min-width: 500px;
    }
    img {
        float: left;
        max-width: 31%;
        height: auto;
        padding: 1%; /* небольшие оступы для изображений */
    }
    

    Что получилось? Смотрим:

    Untitled-70

    При небольшом разрешении картинки становятся слишком мелкими, а текст в заголовке огромным.
    Решим нашу проблему!

    /* прошлый CSS */
    h1 {}
    div.image_gallery {}
    img {}
     
    @media screen and (max-width: 768px) { /* разрешение планшета */
        h1 {
            font-size: 20px;
        }
        div.image_gallery {
            min-width: 320px;
        }
        img {
            max-width: 48%; /* 2 изображения в ряд */
            height: auto;
            padding: 1%; /* небольшие оступы для изображений */
        }
    }
    

    Мы добавили проверку на разрешение. Если разрешение экрана меньше или равно 768 пикселей, то наша галерея перестраивается. В ряд у нас умещается теперь по 2 изображения (width 48% + padding 2%).

    Untitled-71

    В результате фотографии на экране планшета стали выглядеть намного лучше!

    Теперь разберемся с экраном поменьше.

    @media screen and (max-width: 480px) { /* разрешение смартфона */
        h1 {
            min-width: 320px;
            font-size: 16px;
        }
        div.image_gallery {
            width: 320px;
            min-width: 320px;
        }
        img {
            max-width: 98%;
            height: auto;
            padding: 1%; /* небольшие оступы для изображений */
        }
    }
    

    После добавления этого кода при разрешении экрана меньше либо равного 480 пикселей, изображения вновь перестраиваются и теперь отображаются по одному в ряд.

    Untitled-72

    Итог
    Теперь мы имеет фотогалерею, которая удобно подстраивается под устройства. При желании можно добавить и другие разрешения (320 пкс, 960 пкс и т.д.).
    Ничего сложного и такая хорошая возможность подстроить наш сайт под разные экраны!