Jekyll / подсказка к 4 задачке

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

Просто берешь и под каждый сайт делаешь новый файлик в папке _sass и импортируешь его в assets\css папке

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

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

Первый

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

вот как наши стили для этого блока выглядели

Второй

это navbar-collapse, на самом деле можно и без него, так как он отвечает за то чтобы на маленьких экранах меню становилось вертикальным. Плюс он объединяет в себя блоки с кнопками навигации и соответственно определяет расположение этих блоков

вот его стили

Третий

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

мы кстати им особо стилей и не добавляли, только чтобы по высоте он равнялся на размеры navbar-collapse

Четвертый

это блоки пунктов навигации у которых есть стиль .nav-item

именно сюда прописываем расстояние между пунктами меню, и стили при комбинации с классом .active

Пятый

это внутренность пункта меню, она не всегда имеет явный вид как в нашем случае, иногда это просто текст, главное, что это ссылка с классом nav-link

часть стилей мы прописываем прямо в стиле .nav-item, это важно только если у нас есть зависимость вида ссылки от стилей пункта меню, ну то есть когда у пункта меню есть дополнительный класс active мы рисуем ссылку как зеленый квадратик

остальные стили мы пишем уже вне nav-item

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

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

Вот такие дела.

Шаблон default.html

<!doctype html>
<html lang="en">
  <head>
    <title>Title</title>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title>Document</title>
    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css" />
    <link rel="stylesheet" href="/assets/css/main.css" />
  </head>
  <body>

    
    <nav class="navbar navbar-expand-lg navbar-light">
      <a class="navbar-brand" href="/"><i class="fas fa-gamepad"></i></a>
      <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
      </button>
      <div class="collapse navbar-collapse" id="navbarNav">
        <ul class="navbar-nav d-flex">
          <li class="nav-item {% if page.short == 'about' %}active{% endif %}">
            <a class="nav-link" href="/about.html">About {% if page.url == "/about.html" %} * {% endif %}</a>
          </li>
          <li class="nav-item {% if page.url == '/glossary.html' %}active{% endif %}">
            <a class="nav-link" href="/glossary.html">Глоссарий {% if page.url == "/glossary.html" %} * {% endif %}</a>
          </li>
          <li class="nav-item {% if page.url == '/platform.html' %}active{% endif %}">
            <a class="nav-link" href="/platform.html">Платформа {% if page.url == "/platform.html" %} * {% endif %}</a>
          </li>
          <li class="nav-item {% if page.short == 'players' %}active{% endif %}">
            <a class="nav-link" href="/players.html">Количество игроков {% if page.url == "/players.html" %} * {% endif %}</a>
          </li>
          <li class="nav-item {% if page.url == '/style.html' %}active{% endif %}">
            <a class="nav-link" href="/style.html">Стилистика {% if page.url == "/style.html" %} * {% endif %}</a>
          </li>
          <li class="nav-item dropdown {% if page.url == '/Action.html' %}active{% endif %}">
            <a class="nav-link dropdown-toggle" id="navbarDropdownMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
              Жанры
            </a>
            <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
              <a class="dropdown-item" href="/Action.html">Action</a>
              <a class="dropdown-item" href="/Arcade.html">Аркада</a>
              <a class="dropdown-item" href="/Strategy.html">Стратегия</a>
            </div>
          </li>
        </ul>
        <ul class="navbar-nav d-flex">
          <li class="nav-item navbar-nav d-flex">
              <a class="nav-link" href=""><i class="fas fa-2x fa-cog"></i></a>
          </li>
        </ul>
      </div>
    </nav>

    <div class="container">
      {{content}}
    </div>

      
    <!-- Optional JavaScript -->
    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
  </body>
</html>

Файл main.scss

$backgroundColor: #ffffff;
$bodyColor: #000000;
$bodyFont: -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";

body {
  background: $backgroundColor;
  color: $bodyColor;
  font-family: $bodyFont;
}

.navbar {
  background-color: #08a1a6;
  padding: 0 1rem;
  height: 56px;

  .navbar-collapse {
    height: 100%;
    justify-content: space-between;
  }

  .navbar-brand {
    color: white;
    width: 40px;
    height: 40px;
    text-align: center;
    border-radius: 50%;
    &:hover {
      background-color: rgba(116,131,131,0.6);
      box-shadow: 0 0 0 2px transparent;
      color: #ffffff;
    }
  }

  .navbar-nav {
    height: 100%;

    .nav-item {
      height: 100%;
      display: flex;
      position: relative;
      align-items: center;
      margin: 0 4px;

      &.active, &.show {
        .nav-link {
          background-color: rgba(116,131,131,0.6);
          box-shadow: 0 0 0 2px transparent;
          color: #ffffff;
        }
      }

      &.active::after {
          position: absolute;
          bottom: 0px;
          left: 4px;
          right: 4px;
          content: "";
          height: 3px;
          background-color: rgb(248, 227, 250);
          border-top-left-radius: 1px;
          border-top-right-radius: 1px;
      }
    }

    .nav-link {
      color: white;
      font-weight: bold;
      font-size: 14px;
      border-radius: 3px;
      padding: 0 6px;
      height: 2.2857142857142856em;
      line-height: 2.2857142857142856em;
      vertical-align: middle;
      transition: all 0.3s;

      &:hover {
        background-color: rgba(116,131,131,0.6);
        box-shadow: 0 0 0 2px transparent;
        color: #ffffff;
      }
    }
  }
}
4

Сверстать шапки сайтов:

1) У медузы все просто, по сути только цвет активных элементов

2) На пикабу особо обратить внимание на то что у активного элемента есть подчеркивание снизу

3) На irk.ru ничего специфического, тоже только граница снизу и эффект ссылки при наведении

4) На гитхабе активный элемент никак не проявляется, но есть эффект при наведении мыши и шапка находится вне контейнера и поэтому растягивается на всю ширину экрана, поле для поиска можно не делать:

5) Еще один хитрый сайт https://css-tricks.com с широкой шапкой, активная ссылка никак не проявляется плюс есть градиент