今天讲解一下如何制作一些基本形状,先放最后的效果图,然后下面一一地讲解。
基本形状
动画
圆环
是通过两个正圆,然后设置它的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;
}