Как сделать сердце в css

Добавил пользователь Morpheus
Обновлено: 05.10.2024

Редактирование: – Я просто хотел знать, почему мы используем свойства до и после и как это помогает в создании этой формы сердца.
Также я ищу простой и простой код (используя только css) для получения этой формы.

Вы можете сделать это с помощью псевдоэлементов

Надеюсь это поможет 🙂

Вот идея с использованием только фона и меньше кода:

Вы можете интегрировать переменную CSS для управления размерами:

Теги before и after называются псевдоэлементами. Вот полезный ресурс с дополнительной информацией о них. В принципе, он создает элемент, которого нет в фактической DOM (структура HTML), и позволяет применять к нему стили CSS.

В этом случае before и after два круга.

Здесь, как выглядит один псевдоэлемент в вашем случае:

И здесь самое полное сердце:

Если вы вращаете главный блок, вы получаете повернутый квадрат. Два псевдоэлемента, представляющие круги, создают сердце с самим div, если положение каждого элемента является подходящим. Причина, по которой ваше сердце не работает должным образом, состоит в том, что псевдоэлементы были неправильно установлены. Нажатие элемента after влево устраняет эту проблему.

Я хочу сделать форму сердца, размер которой может быть изменен пользователем до любой ширины и высоты и иметь границу в 1 пиксель.

Однако вот мои проблемы:

Его нельзя свободно и легко масштабировать, скажем, до 500x200 пикселей. Трудно добавить границу вокруг него

Его нельзя растянуть до других пропорций или увеличить, например Коробка 500x400

Почти идеальный, но граница (обводка) растягивается вместе с размером. Я хочу, чтобы граница всегда была шириной 1 пиксель, независимо от масштаба

Я также попытался сделать еще одну копию фигуры в виде тени (заполненной черным цветом и немного смещенной, с меньшим z-индексом), но это не идеально (граница не везде одинаковой ширины):

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

Все те фигуры, которые вы рисовали ранее в графических редакторах теперь можно сделать с помощью CSS3 . Новые CSS свойства transform и border-radius позволяют делать это, не прибегая к помощи сторонних программ.

В сегодняшнем уроке мы создадим геометрические фигуры, используя только свойства CSS3 .

Что вам понадобится для использования данного руководства

Окружность

HTML
Для создания окружности с помощью CSS , во-первых, мы будем использовать тег div . Именуем его ID именем фигуры. Итак, в первом примере, ID будет равно Circle :

CSS
Что касается CSS , просто задаем значения width и height , а затем задаем значение border radius , равное половине от width и height :

Квадрат

HTML
Чтобы создать квадрат в CSS , как и в примере с окружностью, мы создаем div с идентификатором square. Итак, ниже приведен код для блока div :

CSS
Для создания квадрата в CSS , просто задаем значения width и height равные друг другу:

Прямоугольник

Прямоугольник

HTML
Чтобы создать прямоугольную форму, в CSS , как и в случае с квадратом, настраиваем div , где ID равно rectangle :

CSS
Так же, как и в случае с квадратом, мы зададим значения width и height , но на этот раз width будет больше, чем height :

Овал

HTML
Для создания овала в CSS , создаем div с ID равным oval :

CSS
Овал похож на окружность; овал это прямоугольная форма с заданным радиусом, равным половине значения height :

Треугольник

HTML
И снова, для создания треугольника с помощью CSS , делаем div с ID равным triangle .

CSS
Для создания треугольника мы будем манипулировать свойством border . Изменяя ширину границы, вы получите различные углы поворота:

Треугольник, направленный вниз

HTML
Создаем перевернутый треугольник с помощью CSS . Снова создаем div . ID равно triangle_down :

CSS
Создавая перевернутый треугольник, оперируем толщиной границы:

Треугольник, направленный влево

HTML
Для создания треугольной фигуры, которая смотрит влево, снова создаем div с ID triangle_left :

CSS
Создавая треугольник, направленный влево, оперируем свойствами границ правой стороны треугольника:

Треугольник, направленный вправо

HTML
Для создания треугольной фигуры, которая смотрит вправо, создаем div с ID triangle_right :

CSS
Создавая треугольник, направленный вправо, оперируем свойствами границ правой стороны треугольника:

CSS
Ромб можно создать несколькими способами. Используя свойство transform совместно со значениями свойства rotate , мы можем отобразить два треугольника, расположенных рядом друг с другом:

Трапеция

Трапеция

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

Параллелограмм

Параллелограмм

CSS
Для создания параллелограмма, устанавливаем значение transform равное skew для поворота элемента на угол в 30 градусов:

Звезда

Звезда

Звезда (6ти конечная)

CSS
Шестиконечная звезда создается с помощью свойства border . Создаем два набора фигур и комбинируем в одну:

Пятиугольник

CSS
Создание пятиугольника заключается в создании двух элементов, которые затем соединяются в один. Первый элемент – форма трапеции. Затем вверху добавляем треугольную форму:

Шестиугольник

CSS
Есть несколько способов создания шестиугольника. Один из них полностью идентичен созданию пятиугольника. Создаем прямоугольную форму и вверху добавляем два треугольника:

Восьмиугольник

CSS
Восьмиугольник также интересная фигура. Сначала создаем две трапециевидные формы и по бокам располагаем два треугольника. Есть еще несколько способов, но этот самый действенный:

Сердце

CSS
Эта фигура довольно сложная в создании, но её можно сделать с помощью вращения элементов под разными углами и смены значения свойства transform-origin для смены позиции вращаемых элементов:

Бесконечность

Бесконечность

Бабл для комментария

CSS
Эта фигура может быть создана путем создания треугольника и задания свойства border radius , а затем присоединения прямоугольника к его левой стороне:

Pacman

CSS
Создание pacman – целая хитрость. Манипулируйте свойствами border и radius для создания окружности с открытой левой стороной:

Заключение

Надеюсь, вам понравилось данное руководство. В блоке комментариев вы можете приводить собственные способы создания фигур из руководства.

Квадратики, это конечно интересно,
но нигде не нашёл, как вот такую фигуру слепить, как на скриншоте.
Возможно такое ?

Скопирована с хаба

Добрый день.
Вы можете подсказать как нарисовать в css такой круг?

Генератор треугольников, если кому интересно:

Вот тут я подробно написал по какому принципу выполнить звезду.

Ну и нулевую высоту имеет смысл указывать только если в блоке предполагается содержимое. Если мы зададим нулевую высоту, то содержимое не будет растягивать блок.

Ну а в последнем примере вместо последних четырёх свойств можно было указать одно: border-radius: 70px. Впрочем, возможно, примеры подобраны так, чтоб показать что одни и те же свойства можно задавать иногда разными свойствами.

Чтоб понять как работает восьмиугольник нужно сделать его на белом фоне. Тогда видно, что грани не обрезаются, а просто граница, с помощью которой сделан эффект перехода, совпадает по цвету с фоном, в котором находится восьмиугольник. Для того, чтоб не зависеть от фона, нужно сделать исходным не квадрат, а прямоугольник и к нему приделать две трапеции.
Интересно соотношение размеров. 29 ширина перехода + 42 ширина грани + 29 ширина второго перехода = 100 пикселей, равен квадрату.
При этом, если исходить из того, что грани должны быть равны, то 29 пикселей перехода должны образовывать грань в 42 пикселя. Поскольку 29 пикселей это катет прямоугольного треугольника, а грань - его гипотенуза, то, по теореме Пифагора, 29 в квадрате (841) + ещё столько же (сумма квадратов катетов 1682) должна быть равна 42 в квадрате (1764).
Ну, почти. 🙂

Анимация с сердечками для текста

Интересная анимация для текста, которая имитирует хаотичное движение сердечек. Например, подойдет для оформления заголовков на сайте знакомств.

Чтобы подключить анимацию необходимо скопировать HTML разметку, CSS стилизацию и JS скрипт, который генерирует движение сердечек по математической формуле. Чтобы анимация работала должна быть подключена библиотека jquery перед закрывающим тегом body и перед подключением других скриптов. Если вы затрудняетесь это сделать, то можете скачать готовый пример.

Читайте также: