Як створити форму серця з CSS

6 хв. читання

Сьогодні ми створимо форму у вигляді серця, щоб допомогти вам розібратися з формами і позиціонуванням за допомогою CSS.

Основи

В принципі, ми можемо створити нову форму шляхом об'єднання декількох базових фігур. Якщо ми будемо розглядати форму серця, можна побачити, що вона складається з двох кіл і прямокутника. HTML-елемент, по суті, є квадратом або прямокутником. Завдяки border radius в CSS3, ми можемо з легкістю перетворити прямокутник в коло.

Додамо <div> в якості основи нашої форми.

<div class="heart-shape"></div>  

Потім, ми робимо його квадратним, вказавши однакову ширину і висоту. Виберіть колір до вподоби.

.heart-shape{  
    position: relative;  
    width: 200px;  
    height: 200px;  
    background-color: rgba(250,184,66, 0.8);  
}  

Далі, створимо два кола.

Але ми не будемо додавати нові елементи. Ми використовуватимемо псевдо-елементи :before та :after. Встановимо псевдо-елемент :before як наш перший круг. Створимо квадрат, встановивши однакову ширину і висоту так само, як ми робили це з div. Потім, ми перетворимо його в коло, задаючи border-radius: 50% і розмістимо його на лівій стороні квадрата.

.heart-shape:before{  
    position: absolute;  
    bottom: 0px;  
    left: -100px;  
    width: 200px;  
    height: 200px;  
    content: '';  
    -webkit-border-radius: 50%;  
    -moz-border-radius: 50%;  
    -o-border-radius: 50%;  
    border-radius: 50%;  
    background-color: rgba(250,184,66, 0.8);  
}  

Ми отримаємо наступний результат:

Серце з допомогою CSS

Після цього, ми створюємо друге коло з використанням :after, ті ж стилі, як і для першого кола. Потім, ми також поміщаємо його у верхній частині квадрата.

.heart-shape:after{  
    position: absolute;  
    top: -100px;  
    right: 0px;  
    width: 200px;  
    height: 200px;  
    content: '';  
      
    -webkit-border-radius: 50%;  
    -moz-border-radius: 50%;  
    -o-border-radius: 50%;  
    border-radius: 50%;  
  
    background-color: rgba(250,184,66, 0.8);  
}  

Результат:

Серце з допомогою CSS

Ми можемо об'єднати ці два однакові стилі шляхом групування елементів псевдо-селекторів наступним чином:

.heart-shape:before,  
.heart-shape:after{  
    position: absolute;  
    width: 200px;  
    height: 200px;  
    content: '';  
    -webkit-border-radius: 50%;  
    -moz-border-radius: 50%;  
    -o-border-radius: 50%;  
    border-radius: 50%;  
    background-color: rgba(250,184,66, 0.8);  
}  
.heart-shape:before{  
    bottombottom: 0px;  
    left: -100px;  
}  
.heart-shape:after{  
    top: -100px;  
    rightright: 0px;  
}  

У нас є форма серця, залишилось правильно її розмістити. Щоб це виправити, ми будемо використовувати CSS3 трансформації.

Трансформувати можна основні елементи форми, в нашому випадку - квадрат. При трансформації псевдо-елемент буде автоматично змінювати свою позицію згідно головного елемента.

Нам потрібно обернути наше серце.

.heart-shape{  
    -webkit-transform: rotate(45deg);  
    -moz-transform: rotate(45deg);  
    -ms-transform: rotate(45deg);  
    -o-transform: rotate(45deg);  
    transform: rotate(45deg);  
}  

##Результат:

HTML:

<div class="heart-shape"></div>  

CSS:

.heart-shape{  
    position: relative;  
    width: 200px;  
    height: 200px;  
    -webkit-transform: rotate(45deg);  
    -moz-transform: rotate(45deg);  
    -ms-transform: rotate(45deg);  
    -o-transform: rotate(45deg);  
    transform: rotate(45deg);  
    background-color: rgba(250,184,66, 1);  
}  
.heart-shape:before,  
.heart-shape:after{  
    position: absolute;  
    width: 200px;  
    height: 200px;  
    content: '';  
    -webkit-border-radius: 50%;  
    -moz-border-radius: 50%;  
    -o-border-radius: 50%;  
    border-radius: 50%;  
    background-color: rgba(250,184,66, 1);  
}  
.heart-shape:before{  
    bottombottom: 0px;  
    left: -100px;  
}  
.heart-shape:after{  
    top: -100px;  
    rightright: 0px;  
}  

Зверніть увагу, що ми тепер задати значення 1 для альфа-каналу rgba(250,184,66, 1), щоб видалити прозорість.

Ось результат:

Серце з допомогою CSS

Ми маємо ідеальну форму серця, ви можете змінити колір, якщо бажаєте (наприклад, рожевий або червоний). Єдиним недоліком є те, що ми не можемо додати границі в зв'язку з об'єднанням елементів.

#Висновки З допомогою CSS3 створення та трансформація форм - дуже проста задача. Властивість border-radius дозволяє нам перетворювати елементи або навіть псевдо-елементи в коло. З допомогою CSS3 трансформацій, ми можемо з легкістю повернути або перемістити координати об'єкта.

Ви обмежені лише власною креативністю та фантазією!

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Codeguida 5.8K
Приєднався: 8 місяців тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація