宝剑锋从磨砺出,梅花香自苦寒来。这篇文章主要讲述一张图不用,纯CSS 做个贺卡相关的知识,希望能为你提供帮助。
朋友生日了,直接画,炫技并且表示本人闲的全身疼才会去拿CSS画画,以此嘲弄对方的加班:
文章图片
既然贺卡做出来了,那就顺便介绍一下贺卡制作流程吧,其实也不是什么技术,也就是CSS 拼拼拼就可以了,简简单单。
注:本篇内容无法逐一进行讲解,只是讲一下大概思路,之后会单独把元素作为讲解内容并且完善元素使其更加美观。
一、基础布局首先这个贺卡是网页居中的,那么直接给予一个 flex 不就好了?直接给 body :
body
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
width: 100vw;
那么接下来我们的海报是有一个外边框的,这个做起来也和粘单,直接先给予外部一个 div,然后写一个样式叫做 happy-border :
.happy-border
background-color: white;
height: 850px;
width: 550px;
display: flex;
align-items: center;
justify-content: center;
border: 8px solid #72705bca;
box-shadow: 50px 20px 10px rgb(213, 207, 207);
以上样式其实就是定义了一个背景色,然后给予一个 flex 布局。
为啥要给一个 flex?
当然是等下里面的内容我要居中显示,留一定的白底,这样不就像一张卡片了?你说对不对?
说到这,有些朋友可能又会说你给 border 那么厚干啥?给那么厚肯定是因为是要边框厚一点,这样不就看起来更像一张卡片了?如果还觉得不像,我不是还给了一个 box shadow 做阴影吗?
这样不就做好了?你看下面的呈现效果:
文章图片
那么到了这一步是不是还看不到内部的白框?那怎么办?那现在就给里面的元素添加一个父容器呗,父容器再给一个小于外面最大的这个容器的宽高就可以有白色边缘了,上样式:
.happy
height: 800px;
width: 500px;
position: relative;
background-color: #feb0bd;
overflow: hidden;
其实上面样式就是给了一个div 一个大小,设置了 position,因为等下里面全部用 abslute ,这样里面的内容就可以重重叠叠了,接下来再调用:
<
div class="happy-border">
<
div class="happy">
<
/div>
<
/div>
效果就是下面这样了:
文章图片
二、烘托气氛的旗子基础内容搞定了我们给这个贺卡加点装饰吧,首先就从旗子开始。
这个旗子呢就是一个三角形和一根线,那怎么搞这个呢?
文章图片
这个很简单,咱们先画个三角形嘛,那三角形怎么画?三角形很有多方式画,咱们直接用一个渐变背景来画:
/*棋子的三角形*/.triangle
width: 50px;
height: 50px;
background: linear-gradient(to bottom right, transparent 0%, transparent 50%, #e7f7c5 50%, #e7f7c5 100%);
你看上面的样式,就定义一个大小后直接给予背景为渐变就好了,你渐变一部分为透明 transparent 一部分为一种颜色不就ok了?并且在这里我压根就没有进行渐变,因为我渐变到的颜色都是一致的,所以直接就会呈现一种颜色,并且渐变方向是左上角到右下角,那么斜对角分一半,肯定是三角形。
那么接下来直接调用:
<
!--小旗子-->
<
div class="ribbon">
<
div class="triangle">
<
/div>
<
/div>
效果:
文章图片
那么接下来就给一根线吧,那线段怎么做?其实线段你就直接给予一个 div,然后背景色透明,边缘圆角超出边框则 hidden 不就ok了?这样只有一个圆的边框一部分,那就是一条弧线,完美:
.cord
width: 800px;
height: 300px;
left: -180px;
top: -310px;
background-color: transparent;
border: 1px solid rgba(41, 41, 41, 0.5);
border-radius: 100%;
transform: rotate(-15deg);
以上样式还用了 rotate,如果你觉得角度不对你就 rotate 就ok了,效果:
文章图片
在此一定要注意还要给这线段和三角形 position 为 absolute,因为接下来还要定位。定位这一个过程我就不再赘述了,不就是left bottom 给值不久好了?下面是这一段的代码:
/*旗子的三角形*/.triangle
width: 50px;
height: 50px;
background: linear-gradient(to bottom right, transparent 0%, transparent 50%, #e7f7c5 50%, #e7f7c5 100%);
.triangle-1
top: 30px;
left: -10px;
transform: rotate(-30deg);
.triangle-2
top: 30px;
left: 30px;
transform: rotate(-45deg);
background: linear-gradient(to bottom right, transparent 0%, transparent 50%, #c5e4f9 50%, #c5e4f9 100%);
.triangle-3
top: 27px;
left: 80px;
transform: rotate(-65deg);
background: linear-gradient(to bottom right, transparent 0%, transparent 50%, #b3fdc4 50%, #b3fdc4 100%);
.triangle-4
top: 13px;
left: 120px;
transform: rotate(-25deg);
background: linear-gradient(to bottom right, transparent 0%, transparent 50%, #e7d7ff 50%, #e7d7ff 100%);
.triangle-5
top: 10px;
left: 170px;
transform: rotate(-55deg);
background: linear-gradient(to bottom right, transparent 0%, transparent 50%, #f466b1 50%, #f466b1 100%);
.triangle-6
top: -3px;
left: 220px;
transform: rotate(-75deg);
background: linear-gradient(to bottom right, transparent 0%, transparent 50%, #f1c13b 50%, #f1c13b 100%);
.triangle-7
top: -11px;
left: 260px;
transform: rotate(-45deg);
background: linear-gradient(to bottom right, transparent 0%, transparent 50%, #f74631 50%, #f74631 100%);
.triangle-8
top: -36px;
left: 310px;
transform: rotate(-25deg);
background: linear-gradient(to bottom right, transparent 0%, transparent 50%, #d279b3 50%, #d279b3 100%);
效果就是如下呈现了:
文章图片
三、烘托气氛的气球接下来就开始画气球吧。
气球咋一看就简单多了,但是你又没有注意这里:
文章图片
这几个节的形状要怎么做?有点像一个椭圆。
这个先不急,咱们先把简单的气球搞定吧,也就是一个div 设置为圆里面有两个亮点而已,然后就竖着的一个 div 当作一个线就完毕了。
首先是一个圆:
.balloon>
.circle
width: 60px;
height: 60px;
border-radius: 100%;
background-color: #f74631;
border: 2px solid black;
这个很简单,就真的是个圆,接下来就直接使用这个元素的 after 和 before 做亮点就好了:
.balloon>
.circle::after
position: absolute;
content: "";
width: 10px;
height: 10px;
left: 25px;
top: 30px;
background-color: #ee8377;
border-radius: 100%;
.balloon>
.circle::before
position: absolute;
content: "";
width: 6px;
height: 6px;
left: 35px;
top: 40px;
background-color: #ee8377;
border-radius: 100%;
以上亮点没有什么技术含量,一样的操作只不过移动了一下位置而已,随后就是气球的线段了:
.balloon-line
height: 30px;
width: 2px;
background-color: black;
left: 30px;
top: 62px;
那气球下面的结怎么做呢?咱们先看看这个结节:
文章图片
懂的朋友一看就知道,这不就是一个div 然后给予圆角不就好了?对呀,就是这样,下面是这个结节的 CSS:
.balloon-cord
position: absolute;
height: 10px;
width: 10px;
top: 305px;
left: 82px;
background-color: pink;
border-radius: 100%;
transform: rotate(20deg);
border-bottom: 3px solid black;
border-left: 2px solid black;
border-right: 2px solid black;
z-index: 3;
当然你还要调整角度,所以在上面的代码中我还用了 rotate,那么跟旗子一样,咱们创建多个气球拼接在一起,并且绘制一下弧线,拼接在一起,布局到整个页面之上,那么此时页面就是这样了:
文章图片
气球定位及气球的样式代码:
/*气球*/.balloon-main,
.balloon,
.balloon>
.circle,
.balloon-line,
.balloon-cord,
.balloon-cord1
position: absolute;
.balloon-main
transform: rotate(5deg);
z-index: 3;
.balloon-main1
top: 50px;
right: 190px;
transform: rotate(-35deg) scale(0.5);
.balloon-main2
top: 480px;
right: 90px;
transform: rotate(11deg) scale(0.3);
.balloon-main3
top: 630px;
right: 190px;
transform: rotate(-31deg) scale(0.3);
.balloon>
.circle
width: 60px;
height: 60px;
border-radius: 100%;
background-color: #f74631;
border: 2px solid black;
.balloon>
.circle::after
position: absolute;
content: "";
width: 10px;
height: 10px;
left: 25px;
top: 30px;
background-color: #ee8377;
border-radius: 100%;
.balloon>
.circle::before
position: absolute;
content: "";
width: 6px;
height: 6px;
left: 35px;
top: 40px;
background-color: #ee8377;
border-radius: 100%;
.balloon1,
.balloon2,
.balloon3,
.balloon4
z-index: 3;
.balloon1
top: 100px;
left: 100px;
.balloon2
top: 120px;
left: 30px;
transform: rotate(-45deg) scale(0.9);
.balloon2>
.circle
background-color: #c6feff;
.balloon2>
.circle::after,
.balloon2>
.circle::before
background-color: #a3e7f8;
.balloon3
top: 150px;
left: 30px;
transform: rotate(-45deg) scale(1.1);
.balloon3>
.circle
background-color: #ffd458;
.balloon3>
.circle::after,
.balloon3>
.circle::before
background-color: #ffedbe;
.balloon4
top: 150px;
left: 85px;
transform: rotate(15deg) scale(1.5);
.balloon4>
.circle
background-color: #d179b3;
.balloon4>
.circle::after,
.balloon4>
.circle::before
background-color: #f78ed2;
.balloon5
top: 150px;
left: -20px;
transform: rotate(-15deg) scale(2);
z-index: 2;
.balloon5>
.circle
background-color: #b3fec4;
.balloon5>
.circle::after,
.balloon5>
.circle::before
background-color: #ceeed5;
.balloon6
top: 110px;
left: 150px;
transform: rotate(35deg) scale(2.2);
z-index: 1;
.balloon6>
.circle
background-color: #7b9bce;
.balloon6>
.circle::after,
.balloon6>
.circle::before
background-color: #c2d6f2;
.balloon-line
height: 30px;
width: 2px;
background-color: black;
left: 30px;
top: 62px;
/*绑气球的线*/.balloon-cord
height: 10px;
width: 10px;
top: 305px;
left: 82px;
background-color: pink;
border-radius: 100%;
transform: rotate(20deg);
border-bottom: 3px solid black;
border-left: 2px solid black;
border-right: 2px solid black;
z-index: 3;
.balloon-cord1
height: 100px;
width: 100px;
top: 315px;
left: 65px;
z-index: 3;
background-color: transparent;
overflow: hidden;
.balloon-cord1>
.line
position: absolute;
.balloon-cord1>
.line1,
.balloon-cord1>
.line2
width: 120px;
height: 180px;
border: 2px solid black;
border-radius: 100%;
.balloon-cord1>
.line1
top: -23px;
left: 10px;
transform: rotate(-15deg);
.balloon-cord1>
.line2
top: -23px;
left: 20px;
transform: rotate(-30deg);
四、背景相框相框制作就很简单了,咱们可以先看看相框的样子:
文章图片
这个相框制作就很简单,两个白色边框的div重叠,其中一个旋转不就好了?简单先上样式:
/*相框*/.frame,
.frame>
.box1,
.frame>
.box2
position: absolute;
.frame
top: 180px;
left: 35px;
z-index: 1;
.frame>
.box1
width: 400px;
height: 400px;
border: 10px solid white;
background-color: #fbdadf;
.frame>
.box2
top: 30px;
left: 45px;
width: 350px;
height: 350px;
border: 10px solid white;
background-color: #feb0bd;
transform: rotate(-15deg);
下面就是相框的 html 代码了:
<
!--相框-->
<
div class="frame">
<
div class="box1">
<
/div>
<
div class="box2">
<
/div>
<
/div>
几个 div 轻松解决。
五、蛋糕其实蛋糕也是相对于比较简单,就是不同的 div 进行叠加:
文章图片
咱们可以先做最下面一层蛋糕:
文章图片
这样一看不就是一个黄色 div 上面拼白色的div 和一些小半圆?对的,下面就是样式:
.cake-main
transform: rotate(-15deg) scale(1.2);
right: -85px;
.cake
height: 80px;
width: 190px;
background-color: #fcf18e;
.cream
background-color: white;
height: 20px;
width: 100%;
top: 40px;
.icing
background-color: white;
height: 15px;
width: 30px;
border-radius: 0 0 100% 100%;
.icing1
left: 5px;
.icing2
left: 35px;
.icing3
left: 65px;
.icing4
left: 95px;
.icing5
left: 125px;
.icing6
left: 155px;
cream样式就是简单的一个白色 div,而 icing从样式看也就是一个半圆,剩下的 icing1-6 也只是定位不同而已。
那么此时就完成了这个样式制作,剩下的几层只需要给予一个属性 scale 使其缩小并且移动位置即可:
.cake1
top: -70px;
transform: scale(0.8);
.cake2
top: -125px;
transform: scale(0.6);
你看上面的 cake1 和 cake2 就是这样写的,此时页面如下:
文章图片
那么接下来的蜡烛就是一个白色 div 加一个有点像火苗的圆角 div:
.candle
background-color: #f8f8f8;
height: 50px;
width: 15px;
z-index: -3;
bottom: 60px;
left: 88px;
top: -152px;
.flame
background-color: #fbb200;
height: 18px;
width: 18px;
border-radius: 0 50% 50% 50%;
top: -22px;
transform: rotate(45deg);
文章图片
六、礼物盒礼物盒制作也就是几个 div 的拼凑,本质上还是很简单的。
文章图片
上面的系带就是几个圆角 div 透明背景色并且移动转换,并且这些部分一共有头部、底部、绳子、顶部、还有系带(花),我们先看盒子和彩带的 div,首先肯定要给这些部位 absolute 属性:
.gift-main,
.gift-main>
.box-bottom,
.gift-main>
.box-top,
.gift-main>
.cord,
.gift-main>
.gift-cord,
.gift-main>
.gift-flower
position: absolute;
随后定位盒子的父容器
.gift-main
top: 690px;
left: 30px;
接着我们将底部也就是整个盒子 body 弄一个渐变色的背景:
.gift-main>
.box-bottom
width: 100px;
height: 110px;
background: repeating-linear-gradient(to right bottom, #cce1f9 0%, #cce1f9 5%, #f7f1c1 10%, #f7f1c1 15%);
接着顶部盒子给予一定的圆角:
.gift-main>
.box-top
width: 110px;
height: 20px;
background-color: #a2b9e3;
left: -5px;
border-radius: 5px;
接着就是竖着的带子:
.gift-main>
.gift-cord
height: 130px;
width: 15px;
background-color: #f1f4fb;
left: 40px;
最后就是顶部的系带(花):
.gift-main>
.gift-flower
height: 30px;
width: 20px;
background-color: transparent;
border: 3px #efeff4 solid;
top: -30px;
left: 35px;
border-radius: 100%;
此时效果如下:
文章图片
现在顶部的花就像一个环,那么我们需要多加几个花所有有多几个样式,移动旋转不同的角度,那么样式如下:
.gift-main>
.gift-flower1
left: 45px;
transform: rotate(35deg) rotateY(60deg);
.gift-main>
.gift-flower2
left: 23px;
transform: rotate(-35deg) rotateY(-60deg);
.gift-main>
.gift-flower3
top: -25px;
left: 16px;
transform: rotate(-85deg) rotateY(-60deg);
.gift-main>
.gift-flower4
top: -25px;
left: 52px;
transform: rotate(85deg) rotateY(60deg);
其余的我就不写出来了,最后你们可以直接看底部源码,那么此时的盒子就如下显示:
文章图片
那么再创建多个盒子移动位置即可:
文章图片
七、完整内容生日帽子主要是顶部一个圆,主体为一个三角形,下面的圆包裹掩盖住边缘即可实现:
文章图片
由于接下来的实现方法以及文本内容过于简单,在此不再过多赘述,下面直接贴上全部代码小伙伴参考即可,之后我再把这些元素细节加上逐个内容添加细节并讲解,在此只是大概讲解思路。
【一张图不用,纯CSS 做个贺卡】那么所有代码如下:
<
!DOCTYPE html>
<
html lang="en">
<
head>
<
meta charset="UTF-8">
<
meta http-equiv="X-UA-Compatible" content="IE=edge">
<
meta name="viewport" content="width=device-width, initial-scale=1.0">
<
title>
Happy<
/title>
<
style>
body
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
width: 100vw;
.happy-border
background-color: white;
height: 850px;
width: 550px;
display: flex;
align-items: center;
justify-content: center;
border: 8px solid #72705bca;
box-shadow: 50px 20px 10px rgb(213, 207, 207);
.happy
height: 800px;
width: 500px;
position: relative;
background-color: #feb0bd;
background-position: 0 0, 100px 100px;
background-size: 200px 200px;
overflow: hidden;
/*absolute 定位*/.triangle,
.cord
position: absolute;
/*菜带*/.ribbon,
.ribbon1,
.ribbon2,
.ribbon3,
.ribbon4
position: absolute;
.ribbon1
top: -105px;
left: 210px;
transform: rotate(35deg);
.ribbon2
top: 505px;
left: 10px;
transform: rotate(-90deg) scale(0.5);
.ribbon4
top: 705px;
left: -60px;
width: 400px;
height: 100px;
transform: rotate(0deg) scale(0.6) rotateX(180deg);
z-index: 5;
/**绳子*/.cord
width: 800px;
height: 300px;
left: -180px;
top: -310px;
background-color: transparent;
border: 1px solid rgba(41, 41, 41, 0.5);
border-radius: 100%;
transform: rotate(-15deg);
/*旗子的三角形*/.triangle
width: 50px;
height: 50px;
background: linear-gradient(to bottom right, transparent 0%, transparent 50%, #e7f7c5 50%, #e7f7c5 100%);
.triangle-1
top: 30px;
left: -10px;
transform: rotate(-30deg);
.triangle-2
top: 30px;
left: 30px;
transform: rotate(-45deg);
background: linear-gradient(to bottom right, transparent 0%, transparent 50%, #c5e4f9 50%, #c5e4f9 100%);
.triangle-3
top: 27px;
left: 80px;
transform: rotate(-65deg);
background: linear-gradient(to bottom right, transparent 0%, transparent 50%, #b3fdc4 50%, #b3fdc4 100%);
.triangle-4
top: 13px;
left: 120px;
transform: rotate(-25deg);
background: linear-gradient(to bottom right, transparent 0%, transparent 50%, #e7d7ff 50%, #e7d7ff 100%);
.triangle-5
top: 10px;
left: 170px;
transform: rotate(-55deg);
background: linear-gradient(to bottom right, transparent 0%, transparent 50%, #f466b1 50%, #f466b1 100%);
.triangle-6
top: -3px;
left: 220px;
transform: rotate(-75deg);
background: linear-gradient(to bottom right, transparent 0%, transparent 50%, #f1c13b 50%, #f1c13b 100%);
.triangle-7
top: -11px;
left: 260px;
transform: rotate(-45deg);
background: linear-gradient(to bottom right, transparent 0%, transparent 50%, #f74631 50%, #f74631 100%);
.triangle-8
top: -36px;
left: 310px;
transform: rotate(-25deg);
background: linear-gradient(to bottom right, transparent 0%, transparent 50%, #d279b3 50%, #d279b3 100%);
/*气球*/.balloon-main,
.balloon,
.balloon>
.circle,
.balloon-line,
.balloon-cord,
.balloon-cord1
position: absolute;
.balloon-main
transform: rotate(5deg);
z-index: 3;
.balloon-main1
top: 50px;
right: 190px;
transform: rotate(-35deg) scale(0.5);
.balloon-main2
top: 480px;
right: 90px;
transform: rotate(11deg) scale(0.3);
.balloon-main3
top: 630px;
right: 190px;
transform: rotate(-31deg) scale(0.3);
.balloon>
.circle
width: 60px;
height: 60px;
border-radius: 100%;
background-color: #f74631;
border: 2px solid black;
.balloon>
.circle::after
position: absolute;
content: "";
width: 10px;
height: 10px;
left: 25px;
top: 30px;
background-color: #ee8377;
border-radius: 100%;
.balloon>
.circle::before
position: absolute;
content: "";
width: 6px;
height: 6px;
left: 35px;
top: 40px;
background-color: #ee8377;
border-radius: 100%;
.balloon1,
.balloon2,
.balloon3,
.balloon4
z-index: 3;
.balloon1
top: 100px;
left: 100px;
.balloon2
top: 120px;
left: 30px;
transform: rotate(-45deg) scale(0.9);
.balloon2>
.circle
background-color: #c6feff;
.balloon2>
.circle::after,
.balloon2>
.circle::before
background-color: #a3e7f8;
.balloon3
top: 150px;
left: 30px;
transform: rotate(-45deg) scale(1.1);
.balloon3>
.circle
background-color: #ffd458;
.balloon3>
.circle::after,
.balloon3>
.circle::before
background-color: #ffedbe;
.balloon4
top: 150px;
left: 85px;
transform: rotate(15deg) scale(1.5);
.balloon4>
.circle
background-color: #d179b3;
.balloon4>
.circle::after,
.balloon4>
.circle::before
background-color: #f78ed2;
.balloon5
top: 150px;
left: -20px;
transform: rotate(-15deg) scale(2);
z-index: 2;
.balloon5>
.circle
background-color: #b3fec4;
.balloon5>
.circle::after,
.balloon5>
.circle::before
background-color: #ceeed5;
.balloon6
top: 110px;
left: 150px;
transform: rotate(35deg) scale(2.2);
z-index: 1;
.balloon6>
.circle
background-color: #7b9bce;
.balloon6>
.circle::after,
.balloon6>
.circle::before
background-color: #c2d6f2;
.balloon-line
height: 30px;
width: 2px;
background-color: black;
left: 30px;
top: 62px;
/*绑气球的线*/.balloon-cord
height: 10px;
width: 10px;
top: 305px;
left: 82px;
background-color: pink;
border-radius: 100%;
transform: rotate(20deg);
border-bottom: 3px solid black;
border-left: 2px solid black;
border-right: 2px solid black;
z-index: 3;
.balloon-cord1
height: 100px;
width: 100px;
top: 315px;
left: 65px;
z-index: 3;
background-color: transparent;
overflow: hidden;
.balloon-cord1>
.line
position: absolute;
.balloon-cord1>
.line1,
.balloon-cord1>
.line2
width: 120px;
height: 180px;
border: 2px solid black;
border-radius: 100%;
.balloon-cord1>
.line1
top: -23px;
left: 10px;
transform: rotate(-15deg);
.balloon-cord1>
.line2
top: -23px;
left: 20px;
transform: rotate(-30deg);
/*相框*/.frame,
.frame>
.box1,
.frame>
.box2
position: absolute;
.frame
top: 180px;
left: 35px;
z-index: 1;
.frame>
.box1
width: 400px;
height: 400px;
border: 10px solid white;
background-color: #fbdadf;
.frame>
.box2
top: 30px;
left: 45px;
width: 350px;
height: 350px;
border: 10px solid white;
background-color: #feb0bd;
transform: rotate(-15deg);
/*蛋糕*/.cake-main,
.cake1,
.icing,
.candle,
.cream,
.cake,
.flame
position: absolute;
.cake-main
transform: rotate(-15deg) scale(1.2);
right: -85px;
.cake
height: 80px;
width: 190px;
background-color: #fcf18e;
.cake1
top: -70px;
transform: scale(0.8);
.cake2
top: -125px;
transform: scale(0.6);
.cake-main
left: 180px;
top: 490px;
z-index: 3;
.cream
background-color: white;
height: 20px;
width: 100%;
top: 40px;
.icing
background-color: white;
height: 15px;
width: 30px;
border-radius: 0 0 100% 100%;
.icing1
left: 5px;
.icing2
left: 35px;
.icing3
left: 65px;
.icing4
left: 95px;
.icing5
left: 125px;
.icing6
left: 155px;
.candle
background-color: #f8f8f8;
height: 50px;
width: 15px;
z-index: -3;
bottom: 60px;
left: 88px;
top: -152px;
.flame
background-color: #fbb200;
height: 18px;
width: 18px;
border-radius: 0 50% 50% 50%;
top: -22px;
transform: rotate(45deg);
/*礼盒*/.gift-main,
.gift-main>
.box-bottom,
.gift-main>
.box-top,
.gift-main>
.cord,
.gift-main>
.gift-cord,
.gift-main>
.gift-flower
position: absolute;
.gift-main
top: 690px;
left: 30px;
.gift-main>
.box-bottom
width: 100px;
height: 110px;
background: repeating-linear-gradient(to right bottom, #cce1f9 0%, #cce1f9 5%, #f7f1c1 10%, #f7f1c1 15%);
.gift-main>
.box-top
width: 110px;
height: 20px;
background-color: #a2b9e3;
left: -5px;
border-radius: 5px;
.gift-main>
.gift-cord
height: 130px;
width: 15px;
background-color: #f1f4fb;
left: 40px;
.gift-main>
.gift-flower
height: 30px;
width: 20px;
background-color: transparent;
border: 3px #efeff4 solid;
top: -30px;
left: 35px;
border-radius: 100%;
.gift-main>
.gift-flower1
left: 45px;
transform: rotate(35deg) rotateY(60deg);
.gift-main>
.gift-flower2
left: 23px;
transform: rotate(-35deg) rotateY(-60deg);
.gift-main>
.gift-flower3
top: -25px;
left: 16px;
transform: rotate(-85deg) rotateY(-60deg);
.gift-main>
.gift-flower4
top: -25px;
left: 52px;
transform: rotate(85deg) rotateY(60deg);
.gift-main1
top: 730px;
left: 140px;
.gift-main1>
.box-bottom,
.gift-main3>
.box-bottom,
.gift-main5>
.box-bottom
background: repeating-linear-gradient(to left bottom, #fdf6c0 0%, #fdf6c0 5%, #f2e280 10%, #f2e280 15%);
.gift-main1>
.box-top,
.gift-main3>
.box-top,
.gift-main5>
.box-top
background-color: #f2e280;
.gift-main1>
.gift-cord,
.gift-main3>
.gift-cord,
.gift-main5>
.gift-cord
background-color: #c9dafb;
.gift-main2
top: 700px;
left: 240px;
.gift-main3
top: 780px;
left: 350px;
.gift-main4
top: 730px;
left: 450px;
.gift-main5
top: 730px;
left: 0px;
/* 文本内容 */.text,
.textbg,
.textbg>
.text,
.textbg1,
.bybg
position: absolute;
.text
width: 500px;
height: 200px;
position: absolute;
z-index: 4;
right: 0;
top: 150px;
color: #f74232;
.text15
transform: rotate(15deg);
left: 360px;
top: 180px;
color: rgb(110, 110, 226);
.text1
font-size: 110px;
.textbg,
.bybg
width: 450px;
height: 60px;
border: 3px #c2364b solid;
background-color: #ffeae8;
top: 550px;
left: 20px;
z-index: 3;
transform: rotate(10deg);
.textbg1
top: 7px;
width: 450px;
height: 40px;
border: 2px #c2364b dashed;
z-index: 4;
.textbg>
.text
top: 15px;
left: 40px;
font-size: 20px;
font-weight: 800;
color: #cc5c4b;
.bybg
width: 280px;
height: 30px;
border: 3px #c2364b solid;
background-color: #f54a3b;
top: 610px;
.bybg>
.text
top: 8px;
left: 50px;
font-size: 10px;
font-weight: 800;
color: white;
/*帽子*/.hat,
.hat>
.body,
.hat>
.top,
.hat>
.bottom,
.hat>
.bottom1,
.hat>
.bottom2,
.hat>
.bottom3,
.hat>
.bottom4,
.hat>
.bottom5,
.hat>
.bottom6,
.hat>
.bottom7,
.hat>
.bottom8,
.hat>
.bottom9,
.hat>
.bottom10,
.hat>
.bottom11
position: absolute;
z-index: 3;
.hat
width: 100px;
height: 150px;
top: 100px;
left: 240px;
z-index: 4;
transform: rotate(-30deg);
.hat>
.body
width: 0;
border-top: 50px solid transparent;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-bottom: 130px solid #799cce;
top: -40px;
.hat>
.top,
.hat>
.bottom,
.hat>
.bottom1,
.hat>
.bottom2,
.hat>
.bottom3,
.hat>
.bottom4,
.hat>
.bottom5,
.hat>
.bottom6,
.hat>
.bottom7,
.hat>
.bottom8,
.hat>
.bottom9,
.hat>
.bottom10,
.hat>
.bottom11
height: 20px;
width: 20px;
left: 42px;
background-color: #f74232;
border-radius: 100%;
.hat>
.bottom1
bottom: 0;
background-color: #d4f3dc;
.hat>
.bottom2
bottom: 1px;
left: 25px;
.hat>
.bottom3
bottom: 1px;
left: 60px;
.hat>
.bottom4
bottom: 2px;
left: 10px;
background-color: #d4f3dc;
.hat>
.bottom5
bottom: 2px;
left: 76px;
background-color: #d4f3dc;
.hat>
.bottom6
bottom: 3px;
left: 0px;
.hat>
.bottom7
bottom: 3px;
left: 85px;
.hat>
.bottom8
bottom: 5px;
left: -13px;
background-color: #d4f3dc;
z-index: 2;
.hat>
.bottom9
bottom: 5px;
left: 92px;
background-color: #d4f3dc;
z-index: 2;
.hat>
.bottom10
bottom: 10px;
left: -11px;
z-index: 1;
.hat>
.bottom11
bottom: 10px;
left: 88px;
z-index: 1;
<
/style>
<
/head>
<
body>
<
div class="happy-border">
<
div class="happy">
<
!--小旗子-->
<
div class="ribbon">
<
div class="cord">
<
/div>
<
div class="triangle triangle-1">
<
/div>
<
div class="triangle triangle-2">
<
/div>
<
div class="triangle triangle-3">
<
/div>
<
div class="triangle triangle-4">
<
/div>
<
div class="triangle triangle-5">
<
/div>
<
div class="triangle triangle-6">
<
/div>
<
div class="triangle triangle-7">
<
/div>
<
div class="triangle triangle-8">
<
/div>
<
/div>
<
!--彩旗-->
<
div class="ribbon1">
<
div class="cord">
<
/div>
<
div class="triangle triangle-1">
<
/div>
<
div class="triangle triangle-2">
<
/div>
<
div class="triangle triangle-3">
<
/div>
<
div class="triangle triangle-4">
<
/div>
<
div class="triangle triangle-5">
<
/div>
<
div class="triangle triangle-6">
<
/div>
<
div class="triangle triangle-7">
<
/div>
<
div class="triangle triangle-8">
<
/div>
<
/div>
<
!--旗子-->
<
div class="ribbon4">
<
div class="cord">
<
/div>
<
div class="triangle triangle-1">
<
/div>
<
div class="triangle triangle-2">
<
/div>
<
div class="triangle triangle-3">
<
/div>
<
div class="triangle triangle-4">
<
/div>
<
div class="triangle triangle-5">
<
/div>
<
div class="triangle triangle-6">
<
/div>
<
div class="triangle triangle-7">
<
/div>
<
div class="triangle triangle-8">
<
/div>
<
/div>
<
!--气球-->
<
div class="balloon-main">
<
div class="balloon balloon1">
<
div class="circle">
<
/div>
<
div class="balloon-line">
<
/div>
<
/div>
<
div class="balloon balloon2">
<
div class="circle">
<
/div>
<
div class="balloon-line">
<
/div>
<
/div>
<
div class="balloon balloon3">
<
div class="circle">
<
/div>
<
div class="balloon-line">
<
/div>
<
/div>
<
div class="balloon balloon4">
<
div class="circle">
<
/div>
<
div class="balloon-line">
<
/div>
<
/div>
<
div class="balloon balloon5">
<
div class="circle">
<
/div>
<
div class="balloon-line">
<
/div>
<
/div>
<
div class="balloon balloon6">
<
div class="circle">
<
/div>
<
div class="balloon-line">
<
/div>
<
/div>
<
div class="balloon-cord">
<
/div>
<
div class="balloon-cord1">
<
div class="line line1">
<
/div>
<
div class="line line2">
<
/div>
<
/div>
<
/div>
<
div class="balloon-main balloon-main1">
<
div class="balloon balloon1">
<
div class="circle">
<
/div>
<
div class="balloon-line">
<
/div>
<
/div>
<
div class="balloon balloon2">
<
div class="circle">
<
/div>
<
div class="balloon-line">
<
/div>
<
/div>
<
div class="balloon balloon3">
<
div class="circle">
<
/div>
<
div class="balloon-line">
<
/div>
<
/div>
<
div class="balloon balloon4">
<
div class="circle">
<
/div>
<
div class="balloon-line">
<
/div>
<
/div>
<
div class="balloon balloon5">
<
div class="circle">
<
/div>
<
div class="balloon-line">
<
/div>
<
/div>
<
div class="balloon balloon6">
<
div class="circle">
<
/div>
<
div class="balloon-line">
<
/div>
<
/div>
<
div class="balloon-cord">
<
/div>
<
div class="balloon-cord1">
<
div class="line line1">
<
/div>
<
div class="line line2">
<
/div>
<
/div>
<
/div>
<
div class="balloon-main balloon-main2">
<
div class="balloon balloon1">
<
div class="circle">
<
/div>
<
div class="balloon-line">
<
/div>
<
/div>
<
div class="balloon balloon2">
<
div class="circle">
<
/div>
<
div class="balloon-line">
<
/div>
<
/div>
<
div class="balloon balloon3">
<
div class="circle">
<
/div>
<
div class="balloon-line">
<
/div>
<
/div>
<
div class="balloon balloon4">
<
div class="circle">
<
/div>
<
div class="balloon-line">
<
/div>
<
/div>
<
div class="balloon balloon5">
<
div class="circle">
<
/div>
<
div class="balloon-line">
<
/div>
<
/div>
<
div class="balloon balloon6">
<
div class="circle">
<
/div>
<
div class="balloon-line">
<
/div>
<
/div>
<
div class="balloon-cord">
<
/div>
<
div class="balloon-cord1">
<
div class="line line1">
<
/div>
<
div class="line line2">
<
/div>
<
/div>
<
/div>
<
div class="balloon-main balloon-main3">
<
div class="balloon balloon1">
<
div class="circle">
<
/div>
<
div class="balloon-line">
<
/div>
<
/div>
<
div class="balloon balloon2">
<
div class="circle">
<
/div>
<
div class="balloon-line">
<
/div>
<
/div>
<
div class="balloon balloon3">
<
div class="circle">
<
/div>
<
div class="balloon-line">
<
/div>
<
/div>
<
div class="balloon balloon4">
<
div class="circle">
<
/div>
<
div class="balloon-line">
<
/div>
<
/div>
<
div class="balloon balloon5">
<
div class="circle">
<
/div>
<
div class="balloon-line">
<
/div>
<
/div>
<
div class="balloon balloon6">
<
div class="circle">
<
/div>
<
div class="balloon-line">
<
/div>
<
/div>
<
div class="balloon-cord">
<
/div>
<
div class="balloon-cord1">
<
div class="line line1">
<
/div>
<
div class="line line2">
<
/div>
<
/div>
<
/div>
<
!--相框-->
<
div class="frame">
<
div class="box1">
<
/div>
<
div class="box2">
<
/div>
<
/div>
<
!--蛋糕-->
<
div class="cake-main">
<
div class="cake">
<
div class="cream">
<
/div>
<
div class="icing icing1">
<
/div>
<
div class="icing icing2">
<
/div>
<
div class="icing icing3">
<
/div>
<
div class="icing icing4">
<
/div>
<
div class="icing icing5">
<
/div>
<
div class="icing icing6">
<
/div>
<
/div>
<
div class="cake cake1">
<
div class="cream">
<
/div>
<
div class="icing icing1">
<
/div>
<
div class="icing icing2">
<
/div>
<
div class="icing icing3">
<
/div>
<
div class="icing icing4">
<
/div>
<
div class="icing icing5">
<
/div>
<
div class="icing icing6">
<
/div>
<
/div>
<
div class="cake cake2">
<
div class="cream">
<
/div>
<
div class="icing icing1">
<
/div>
<
div class="icing icing2">
<
/div>
<
div class="icing icing3">
<
/div>
<
div class="icing icing4">
<
/div>
<
div class="icing icing5">
<
/div>
<
div class="icing icing6">
<
/div>
<
/div>
<
div class="candle">
<
div class="flame">
<
/div>
<
/div>
<
/div>
<
!--礼盒-->
<
div>
<
div class="gift-main">
<
div class="box-bottom">
<
/div>
<
div class="box-top">
<
/div>
<
div class="gift-cord">
<
/div>
<
div class="gift-flower">
<
/div>
<
div class="gift-flower gift-flower1">
<
/div>
<
div class="gift-flower gift-flower2">
<
/div>
<
div class="gift-flower gift-flower3">
<
/div>
<
div class="gift-flower gift-flower4">
<
/div>
<
/div>
<
div class="gift-main gift-main1">
<
div class="box-bottom">
<
/div>
<
div class="box-top">
<
/div>
<
div class="gift-cord">
<
/div>
<
div class="gift-flower">
<
/div>
<
div class="gift-flower gift-flower1">
<
/div>
<
div class="gift-flower gift-flower2">
<
/div>
<
div class="gift-flower gift-flower3">
<
/div>
<
div class="gift-flower gift-flower4">
<
/div>
<
/div>
<
div class="gift-main gift-main2">
<
div class="box-bottom">
<
/div>
<
div class="box-top">
<
/div>
<
div class="gift-cord">
<
/div>
<
div class="gift-flower">
<
/div>
<
div class="gift-flower gift-flower1">
<
/div>
<
div class="gift-flower gift-flower2">
<
/div>
<
div class="gift-flower gift-flower3">
<
/div>
<
div class="gift-flower gift-flower4">
<
/div>
<
/div>
<
div class="gift-main gift-main3">
<
div class="box-bottom">
<
/div>
<
div class="box-top">
<
/div>
<
div class="gift-cord">
<
/div>
<
div class="gift-flower">
<
/div>
<
div class="gift-flower gift-flower1">
<
/div>
<
div class="gift-flower gift-flower2">
<
/div>
<
div class="gift-flower gift-flower3">
<
/div>
<
div class="gift-flower gift-flower4">
<
/div>
<
/div>
<
div class="gift-main gift-main4">
<
div class="box-bottom">
<
/div>
<
div class="box-top">
<
/div>
<
div class="gift-cord">
<
/div>
<
div class="gift-flower">
<
/div>
<
div class="gift-flower gift-flower1">
<
/div>
<
div class="gift-flower gift-flower2">
<
/div>
<
div class="gift-flower gift-flower3">
<
/div>
<
div class="gift-flower gift-flower4">
<
/div>
<
/div>
<
div class="gift-main gift-main5">
<
div class="box-bottom">
<
/div>
<
div class="box-top">
<
/div>
<
div class="gift-cord">
<
/div>
<
div class="gift-flower">
<
/div>
<
div class="gift-flower gift-flower1">
<
/div>
<
div class="gift-flower gift-flower2">
<
/div>
<
div class="gift-flower gift-flower3">
<
/div>
<
div class="gift-flower gift-flower4">
<
/div>
<
/div>
<
/div>
<
!--帽子-->
<
div class="hat">
<
div class="body">
<
/div>
<
div class="top">
<
/div>
<
div class="bottom1">
<
/div>
<
div class="bottom2">
<
/div>
<
div class="bottom3">
<
/div>
<
div class="bottom4">
<
/div>
<
div class="bottom5">
<
/div>
<
div class="bottom6">
<
/div>
<
div class="bottom7">
<
/div>
<
div class="bottom8">
<
/div>
<
div class="bottom9">
<
/div>
<
div class="bottom10">
<
/div>
<
div class="bottom11">
<
/div>
<
/div>
<
!--生日快乐-->
<
div class="text" style="-webkit-text-stroke: 3px white;
">
<
span class="span1">
Happy<
/span>
<
span>
Birthday<
/span>
<
/div>
<
div class="text text15" style="-webkit-text-stroke: 3px white;
">
<
span class="span1">
15<
/span>
<
/div>
<
!--板块文本-->
<
div class="textbg">
<
div class=" textbg1">
<
/div>
<
div class="text">
年年皆胜意,岁岁都欢愉,生日快乐!
<
/div>
<
/div>
<
!--by 署名-->
<
div class="bybg">
<
div class="text">
1_bit 用无用代码祝 某某某 生日快乐!
<
/div>
<
/div>
<
/div>
<
/div>
<
/body>
<
/html>
推荐阅读
- C++实现裸音频数据的FFT变换
- C++ 炼气期之基本结构语法中的底层逻辑
- spring4.1.8初始化源码学习三部曲之三(AbstractApplicationContext.refresh方法)
- 基于云ModelArts的PPO算法玩“超级马里奥兄弟”
- # yyds干货盘点 # frida辅助分析xx牛登录算法frida辅助分析xx牛登录算法
- 焦虑没有什么,请别贩卖焦虑
- #云原生征文#Kubernetes工作负载
- MYSQL8.019 CTE 递归查询怎么解决死循环三种方法
- PostgreSQL postgresql 读书会 一期5 优化数据库的参数们