Горизонтальное выпадающее меню на css + html

Выпадающее меню

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

Сначала нам нужно создать HTML-структуру нашего меню. Основные навигационные ссылки мы поместим в маркированный список:

<ul id="navbar">
  <li><a href="#">Главная</a></li>
  <li><a href="#">Новости</a></li>
  <li><a href="#">Контакты</a></li>
  <li><a href="#">О нас</a></li>
</ul>

Подпункты мы разместим в отдельном списке, вложив его в элемент <li>, который содержит родительскую ссылку относительно подпунктов. Теперь мы имеем четкую структуру нашей будущей панели навигации:

<ul id="navbar">
  <li><a href="#">Главная</a></li>
  <li><a href="#">Новости</a></li>
  <li><a href="#">Контакты</a>
    <ul>
      <li><a href="#">Адрес</a></li>
      <li><a href="#">Телефон</a></li>
      <li><a href="#">Email</a></li>
    </ul>
  </li>
  <li><a href="#">О нас</a></li>
</ul>

Попробовать »

Теперь приступим к написанию CSS кода. Для начала необходимо скрыть список с подпунктами с помощью объявления display: none;, чтобы они не отображались на веб-странице все время. Для отображения подпунктов нам нужно чтобы при наведении на элемент <li> список снова был преобразован в блочный элемент:

#navbar ul { display: none; }
#navbar li:hover ul { display: block; }

Убираем у обоих списков отступы и маркеры, установленные по умолчанию. Элементы списка с навигационными ссылками делаем плавающими, формируя горизонтальное меню, но для элементов списка, содержащих подпункты задаем float: none;, чтобы они отображались друг под другом.

#navbar, #navbar ul {
  margin: 0;
  padding: 0;
  list-style-type: none;
}
#navbar li { float: left; }
#navbar ul li { float: none; }

Затем нам нужно сделать так, чтобы наше выпадающее подменю не смещало контент, расположенный под панелью навигации, вниз. Для этого мы зададим пунктам списка position: relative;, а списку, содержащему подпункты position: absolute; и добавим свойство top со значением 100%, чтобы абсолютно позиционированное подменю отображалось точно под ссылкой.

#navbar ul {
  display: none;
  position: absolute;
  top: 100%;
}
#navbar li {
  float: left;
  position: relative;
}
#navbar { height: 30px; }

Попробовать »

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

Теперь нам осталось стилизовать оба наших списка и выпадающее меню будет готово:

#navbar ul {
  display: none;
  background-color: #f90;
  position: absolute;
  top: 100%;
}
#navbar li:hover ul { display: block; }
#navbar, #navbar ul {
  margin: 0;
  padding: 0;
  list-style-type: none;
}
#navbar {
  height: 30px;
  background-color: #666;
  padding-left: 25px;
  min-width: 470px;
}
#navbar li {
  float: left;
  position: relative;
  height: 100%;
}
#navbar li a {
  display: block;
  padding: 6px;
  width: 100px;
  color: #fff;
  text-decoration: none;
  text-align: center;
}
#navbar ul li { float: none; }
#navbar li:hover { background-color: #f90; }
#navbar ul li:hover { background-color: #666; }

Попробовать »

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

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

Возрастает и процент покупок, совершаемых с мобильных устройств. Постатистике Google39% пользователей смартфонов совершали покупки с помощью мобильных устройств, 55% пользователей, ищущих на смартфонах информацию о товарах или услугах, планируют совершить покупку в течение одного часа, 83% в тот же день. В 47% случаев такой поиск конвертировался в последующую покупку с ПК, в 82% в покупку в офлайн-магазине, в 17% в покупку с помощью смартфона.

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

Узнайте, как CPA-маркетинг помогает продавать, находить новых партнёров и развивать продукт.

Спецпроект

Удобство просмотра на мобильных устройствах крайне важно, так как напрямую влияет на конверсию в покупки, звонки или полезный трафик

Выбираем решение

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

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

Вот несколько факторов, которые нужно иметь в виду:

  • Нужно ли вам решать проблему с изменением изображения в зависимости от контекста
    (т.е. разные пропорции изображения, разные варианты масштабирования и обрезки
    для разных размеров экрана)?
  • Не работаете ли вы с огромным сайтом или CMS, с которыми у вас не получится
    взять и добавить специальную разметку к каждому имеющемуся изображению?
  • Все ли картинки уже есть на момент загрузки страницы, или некоторые загружаются
    динамически через JavaScript?
  • Хотите ли вы тестировать пропускную способность сети пользователя, чтобы
    определить, достаточно ли быстрое у них соединение для того, чтобы принимать
    изображения в высоком разрешении?
  • Требует ли решение платформы, которая вам недоступна (например, jQuery или PHP)?
  • Можете ли вы использовать решение на третьей стороне — или вам необходимо,
    чтобы все находилось на вашем хостинге?

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

