您好,欢迎来到易妖游戏网。
搜索
您的当前位置:首页如何使用css实现中国结的效果(代码)

如何使用css实现中国结的效果(代码)

来源:易妖游戏网
 这篇文章给大家带来的内容是关于如何使用css实现中国结的效果(代码) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

今天跟大家分享一个用 css 画中国结的教程。
最终效果如下:

首先,我们定义好画中国结需要的结构:

<div class="knot">
 <span class="box"></span>
 <span class="box"></span>
 <span class="box"></span>
 <span class="box"></span>
</div>

然后开始写样式,让中国结居中显示:

body {
 margin: 0;
 padding: 0;
 height: 100vh;
 display: flex;
 align-items: center;
 justify-content: center;
}

设置装中国结的容器样式:

.knot {
 box-sizing: border-box;
 font-size: 100px;
 width: 2em;
 height: 1.6em;
 background: skyblue;
 display: flex;
 align-items: center;
 justify-content: center;
}

我把中国结的基础样式拆分成4个长方形,首先来定义长方形的基础样式:

.box {
 position: absolute;
 box-sizing: border-box;
 width: 1em;
 height: 0.4em;
 border: var(--b) solid firebrick;
 --b: 0.1em;
}

然后我们来调整每一个长方形的样式,把它们组合成结的基础样子:

.knot .box:nth-child(1) {
 transform: rotate(45deg) translate(-15%, -38%);
 border-radius: 20% 0% 0% 20% / 50% 0 0 50%;
}

.knot .box:nth-child(2) {
 transform: rotate(45deg) translate(15%, 37%);
 border-radius: 0% 20% 20% 0% / 0% 50% 50% 0%;
}

.knot .box:nth-child(3) {
 transform: rotate(-45deg) translate(15%, -38%);
 border-radius: 0% 20% 20% 0% / 0% 50% 50% 0%;
}

.knot .box:nth-child(4) {
 transform: rotate(-45deg) translate(-15%, 37%);
 border-radius: 20% 0% 0% 20% / 50% 0 0 50%;
}

最后,我们利用第一个和第二个长方形的伪元素来画出余下的那两个小圆圈:

.knot .box:nth-child(1)::after {
 box-sizing: border-box;
 content: '';
 position: absolute;
 width: 0.4em;
 height: 0.4em;
 border: var(--b) solid firebrick;
 border-radius: 50% 50% 50% 0%;
 top: -0.4em;
 right: -0.4em;
}

.knot .box:nth-child(2)::after {
 box-sizing: border-box;
 content: '';
 position: absolute;
 width: 0.4em;
 height: 0.4em;
 border: var(--b) solid firebrick;
 border-radius: 50% 0% 50% 50%;
 top: 0.2em;
 right: 0.8em;
}

Copyright © 2019- vipyiyao.com 版权所有 湘ICP备2023022495号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务