Добро пожаловать в квест по основам HTML! Нарушение правил квеста и/или грубые ошибки, приводят к исключению из квеста без уведомления. Письма с содержанием, отличным от простого URL на сайт с результатом остаются без ответа — экономьте время
Задание 1. Создайте сайт агентства недвижимости.
- Создайте страницы сайта (index.html — страница «Главная», about.html — страница «О компании» (и сотрудниках), catalog.html — страница «Каталог» с перечнем объектов недвижимости, contact.html — страница «Контакты» с контактными данными, service.html — страница «Услуги» о предоставляемых услугах).
- Создайте папки css (style.css, mobile.css), img (изображения должны быть выдержаны в официальном стиле, подобраны по размеру и указываться в коде с альтернативным текстом), js (script.js). Внимание! Примечание: style.css в задании 1 не трогаем, потому что задание по стилям будет во втором задании
- Страницы должны быть заполнены максимально правдоподобным текстом (подсмотрите на существующих сайтах агентств). К каждой странице должен быть привязаны: style.css и mobile.js из папки css, script.js из папки js, а изображения из папки img.
- На каждой странице должно быть одинаковое горизонтальное меню в элементе <nav>. Ссылки должны корректно вести на соответствующие страницы
- На страницах должны быть прописаны title, h1 meta с кодировкой UTF-8
- Код каждой страниц должен быть валидным
- Результат выполнения задания должен быть прислан как ссылка на общедоступный сайт (ссылка на свой домен или github pages)
- Все HTML-файлы должны лежать в корневой папке сайта
Задание 2. Оформление сайта.
- Подберите цветовую гамму страниц по любому из примеров https://www.templatemonster.com/ru/category/real-estate-website-templates (вместе в решением задания, пришлите ссылку на выбранный вариант)
- Создайте вёрстку для каждой страницы сайта. Главные блоки внутри body должны иметь класс container. (Убедитесь, что есть верхняя часть страницы, меню, основное содержимое, подвал header, nav, main, footer).
- На странице каталога квартир, в главной области страницы, вставьте объекты недвижимости с классом «product»: кол-во комнат квартиры (.product-level), описание квартиры (.product-desc), изображение квартиры (.product-img), стоимость квартиры (.product-type-house) и валюта (.product-price-currency), тип дома (.product-type-house) , этаж (.product-level). Изображения квартир можно взять на любом бесплатном стоке изображений, например, http://www.freedigitalphotos.net, по ключевым словам room, flats, apartments и др.) Можно подсмотреть, как всё устроено, у существующих агентств недвижимости.
Категории у каждой квартиры должны быть гиперссылками с заглушками в виде #.<div class="product"> <h2 class="product-name">Двухкомнатная квартира</h2> <span class="product-desc">Описание квартиры</span> <img src="https://вашсайт.io/img/dvuh.jpg" class="product-img" alt="ваш альтернативный текст"> <div class="offer"> <span class="product-price">36990</span> <span class="product-price-currency">RUB</span> </div> <span class="product-address"><a href="#">ул.Победы</a></span> <span class="product-map"><a href="#">Показать на карте</a></span> <span class="product-rooms">2-х комнатная</span> <span class="product-square">45 кв.м.</span> <span class="product-type-house">Кирпичный</span> <span class="product-level">4 этаж</span> </div>
- Объекты недвижимости должны быть расположены в табличном виде, но свёрстаны не таблицей — только блочная вёрстка (можно display: inline-block или table/table-cell).
- На странице каталога, где расположены изображения квартир, создайте форму поиска по квартирам (она должна располагаться над перечнем квартир): однострочное поле «Общая площадь», два однострочных поля для ценового диапазона (от и до), набор из 5 флажков с указанием сколько комнат нужно (студия, одно-, двух-, трёх- и четырёхкомнатная), поле выбора select («Восток», «Север», «Запад», «Юг»)7.
- На странице контактов вставьте Яндекс.Карту на адрес агентства.
- Оформите горизонтальное меню при помощи CSS (без маркеров, подчеркивание только при наведении, измените стандартную цветовую гамму, обнулите у ol, li все поля и отступы). Примечание: меню должно быть максимально похожим на меню выбранного шаблона (js-эффекты не обязательны для реализации).
Задание 3. Доведение сайта.
- Ширина общего для страницы контейнера должна составлять 1024px, а сам контейнер – центрирован (margin).
- На страницах необходимо использовать элементы: strong, em, ins по необходимости. Текст должен быть немного разбавлен изображениями по тематике сайта.
- В начале css файла почистите все поля и отступы: * {margin: 0; padding: 0; } После очистки назначьте элементам поля и отступы. Если не сделали ранее, укажите box-sizing:border-box
- Создайте в подвале сайта три блока меню с ссылками заглушками – по аналогии с http://specialist.ru.
- Для заголовка первого уровня (или других существующих на странице заголовокв) подключите шрифт с сервиса https://fonts.google.com/ Важно: максимально придерживаться выбранного дизайна.
- Во всех title на страницах добавьте название вашего агенства (Название страницы, потом название агенства).
- На главной странице сайта подключите «Карусель»:
https://getbootstrap.com/examples/carousel/,
https://getbootstrap.com/javascript/#carousel,
https://www.w3schools.com/bootstrap/bootstrap_carousel.asp.
Eсли сделаете на чистом HTML+CSS — хорошо. Но можете и познакомиться с каким-нибудь JavaScript. - На странице контактов создать форму связи, содержащую поля с именем, телефоном, емейлом и сообщением клиента
- Перед отправкой задания: проверить на валидаторе HTML и CSS свой код, сравнить схожесть выполненной работы с выбранным дизайном, сверить цвета текста, кнопок, ссылок — они должны максимально соотноситься
Задание 4. Создайте мобильную версию сайта.
- Напишите CSS, который при помощи @media queries оформит мобильную версию вашего сайта:
-ширина до 768px http://getbootstrap.com/css/#grid;
-колонку сделайте одну;
-основное меню — одно;
-минимум инфы на основных страницах — скрывайте лишнее при помощи display и селекторов;
-в футере в мобильной версии можно оставить только копирайт и номер телефона. - Проверьте работу на отладчике/валидаторе.
- Проверьте работу сайта https://developers.google.com/speed/pagespeed/ (может не сработать на домене третьего уровня).
Задание 5. Создайте микроразметку на сайте.
- Изучите понятие микроразметки:
https://yandex.ru/support/webmaster/schema-org/what-is-schema-org.xml?lang=ru - Создайте микроразметку для недвижимости (в примере убраны гиперссылки, но они должны оставаться в вашем коде).
<div itemscope itemtype="http://schema.org/Product" class="product"> <h2 itemprop="name" class="product-name">Двухкомнатная квартира</h2> <span itemprop="description" class="product-desc">Описание квартиры</span> <img src="https://вашсайт.io/img/dvuh.jpg" itemprop="image" class="product-img" alt=""> <div itemprop="offers" itemscope itemtype="http://schema.org/Offer" class="offer"> <span itemprop="price" class="product-price">36990</span> <span itemprop="priceCurrency" class="product-price-currency">RUB</span> </div>
-
<span class="product-address"><a href="#">ул.Победы</a></span> <span class="product-map"><a href="#">Показать на карте</a></span> <span class="product-rooms">2-х комнатная</span> <span class="product-square">45 кв.м.</span> <span class="product-type-house">Кирпичный</span> <span class="product-level">4 этаж</span> </div>
- Создайте микроразметку для адресов/контактных данных вашей компании.
- Создайте микроразметку для членов команды (можно не для всех).
- Создайте микроразметку для комментариев/отзывов на сайте.
Задание 6. Создайте карту сайта sitemap.xml
- Изучите материалы по теме:
https://www.sitemaps.org/ru/protocol.html
https://yandex.ru/support/webmaster/indexing-options/sitemap.xml?lang=ru - Создайте карту сайта sitemap.xml и разместите ее в корне сайта.
Задание 7. Постраничное разбиение материала.
- Страницу с каталогом разбейте на две-три страницы, так, чтобы:
— название исходной страницы сохранилось, но она содержала только половину или треть описаний объектов;
— название второй страницы должно совпадать с первой, но содержать в конце цифру 2, обозначая, что она вторая;
— вторая страница должна содержать другую часть описаний объектов;
— на каждой из полученных страниц должны быть сформированы ссылки с номерами страниц, для удобной навигации по каталогу
(по аналогии с https://www.w3schools.com/bootstrap/bootstrap_pagination.asp ).
Задание 8. Выпадающее верхнее меню.
- Добавьте выпадающее меню одному из пунктов верхнего меню
- Или сделайте его анимированным (https://www.youtube.com/watch?v=2o8BcE0XhMY&list=PLOQDek48BpZGigsyHfaleRff8oZCxN4uQ) . Например: из Каталог выпадают пункты «Однокомнатные» и др…
- При наведении на пункты подменю курсор должен быть pointer;
- У самого пункта меню «Каталог» должен быть «значок», подсказывающий, что есть выпадающее меню.
Например, такой: https://unicode-table.com/ru/23F7/
Задание 9. Минификация HTML/CSS кода.
- Почитайте о минификации кода.
- При помощи любого онлайн сервиса минифицируйте свой CSS-код. Примечание: исходный CSS-код должен остаться отформатированным.
- Сложно: почитайте об автоматизации минификации (Например, что-то о Webpack 2 или Grunt или Gulp).
Примечание: не нужно в текущем квесте настраивать эту автоматизацию — она требует знаний JavaScript. Просто расширяем кругозор.
Задание 10. Дополнительное.
- Важно для меня: Пожалуйста, напишите отзыв об HTML курсе на своей странице — это будет серьёзная мотивация для планирующих обучение.
Используйте теги @specialist_ru, @altarasov, @htmlnews. Спасибо! - Познакомьтесь с Bootstrap
http://getbootstrap.com - Cоздайте новый (или переделайте созданный) сайт с использованием Bootstrap.
Примечание: лучше создать новый, чтобы Ваше портфолио пополнилось ещё одним сайтом.