CSS

В файл styles.css добавим несколько стилей для всех элементов:

* {
   margin: 0;
   padding: 0;
   box-sizing: border-box;
   font-family: sans-serif;
}

Затем примените эти стили к header.

header {
   height: 70px;
   background-color: #22292F;
   padding: 10px 0;
}

Теперь темная панель навигации растягивается на всю ширину окна просмотра.

Добавьте приведенные ниже стили к классу menu-wrap:

.menu-wrap {
   display: flex;
   justify-content: space-between;
   padding: 0 15px;
}

Мы используем display:flex, чтобы все дочерние элементы занимали свободное пространство, доступное горизонтально. Свойству justify-content установлено значение space-between, чтобы расположить эти элементы как можно дальше друг от друга.

Стилизуем каждый из этих дочерних элементов один за другим.

.logo-img {
   height: 50px;
}
.menu-icon {
   font-size: 2.4em;
   color: #ffffff;
   line-height: 50px;
}

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

nav {
   position: absolute;
   background-color: #3D4852;
   top:70px;
   left:0;
   width: 100%;
}

Теперь добавьте стили списка и ссылок:

nav ul {
   list-style-type: none;
}
nav ul li {
   padding: 0 15px;
}
nav ul li a {
   display: inline-block;
   padding: 12px;
   /* Добавьте ниже свои пользовательские стили, чтобы изменить отображение ссылок */
   color: #DAE1E7;
   text-decoration: none;
   letter-spacing: 0.05em;
}

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

nav ul li a:hover, nav ul li a:focus {
   color: #eb6f4a;
}

Теперь в браузере отображается следующее:

Меню должно быть сначала скрыто и отображаться при нажатии на иконку. Для этого добавьте к элементу nav ul дополнительные стили max-height, overflow, а также transition:

nav ul li a:hover, nav ul li a:focus {
   color: #eb6f4a;
}

Этот код скроет все меню, потому что для свойства max-height задано значение 0, а для свойства overflow:hidden. Мы не используем для скрытия меню display:none, потому что нам нужен эффект анимации скольжения меню вниз. Он может быть достигнут только с помощью свойства max-height.

Тестируйте, тестируйте, тестируйте!

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

YSlow

Разработанное Yahoo, YSlow — инструмент на клиенте, который анализирует
ваш сайт по 23 признакам, которые, по мнению Yahoo, могут отрицательно
сказываться на производительности веб-страницы. YSlow присваивает вашему сайту
оценку по каждому правилу, объясняет каждое и предлагает вам, как улучшить
производительность сайта. YSlow доступен для Firefox, Chrome, Safari и Opera (ну
и еще несколькими способами, например, из командной строки).

WebPageTest

Онлайн-инструмент WebPageTest — опенсорс-проект, поддерживающийся Google.
Вы вводите URL вашего сайта, проводите тест на скорость из выбранного место и
определяете, какой браузер использовать. Дополнительные настройки позволяют вам
выбрать набор действий из нескольких шагов, выбрать скорость сети
(ADSL/оптоволокно и пр.), отключить JavaScript, блокировать рекламу и делать
другие запросы, и так далее. Результате приходят в виде таблиц, графиков,
скриншотов, обзора производительностью и большого количества данных, в которых
можно покопаться.

В блоге Yottaa есть статья, в которой подробно рассказывается, как они
использовали WebPageTest для тестирования сайта с отзывчивыми изображениями и
без — почитайте!

Горизонтальная панель навигации

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

Встроенные элементы списка

Один из способов создания горизонтальной панели навигации, чтобы указать <li> элементы как встроенные, в дополнение к «standard» коду выше:

li
{
   
display: inline;
}

Объяснение примера:

display: inline; — По умолчанию

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

Плавающий элементов списка

Другой способ создания горизонтальной панели навигации, чтобы плавать на <li> элементов, а также указать макет для навигационных ссылок:

li
{
   
float: left;
}
a
{
   
display: block;
    padding: 8px;    background-color:
#dddddd;
}

Объяснение примера:

  • — использование с плавающей точкой , чтобы получить блок элементов , чтобы скользить рядом друг с другом
  • — Отображение ссылок в виде блока элементов делает всю площадь ссылка кликабельным ( а не только текст), и это позволяет нам указать отступы (и height, width, margins и т.д. , если вы хотите)
  • — Так как блочные элементы занимают всю доступную ширину, они не могут плавать рядом друг с другом. Поэтому, указать некоторое дополнение, чтобы сделать их хорошо выглядеть
  • — добавить серый цвет фона для каждого элемента

Совет: добавьте цвет фона для <ul> вместо каждого <a> элемента , если вы хотите полноширинные цвет фона:

Скрыть приложение через лаунчеры

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

Yandex Launcher

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

  • Для начала проведите вверх свайп для раскрытия меню установленных утилит.
  • Затем листайте вправо, пока не появится раздел “Настройка категорий“, внизу которого расположены “Скрытые приложения“. Следующий шаг – необходимо снять около него флажок.  А также при желании скрыть другие вкладки.
  • Вернитесь к списку, задержите на иконке мешающей утилиты палец, кликните на “Скрыть“. Программное обеспечение останется на гаджете. Но открыть его не получится до момента до момента включения категории.

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

Apex Launcher

Данная утилита позиционирует себя как функциональная оболочка, совместимая со слабыми устройствами, Apex Launcher имеет возможность скрытия программного обеспечения:

  1. Для начала запустите параметры лаунчера, затем дважды кликните на рабочем столе по свободному месту.
  2. После этого перейдите к “Настройкам меню приложений“. Здесь нужно выбрать “Скрытые приложения” и кликнуть на кнопку снизу.
  3. Следующий шаг – поставить около утилиты, которую планируете скрыть, флажок. Затем кликните на Hide N Apps, где «N» – это количество отмеченных чекбоксов или, как вариант, “Сохранить” – в зависимости от используемой версии.

Посмотреть то, какие именно программы были скрыты можно следующим образом: их перечень откроется при клике на  “Скрытые приложения“.owan

Nova Launcher

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

  • В перечне программ расположена кнопка “Настройки Nova” – клините по ней. Так вы сможете перейти к параметрам.
  • Затем перейдите в “Меню приложений“, из него – в “Группы в списке приложений“. Здесь нажмите на “Скрыть приложения“.
  • После этого отметьте утилиты, значки которых вам мешают. После этого следует выйти из панели конфигурирования.

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

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

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

Настройка

Создайте пустой HTML-документ и назовите его index.html. Добавьте в него базовый HTML-код.

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="utf-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Document</title>
</head>
<body>
   
</body>
</html>

Я использовала шрифт Font Awesome для иконки меню. Поэтому добавьте приведенную далее строку кода ниже тега <title>.

<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0-2/css/all.min.css" rel="stylesheet">

Создайте файл styles.css и подключите его в HTML-документе:

<link rel="stylesheet" href="styles.css">

Я использовал в качестве логотипа приведенное ниже изображение. Вы можете добавить свое собственное изображение.

ЕЩЁ

Полноэкранное видеоМодальное окноШкала времениИндикатор прокрутки Индикатор выполненияПанель навыковПолзунок диапазонаПодсказки при наведенииВсплывающие окнаСкладная секцияКалендарьВключить HTMLСписок делЗагрузчикиЗвездный рейтингПользовательский рейтингНаложениеКонтактные чипыКарточкиФлип-картаКарточка профиляКарточка товараОкно тревогиВыноска сообщенияПримечаниеМеткиКругиHR Горизонтальная линияКупонГруппа списковОтзывчивый текстВырезанный текстСветящийся текстФиксированный подвалЛипкий элементРавная высота столбцовОчистка поплавкаОтзывчивые поплавкиСнэк-бар/тостПолноэкранное режимЧертеж при прокруткеПлавная прокруткаГрадиент фонаЛипкий заголовокИзменить заголовок при прокруткеОтзывчивые столбцы ценПараллаксСоотношение сторонПереключатель нравится/не нравитсяПереключатель скрыть/показатьПереключаель текстаПереключатель классаДобавить классУдалить классАктивный классДревовидное представлениеУдалить свойствоАвтономный режим обнаруженияСделать скрытый элементПеренаправление веб страницыУвеличить при наведенииФлип-боксЭлемент вертикально по центруПереход при наведении курсораСтрелкиФигурыСсылка для скачиванияПолная высота элементаОкно браузераПользовательская полоса прокруткиРазличные устройстваЦвет заполнителяЦвет выделения текстаЦвет макераВертикальная линияАнимированные иконкиТаймер обратного отсчетаПишущая машинкаСтраница заставкиСообщение чатаВсплывающее окно чатаРазделенный экранРекомендацииСчетчик разделаСлайд-шоу цитатЗакрываемые злементы спискаТипичные точки прерыванияПеретаскиваемый HTML элементМедиа запросы JSПодсветка синтаксисаJS анимацииПолучить элементы Iframe

Особенности метода

Пусть этот код и громоздкий, зато понятный

Стоит обратить внимание, что основную роль здесь играет тег nav
, что отвечает за создание навигации и ее внешний вид. Также сюда подключены контейнеры container-fluid
и container
, которые задают ширину пунктов

С их помощью можно заставить меню расширяться на экранах разного разрешения или оставить его фиксированным.

Немаловажную роль в создании адаптивного функционала здесь играют классы collapse
и navbar-collapse
, которые отвечают за стиль. Само меню создается путем записывания пунктов, что размещены горизонтально.

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

Горизонтальное выпадающее меню на CSS

Стили CSS для выпадающего меню и не только – вещь необходимая как воздух. Ведь выпадающая вкладка делается на основе псевдокласса :hover.

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

Это еще не конец, а только часть CSS для основного горизонтального меню. Далее мы напишем стили для выпадающего списка меню:

Вот теперь все. Сам механизм выпадашки реализован одной строчкой.

Смотрите скин с этим меню:

Рис. 2 (горизонтальное выпадающее меню)

Ниже доступен демо просмотр работы выпадающего меню, а также ссылка на скачивание исходников. (Демо будет открыт выпадашкой поверх этой страницы, не нужно нажимать открыть в новом окне   или колесико мышки)

Скачать пример

Проверка адаптивности сайта

Но возникает вопрос: как проверять адаптивность сайта? Вот прописали вы media запросы в CSS, подключили bootstrap и используете нужные классы. А как вы проверите, что на всех разрешениях экрана сайт правильно адаптируется.

Я для этих целей рекомендую использовать следующий онлайн сервис —http://quirktools.com/screenfly/. Просто введите URL страницы для проверки и переключайте разрешения экранов в панели управления.

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

Ну как вам статья? Все понятно? Если нет, пишите в комментарии, будем разбираться вместе.

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

Для больших экранов

Иконка гамбургера не должна отображаться на больших экранах, на которых достаточно места для вывода ссылок.

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

@media (min-width: 768px) {
}

В нем сначала спрячьте иконку меню.

@media (min-width: 768px) {
  .menu-icon {
     display: none;
  }
}

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

Теперь добавьте стили, чтобы позиционировать элемент nav относительно и изменить цвет его фона. Затем добавьте display:inline-flex для nav ul li, чтобы разместить ссылки рядом друг с другом.

@media (min-width: 768px) {
  nav {
    position: relative;
    top:-10px;
    background-color: transparent;
  }
  nav ul {
    max-height: 70px;
    padding: 15px 0;
    text-align: right;
  }
  nav ul li {
    display: inline-flex;
    padding-left: 20px;
  }
}

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

СКАЧАТЬ ИСХОДНЫЙ КОД

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

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

Вадим Дворниковавтор-переводчик статьи «How To Create a Responsive Dropdown Navigation Using Only CSS»

Адаптация выпадающего html меню под мобильные устройства

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

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

    PHP

    <div class=»mobile-menu-button»> Меню </div>

    1 <div class=»mobile-menu-button»>Меню<div>
  2. 2.Далее нам нужно убедиться что к сайту подключена библиотека jQuery.

    Более подробно о её подключении вы можете узнать в этой статье «Как подключить jQuery к сайту»

  3. 3.Добавить небольшой скрипт, который отвечает за вызов выпадающего меню при нажатии на соответствующую кнопку на маленьких экранах. Данный скрипт вставляем перед закрытием тега </body>

    PHP

    <script>
    jQuery(document).ready(function($) {
    $(‘.mobile-menu-button’).click(function(e) {
    var $message = $(‘.new-mobile-menu’);
    if ($message.css(‘left’) != ‘0px’) {
    $message.css(‘left’,’0px’);
    var firstClick = true;
    $(document).bind(‘click.myEvent’, function(e) {
    if (!firstClick && $(e.target).closest(‘.new-mobile-menu’).length == 0) {
    $message.css(‘left’,’-1000px’);
    $(document).unbind(‘click.myEvent’);
    }
    firstClick = false;
    });
    }
    e.preventDefault();
    });
    });
    </script>

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21

    <script>

    jQuery(document).ready(function($){

    $(‘.mobile-menu-button’).click(function(e){

    var$message=$(‘.new-mobile-menu’);

    if($message.css(‘left’)!=’0px’){

    $message.css(‘left’,’0px’);

    varfirstClick=true;

    $(document).bind(‘click.myEvent’,function(e){

    if(!firstClick&&$(e.target).closest(‘.new-mobile-menu’).length==){

    $message.css(‘left’,’-1000px’);

    $(document).unbind(‘click.myEvent’);

    }

    firstClick=false;

    });

    }

    e.preventDefault();

    });

    });

    </script>

Вот, собственно говоря, и всё! Теперь осталось всё сохранить, проверить работоспособность и при необходимости внести свои правки в html и css код.
На первый взгляд кода много, но он не сложный и вы без труда сможете скорректировать его под свой сайт.

Надеюсь, что помогла вам с сознанием адаптивного выпадающего меню в html! Если статья была для вас полезной, то нажмите на кнопку одной из социальных сетей ниже чтобы поделиться ссылкой на неё. Так вы поможете мне в развитии моего проекта.

Так же заходите на мой канал YouTube, уверена, что вы найдёте там что то интересное для себя!

Успехов вам и вашим проектам! До скорых встреч в других моих статьях и видео!

С уважением Юлия Гусарь

HTML

  • Наличие корректной кодировки

  • Наличие тега title и мета-тегов для SEO

    Например, мета-теги с name=»keywords» и name=»description».

Наличие атрибута lang у тега html

Например, lang=»ru-RU». Данный атрибут необходим для правильного
определения языка страницы поисковыми системами. Кроме того, этот
атрибут помогает плагинам-переводчикам понять, предлагать ли
перевод страницы.

Повторяющиеся или некорректные атрибуты id

Атрибуты id должны начинаться с буквы, а не с числа.

Наличие пустых и ненужных тегов

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

Наличие объёмных комментариев в коде

Во-первых, такие комментарии увеличивают объем страницы, а
во-вторых, подобные комментарии видны всем, поэтому это может быть
небезопасно. Вместо HTML-комментариев нужно использовать
комментарии в PHP.

Контент

  • Проверка орфографии, в том числе и в самом
    интерфейсе

  • Наличие clearfix у контейнеров с элементами со стилями
    float: left и float: right

    Если такого нет, то при изменении контента, верстка может
    поломаться.

Некорректная микроразметка

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

Корректное отображение валюты

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

Проверка вместимости длинных названий

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

Различная высота элементов в слайдерах

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

Подключение отдельной таблицы стилей, используя медиа-запросы

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

Чтобы подключить отдельную таблицу стилей и, используя каскадность, переписать существующие стили, необходимо после подключения основного css-файла написать следующие строки:

<link rel="stylesheet" type="text/css" media="only screen and (max-device-width: 480px)" href="small-device.css" />

Модернизация существующего сайта

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

Макет для экрана монитора

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

Подключаем новую таблицу стилей

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

<link rel="stylesheet" type="text/css" media="only screen and (max-width: 480px), only screen and (max-device-width: 480px)" href="/assets/css/small-device.css" />

Для создания новой таблицы стилей, мы делаем копию основной и называем её small-device.css. Мы перезапишем некоторые правила, а всё лишнее удалим.

Сокращаем размер шапки

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

body {
    background-image: url(/img/small-bg.png);
}
#wrapper {
    width: auto;
    margin: auto;
    text-align: left;
    background-image: url(/img/small-logo.png);
    background-position: left 5px;
    background-repeat: no-repeat;
    min-height: 400px;
}

Изменяем макет

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

.article #aside {
    float: none;
    width: auto;
}

Прибираемся

Настало время проверить наш макет в онлайн-эмуляторе и подкорректировать мелкие недочёты, чтобы всё смотрелось супер. Для облегчения этого процесса рекомендую использовать расширение firebug для Mozilla.

Тестируем на Iphone

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

<meta name="viewport" content="width=device-width" />

Вот теперь сайт отображается как надо!

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

Заключение

Главным преимуществом нашего модального окна является то, что оно создано с использованием только HTML5 и CSS3

Почему это так важно? Как минимум они не замедляют сайт — т.к. используется десяток строк оформления

А создать модальное окно на Javascript — может даже новичок, т.к. существует масса готовых решений.

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

Как добавить сайт в Google Search Console: инструкция для новичков
Как добавить сайт в Яндекс.Вебмастер: инструкция для новичков >

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Люкс-хост
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: