CSS+HTML制作基本形状图案和动画

16 篇文章 1 订阅

今天讲解一下如何制作一些基本形状,先放最后的效果图,然后下面一一地讲解。
基本形状
在这里插入图片描述
动画
在这里插入图片描述

圆环

是通过两个正圆,然后设置它的border-radius属性、背景色以及外边距来实现中心对齐。具体的代码如下:
HTML部分

<!-- 圆环 -->
  <div class="one">
   <div class="one1"></div>
   <div class="one2"></div>
  </div>

CSS部分

.one1{
    width: 200px;
    height: 200px;
    border-radius: 50%;
    background-color: aqua;
   }
   .one2{
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background-color: white;
    margin-left: 50px;
    margin-top: -150px;
   }

第一个正方形

这一部分是通过将盒子的各个边框设置成不同的颜色的方法来实现的。

  <!-- HTML部分 -->
  <div class="two"></div>
  
  <!-- CSS部分 -->
.two{
    height: 0px;
    width: 0px;
    border-top: 100px solid cadetblue;
    border-left: 100px solid darksalmon;
    border-right: 100px solid indianred;
    border-bottom: 100px solid rosybrown;
   }

第二、三个正方形

这一部分是通过设置了4个div标记,然后通过浮动来实现的对齐。至于他的样式,和第一个正方形设置样式的方法一样,只是这里的每一个小盒子有两条边是一样的颜色。第三个正方形和第二个一样,只是交换了盒子的位置。所以这里就省略了。
HTML部分

<!-- 第二个正方形 -->
  <div class="three">
   <div class="three1"></div>
   <div class="three2"></div>
  </div>
  <div style="float: left;">
   <div class="three3"></div>
   <div class="three4"></div>
  </div>

CSS部分

.three1{
    height: 0px;
    width: 0px;
    border-top: 50px solid darksalmon;
    border-left: 50px solid darksalmon;
    border-right: 50px solid indianred;
    border-bottom: 50px solid indianred;
   }
   .three2{
    height: 0px;
    width: 0px;
    border-top: 50px solid rosybrown;
    border-left: 50px solid skyblue;
    border-right: 50px solid rosybrown;
    border-bottom: 50px solid skyblue;
   }
   .three3{
    height: 0px;
    width: 0px;
    border-top: 50px solid moccasin;
    border-left: 50px solid darkseagreen;
    border-right: 50px solid moccasin;
    border-bottom: 50px solid darkseagreen;
   }
   .three4{
    height: 0px;
    width: 0px;
    border-top: 50px solid lightpink;
    border-left: 50px solid lightpink;
    border-right: 50px solid darkviolet;
    border-bottom: 50px solid darkviolet;
    }

五角星

这一部分主要是先绘制一个三角形,然后通过旋转角度,再使用伪类选择器after和before在去添加,然后设置样式。最后就完成了.

<!-- HTML部分-->
  <div class="four"></div>

<!-- CSS部分 -->
  .four:before{
    width: 0;
    height: 0;
    border-left: 30px solid transparent;
    border-right: 30px solid transparent;
    border-bottom: 80px solid red;
    position: absolute;
    top: -45px;
    left: -65px;
    color: white;
    display: block;
    content: "";
    transform:rotate(-35deg);
    }
   .four:after{
    width: 0;
    height: 0;
    display: block;
    position: absolute;
    color: red;
    top: 3px;
    left: -105px;
    border-left: 100px solid transparent;
    border-right: 100px solid transparent;
    border-bottom: 70px solid red;
    content: "";
    transform:rotate(-70deg);
    }
  

动画

实现这个动画主要是通过设置鼠标悬停上去然后改变样式来实现的,然后从正方形变成圆形是通过border-radius属性,然后使用transition属性,最后就实现了这个效果;文字的移动,是先通过letter-spacing设置间隔,然后鼠标悬停时再设置他的效果。
HTML部分

<body>
  <div class="a"></div>
  <div class="b">
   <p>4亿网友共同信赖</p>
  </div>

CSS部分

.a{
    width: 200px;
    height: 200px;
    background-color: #5F9EA0;
   }
   .a:hover{
    background-color: #FFB6C1;
    border-radius: 50%;
    transition:all 3s;
   }
   .b{
    width: 100%;
    height: 300px;
    background-color: skyblue;
   }
   p{
    font-size: 70px;
    text-align: center;
    padding-top: 80px;
    letter-spacing: 40px;
    color: rgba(255,255,255,0.4);
   }
   p:hover{
    letter-spacing: 0px;
    color: rgb(255,255,255);
    transition: all 3s;
   }
  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值