Пользовательский рейтинг

  alexei 18/02/2022 - 10:02

Здесь вы узнаете, как сделать карточку "пользовательского рейтинга" при помощи CSS.



Как сделать карточку пользовательского рейтинга

Шаг 1) Добавляем HTML:


<!-- Добавляем библиотеку иконок -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">

<span class="heading">Пользовательский рейтинг</span>
<span class="fa fa-star checked"></span>
<span class="fa fa-star checked"></span>
<span class="fa fa-star checked"></span>
<span class="fa fa-star checked"></span>
<span class="fa fa-star"></span>
<p>4.1 в среднем по 254 голосам.</p>
<hr style="border:3px solid #f1f1f1">

<div class="row">
  <div class="side">
    <div>5 звезд</div>
  </div>
  <div class="middle">
    <div class="bar-container">
      <div class="bar-5"></div>
    </div>
  </div>
  <div class="side right">
    <div>150</div>
  </div>
  <div class="side">
    <div>4 звезды</div>
  </div>
  <div class="middle">
    <div class="bar-container">
      <div class="bar-4"></div>
    </div>
  </div>
  <div class="side right">
    <div>63</div>
  </div>
  <div class="side">
    <div>3 звезды</div>
  </div>
  <div class="middle">
    <div class="bar-container">
      <div class="bar-3"></div>
    </div>
  </div>
  <div class="side right">
    <div>15</div>
  </div>
  <div class="side">
    <div>2 звезды</div>
  </div>
  <div class="middle">
    <div class="bar-container">
      <div class="bar-2"></div>
    </div>
  </div>
  <div class="side right">
    <div>6</div>
  </div>
  <div class="side">
    <div>1 звезда</div>
  </div>
  <div class="middle">
    <div class="bar-container">
      <div class="bar-1"></div>
    </div>
  </div>
  <div class="side right">
    <div>20</div>
  </div>
</div>

Шаг 2) Добавляем CSS:


* {
  box-sizing: border-box;
}

body {
  font-family: Arial;
  margin: 0 auto; /* Центрируем сайт */
  max-width: 800px; /* Максимальная ширина */
  padding: 20px;
}

.heading {
  font-size: 25px;
  margin-right: 25px;
}

.fa {
  font-size: 25px;
}

.checked {
  color: orange;
}

/* Макет в три колонки */
.side {
  float: left;
  width: 15%;
  margin-top: 10px;
}

.middle {
  float: left;
  width: 70%;
  margin-top: 10px;
}

/* Сдвинуть текст вправо */
.right {
  text-align: right;
}

/* Сбросить обтекание после колонок */
.row:after {
  content: "";
  display: table;
  clear: both;
}

/* Контейнер полоски */
.bar-container {
  width: 100%;
  background-color: #f1f1f1;
  text-align: center;
  color: white;
}

/* Отдельные полоски */
.bar-5 {width: 60%; height: 18px; background-color: #04AA6D;}
.bar-4 {width: 30%; height: 18px; background-color: #2196F3;}
.bar-3 {width: 10%; height: 18px; background-color: #00bcd4;}
.bar-2 {width: 4%; height: 18px; background-color: #ff9800;}
.bar-1 {width: 15%; height: 18px; background-color: #f44336;}

/* Адаптивный макет – колонки выстраиваются друг над другом, а не рядом друг с другом */
@media (max-width: 400px) {
  .side, .middle {
    width: 100%;
  }
  /* Скрываем правую колонку на маленьких экранах */
  .right {
    display: none;
  }
}