Рисуем с помощью box-shadow
Свойство box-shadow — удивительное свойство. Оно позволяет создать множество теней вокруг одного элемента. С его помощью можно рисовать как простые, так и сложные фигуры и изображения.
Как это работает? Тень дублирует размеры и форму элемента и задав смещение по горизонтали и/или вертикали, равное или большее, чем ширина или высота элемента, мы как бы сдвигаем копию элемента вправо/вниз или влево/вверх (при отрицательных значениях). С помощью отрицательного значения растяжения тень получается меньше, чем оригинальный блок.
See the Pen WGxqLX by Elena (@html5book) on CodePen.
За основу возьмём элемент span, которому добавим следующие стили:
Пример 1
span {
display: inline-block;
width: 20px;
height: 20px;
background: #D13F92;
box-shadow: 30px 0 0 #F3C361, -30px 0 0 #F3C361;
}
Пример 2
span {
display: inline-block;
width: 20px;
height: 20px;
border-radius: 50%;
background: #D13F92;
box-shadow: 30px 0 0 #F3C361, -30px 0 0 #F3C361;
}
Пример 3
span {
display: inline-block;
width: 20px;
height: 20px;
background: #D13F92;
transform: rotate(45deg);
box-shadow: 25px -25px 0 #F3C361, -25px 25px 0 #F3C361;
}
Пример 4
span {
display: inline-block;
width: 20px;
height: 5px;
background: #D13F92;
box-shadow: 30px 0 0 #F3C361, -30px 0 0 #F3C361;
}
Пример 5
span {
display: inline-block;
width: 20px;
height: 5px;
background: #D13F92;
box-shadow: 0 8px 0 #F3C361, 0 -8px 0 #F3C361;
}
Пример 6
span {
display: inline-block;
width: 5px;
height: 20px;
background: #D13F92;
transform: rotate(45deg);
box-shadow: 20px -20px 0 #F3C361, -20px 20px 0 #F3C361;
}
Пример 7
span {
display: inline-block;
width: 20px;
height: 10px;
border-radius: 50%;
background: #D13F92;
box-shadow: 30px 0 0 #F3C361, -30px 0 0 #F3C361;
}
Пример 8
span {
display: inline-block;
width: 20px;
height: 20px;
background: #D13F92;
box-shadow: 0 0 0 5px #F3C361, 0 0 0 10px #D13F92, 0 0 0 15px #F3C361;
}
Пример 9
span {
display: inline-block;
width: 20px;
height: 20px;
background: #D13F92;
box-shadow: -20px 20px 0 #F3C361, 20px 20px 0 #F3C361, 0 40px 0 #D13F92;
}
Пример 10
span {
display: inline-block;
width: 20px;
height: 20px;
background: #D13F92;
box-shadow: 20px -20px 0 #F3C361, -20px -20px 0 #F3C361, 20px 20px 0 #F3C361, -20px 20px 0 #F3C361;
}
Пример 11
span {
display: inline-block;
width: 20px;
height: 20px;
background: #D13F92;
border-radius: 50%;
box-shadow: 0 0 0 5px white, 0 0 0 10px #D13F92;
}
Пример 12
span {
display: inline-block;
height: 50px;
width: 50px;
border-radius: 50%;
background: #D13F92;
box-shadow:
60px 0 0 -5px rgba(209, 63, 146, .9),
110px 0 0 -10px rgba(209, 63, 146, .7),
150px 0 0 -15px rgba(209, 63, 146, .5),
180px 0 0 -20px rgba(209, 63, 146, .3);
}
Пример 13
span {
display: inline-block;
height: 75px;
width: 75px;
background: #D13F92;
border-radius: 50%;
box-shadow:
100px -25px 0 -10px rgba(209, 63, 146, .9),
180px 15px 0 -15px rgba(209, 63, 146, .7),
260px -10px 0 -20px rgba(209, 63, 146, .5),
340px 5px 0 -25px rgba(209, 63, 146, .3),
400px 0px 0 -30px rgba(209, 63, 146, .1);
}
Пример 14
span {
display: inline-block;
width: 40px;
height: 40px;
background: #D13F92;
box-shadow:
10px 10px 0 0 #F3C361,
20px 20px 0 0 #1C2552;
}
А вот пример более сложного рисунка, созданного также на основе одного элемента. С помощью таких пиксельных рисунков можно сделать, например, логотип для сайта.
See the Pen wzWVEE by Elena (@html5book) on CodePen.