造型来源:正方形加两个圆
正方形加上两个圆可以组合成心型
- 圆的直径与正方形的边长相同
- 初始化位置都在中心
- 一个圆左移一个直径单位
- 另一个圆左移一个半径单位,再上移一个直径单位
- 整体顺时针移动45度
编写css
css样式的内外边框调整为0
内外边框为0和内容居中*{ padding:0; margin:0; } body{ width:100vw; height:100vh; background: #ffffff; text-align: center; display: flex; justify-content: center; align-items: center; }
正方形css
边长200px.heart{ width:200px; height:200px; position: absolute; border-style:solid; border-color:pink; opacity: 1; }
圆的css样式(伪类)
小圆1号(伪类before)
使用伪类css来自200px的正方形,调整圆角为圆形,左移一个直径/* 伪类创建 */ .heart::before{ content:''; width:200px; height:200px; border-style:solid; border-color:pink; border-radius: 100%; opacity: 1; position: absolute; transform: translateX(-200px); }
小圆2号(伪类after)
使用伪类css来自200px的正方形,调整圆角为圆形,左移一个半径,上移一个直径
/* 伪类创建 */
.heart::after{
content:'';
width:200px;
height:200px;
border-style:solid;
border-color:pink;
border-radius: 100%;
opacity: 1;
position: absolute;
transform: translate(-100px,-100px);
}
旋转45度
旋转45度统一颜色
去掉边框颜色,填充背景为粉色
动画
背景颜色变化
白色到粉色的变化
@keyframes backdiv {
50% {
background: #ffe6f2;
}
}
图案的循环缩放
带上旋转45度,缩放0.5->0.8
@keyframes change{
0%{
transform: rotate(45deg) scale(0.5);
}
50%{
transform: rotate(45deg) scale(0.8);
}
100%{
transform: rotate(45deg) scale(0.5);
}
}
整体代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>heart</title>
<style>
*{
padding:0;
margin:0;
}
body{
width:100vw;
height:100vh;
background: #ffffff;
text-align: center;
display: flex;
justify-content: center;
align-items: center;
animation-name:backdiv;
animation-duration: 2s;
animation-iteration-count: infinite;
}
.heart{
width:200px;
height:200px;
position: absolute;
background: pink;
transform: rotate(45deg);
animation-name:change;
animation-duration: 2s;
animation-iteration-count: infinite;
}
/* 伪类创建 */
.heart::before{
content:'';
width:200px;
height:200px;
background: pink;
border-radius: 50%;
position: absolute;
/* 定位 */
transform: translateX(-200px);
}
.heart::after{
content:'';
width:200px;
height:200px;
background: pink;
border-radius: 50%;
position: absolute;
/* 定位 */
transform: translate(-100px,-100px);
/* transform: translateX(-100px); */
}
@keyframes change{
0%{
transform: rotate(45deg) scale(0.5);
}
50%{
transform: rotate(45deg) scale(0.8);
}
100%{
transform: rotate(45deg) scale(0.5);
}
}
@keyframes backdiv {
50% {
background: #ffe6f2;
}
}
</style>
</head>
<body>
<div class='heart'> </div>
</body>
</html>