Подборка Занимательных Css-Рецептов «Голые Пятницы #2»

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



Подборка занимательных CSS-рецептов «Голые пятницы #2»



Стилизация флажка и переключателя

По традиции начнем с раздела «пыльные полки».

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

  
  
  
  
  
  
  
   

<input type="checkbox" id="check" name="check" /> <label for="check">Checkbox</label>



input[type=checkbox] {display: none;} input[type=checkbox] + label:before { content: ""; border: 1px solid #000; font-size: 11px; line-height: 10px; margin: 0 5px 0 0; height: 10px; width: 10px; text-align: center; vertical-align: middle; } input[type=checkbox]:checked + label:before { content: "\2713"; }



Подборка занимательных CSS-рецептов «Голые пятницы #2»

Как видите, вся суть в псевдоэлементах и псевдоселекторе :checked (IE9+).

В приведенном выше коде мы скрываем исходный ввод, вместо этого отображаем стилизованный псевдоэлемент, а при нажатии отображаем символ Юникода в свойстве содержимого.

Обратите внимание, что форма записи символа Юникода в CSS отличается от формы в HTML. Здесь номер символа указывается через косую черту, а HTML-код будет выглядеть так: ✓.

Пойдем еще дальше и АНИМИРУЕМ наш флажок:

input[type=checkbox] + label:before { content: "\2713"; color: transparent; transition: color ease .

3s; } input[type=checkbox]:checked + label:before { color: #000; }

или радиокнопка:

input[type=radio] + label:before { content: "\26AB"; border: 1px solid #000; border-radius: 50%; font-size: 0; transition: font-size ease .

3s; } input[type=radio]:checked + label:before { font-size: 10px; }



Подборка занимательных CSS-рецептов «Голые пятницы #2»

Таких материалов в Интернете пока недостаточно, так что дерзайте! Полный список символов Юникода можно найти здесь.

Здесь .

Поиграйтесь с кодом - Здесь

Вертикальное заполнение элемента в виде процента

Невероятно, но факт. Проценты вертикального заполнения пересчитываются на основе ширины, а не высоты родительского элемента.

Создадим 2 блока:

<div class="parent"> <div class="child"></div> </div>



.

parent { height: 400px; width: 200px; } .

child { height: 50%; padding-top: 25%; padding-bottom: 25%; width: 100%; }

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

Но что мы видим?

Подборка занимательных CSS-рецептов «Голые пятницы #2»

Поскольку проценты рассчитываются на основе ширины родительского элемента, высоты недостаточно.

Этот нюанс необходимо иметь в виду.



Счетчики на чистом CSS

Мало кто знает, что со времен IE8 только CSS умел подсчитывать элементы.



<ol class="list"> <li>a</li> <li>b</li> <li>c</li> </ol>



.

list {

Теги: #CSS #HTML #веб-разработка #CSS #HTML

Вместе с данным постом часто просматривают: