Comment utiliser les CSS pour obtenir l’effet de noeud chinois (code)

Source : Internet
Auteur : utilisateur
Cet article vous apporte le contenu de l’utilisation de CSS pour obtenir l’effet de noeud chinois (code), il y a une certaine valeur de référence, il n’y a que besoin d’amis peut se référer à un peu, j’espère pouvoir vous aider.

Aujourd'hui, je voudrais partager avec vous un tutoriel pour dessiner les noeuds chinois avec CSS.
L’effet final est comme suit :

Tout d’abord, nous définissons la structure nécessaire pour dessiner les noeuds chinois :

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

Ensuite, commencez styles d’écriture afin que le nœud chinois est centré :

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

Définir le style de conteneur pour le noeud chinois :

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

J’ai divisé le style de base du nœud chinois en 4 rectangles, tout d’abord définir le style de base du rectangle :

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

Puis nous allons ajuster le style de chaque rectangle et combinez-les dans le look de base d’un nœud :

.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%;}

Enfin, nous utilisons les éléments pseudo des premiers et deuxième rectangles pour dessiner les deux petits cercles restants :

.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;}

Nous contacter

Le contenu de cette page provient d'Internet et ne reflète pas l'opinion d'Alibaba Cloud ; les produits et services mentionnés sur cette page n'ont aucune relation avec Alibaba Cloud. Si le contenu de la page vous semble problématique, veuillez nous écrire un courriel, nous traiterons le problème dans les 5 jours suivant la réception de votre message.

Si vous constatez des cas de plagiat de la part de la communauté, veuillez envoyer un courriel à : info-contact@alibabacloud.com et fournir des preuves pertinentes. Un membre de notre équipe vous contactera dans les 5 jours ouvrables.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.