html+css制作心形

学习过html和css之后我们可以尝试做一些小效果,比如说制作心形图案。
效果大概就像是这样
在这里插入图片描述
整体形状我们可以理解为一个正方形,在它的上边和右边分别创建一个圆形,最后再将整体旋转就可以做成一个爱心的效果了
在这里插入图片描述
原理大概就是如此,只需要我们将最后的颜色全部调成一个颜色,再整体旋转45度就可以了。
在这里插入图片描述
在这里插入图片描述
下面我们附上具体代码,我提供了两种方式,第一种是使用伪类元素来做,第二种是在一个div里面设置两个span标签。
方法一:

<div class="one"></div>

.one{
  position:relative;
  width:100px;
  height:100px;
  background:pink;
  margin-left:100px;
  margin-top:100px;
  transform:rotate(-45deg);
  
}
.one:before{
  content:"";
  position:absolute;
  width:100px;
  height:100px;
  background-color:pink;
  border-radius:50%;
  top:-50px;
	left:0;
}
.one:after{
  content:"";
  position:absolute;
  background-color:pink;
  border-radius:50%;
  height:100px;
  width:100px;
  left:50px;
  top:0;
}

通过使用伪类元素 :after和:before,通过定位将他们的位置放在正确的位置上,最后再加一个旋转就可以制作一个爱心。当然在爱心中间我们也可以添加一些文字,通过在div中写一个span标签,并对span元素进行操作,就可以将文字元素添加在想要添加的位置上

<div class="one">
  <span id="content">I love you</span>
</div>
#content{
 position:absolute;
  top:20px;
  left:25px;
  z-index:2;
  font-size:15px;
  transform:rotate(45deg);
}

方法二:在div中设置两个span
与第一个方法大同小异,
在这里就不过多解释,直接附上代码:

<div class="two">
  <span id="first"></span>
  <span id="second"></span>
</div>
.two{
  position:relative;
  width:50px;
  height:50px;
  background:#7FFFD4;
  left:400px;
  top:-40px;
  transform:rotate(-45deg);
}
#first{
  position:absolute;
  width:50px;
  height:50px;
  border-radius:50%;
  background:#7FFFD4;
  left:0px;
  top:-25px
}
#second{
  position:absolute;
  width:50px;
  height:50px;
  border-radius:50%;
  background:#7FFFD4;
  left:25px;
  top:0px
}

同样也可以达到我们想要的效果,我们还可以通过js去绑定一些事件来制作一些与众不同的效果。

  • 7
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以用 HTMLCSS 和 JavaScript 来制作一个闪动的心形图案。下面是一个示例: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>闪动的心</title> <style> body { background-color: black; } .heart { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 100px; height: 90px; background-color: #ff69b4; transform-origin: center; animation: heartbeat 1s ease-in-out infinite; } .heart:before, .heart:after { position: absolute; content: ""; left: 50px; top: 0; width: 50px; height: 80px; background-color: #ff69b4; border-radius: 50px 50px 0 0; transform: rotate(-45deg); transform-origin: 0 100%; } .heart:after { left: 0; transform: rotate(45deg); transform-origin: 100% 100%; } @keyframes heartbeat { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(1); } } </style> </head> <body> <div class="heart"></div> </body> </html> ``` 解释一下代码: - HTML 中只有一个 `div` 元素,用来包裹心形图案。 - CSS 中用了伪元素 `:before` 和 `:after` 来实现左右两侧的半圆形,通过旋转和变形来调整角度和形状。 - `transform-origin` 属性用来设置变换的基点,以图案的中心为基点进行动画缩放。 - `animation` 属性用来设置动画效果,指定 `heartbeat` 关键帧动画,并设置持续时间为 1 秒、缓动方式为 `ease-in-out`,并设置无限循环。 这样就可以制作一个闪动的心形图案了,效果如下所示: ![闪动的心形图案](https://i.imgur.com/hKMkCOG.gif)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值