menu
Uveb

22:28
Два варіанти акордеону на чистому CSS
2 приклади створення акордеону без використання скриптів на чистому CSS.
Один працює з використанням радіокнопок input type=radio, а інший з input type=checkbox.

Оскільки з одинакових радіокнопок може бути обрана тільки одна, відповідно і вкладка акордеону також відкрита одна.

Зразок акордеону з однією відкритою вкладкою

Опис вкладки

Опис вкладки

Опис вкладки

Html

Код
<div class="acor-container">  
  <input type="radio" name="acor" id="acor1" checked="checked" />
  <label for="acor1">Заголовок вкладки</label>
  <div class="acor-body">
  <p>Опис вкладки</p>
  </div>
  <input type="radio" name="acor" id="acor2" />
  <label for="acor2">Заголовок вкладки</label>
  <div class="acor-body">
  <p>Опис вкладки</p>
  </div>
  <input type="radio" name="acor" id="acor3" />
  <label for="acor3">Заголовок вкладки</label>
  <div class="acor-body">
  <p>Опис вкладки</p>
  </div>  
</div>

Зверніть увагу, що ID для кожної вкладки мають бути унікальними:
input id="acor1"
label for="acor1"

Зразок акордеону з декількома відкритими вкладками

Якщо потрібно щоб відкривалось кілька вкладок, то просто замінюємо кнопки на .

Опис вкладки

Опис вкладки

Опис вкладки

Html

Код
<div class="acor-container">  
  <input type="checkbox" name="chacor" id="chacor1" checked="checked" />
  <label for="chacor1">Заголовок вкладки</label>
  <div class="acor-body">
  <p>Опис вкладки</p>
  </div>
  <input type="checkbox" name="chacor" id="chacor2" />
  <label for="chacor2">Заголовок вкладки</label>
  <div class="acor-body">
  <p>Опис вкладки</p>
  </div>
  <input type="checkbox" name="chacor" id="chacor3" />
  <label for="chacor3">Заголовок вкладки</label>
  <div class="acor-body">
  <p>Опис вкладки</p>
  </div>
</div>

CSS для двох варіантів

Код
<style>
.acor-container {
  margin: 20px 0;
}
.acor-container .acor-body {
  width: calc(100% - 40px);
  margin: 0 auto;
  height: 0;
  color: rgba(0, 0, 0, 0);
  background-color: #29D4D2;
  line-height: 18px;
  padding: 0 30px;
  box-sizing: border-box;
  transition: color 0.5s, padding 0.5s;
  overflow: hidden;
  font-family: Verdana, sans-serif;  
  font-size: 16px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2), 0 10px 16px rgba(0,0,0,0.2);
}
.acor-container .acor-body p {
  margin: 0 0 10px;
}
.acor-container label {
  cursor: pointer;
  background-color: #000000;
  display: block;
  padding: 15px 20px;
  width: 100%;
  color: #29D4D2;
  font-weight: 300;
  box-sizing: border-box;
  z-index: 100;
  font-family: Verdana, sans-serif;  
  font-size: 18px;
  margin: 0 0 5px;
  transition: color .35s;
}
.acor-container label:hover {
  color: #FFF;
}
.acor-container input{
  display: none;
}
.acor-container label:before {
  content: '\276F';
  float: right;
}
.acor-container input:checked + label {
  background-color: #696969;
  color: #FFF;
  box-shadow: 0 8px 26px rgba(0,0,0,0.4), 0 28px 30px rgba(0,0,0,0.3);
}
.acor-container input:checked + label:before {
  transition: transform .35s;
  transform: rotate(90deg);
}
.acor-container input:checked + label + .acor-body {
  height: auto;
  margin-top: -5px;
  color: #000;
  padding: 20px 30px 10px;
}
</style>
Категорія: CSS | Переглядів: 245 | Додав: Uveb | Рейтинг: 3.0/3