Maison > interface Web > tutoriel CSS > Dessiner le drapeau du Togo avec CSS

Dessiner le drapeau du Togo avec CSS

Susan Sarandon
Libérer: 2024-11-22 11:54:14
original
307 Les gens l'ont consulté

En vérifiant la page Wikipédia du drapeau du Togo, elle le décrit comme :

  • Cinq bandes horizontales alternant entre le vert et le jaune
  • Un champ carré rouge dans le coin supérieur gauche
  • Une étoile blanche à cinq branches sur fond rouge
  • Il a une proportion de 3:5 (5 unités de largeur pour 3 unités de hauteur)

Drawing Togo

Quant aux couleurs, nous utiliserons :

  • #006a4e pour le vert
  • #ffce00 pour le jaune
  • #d21034 pour le rouge
  • #fff pour le blanc

HTML

Nous coderons ce drapeau à l'aide d'un seul élément HTML :

<div role="img" aria-label="Flag of Togo">



<p>For accessibility reasons, we added a couple of attributes:<br>
role="img" to indicate the element represents an image.<br>
aria-label="Flag of Togo" so assistive technologies can announce the image as Togo's flag.</p>

<p>Maybe it would be better to have a second visually-hidden element with the flag's "alternative text" linked with an aria-labelledby, but we'll keep it as a single element for simplicity.</p>
<h2>
  
  
  CSS
</h2>

<p>Let's start by setting the flag properties that will be needed:<br>
</p>

<pre class="brush:php;toolbar:false">.flag.togo {
  aspect-ratio: 5 / 3;
  position: relative;
}
Copier après la connexion

Avec le rapport hauteur/largeur, nous définissons les proportions du drapeau (la largeur passe en premier dans ce cas). Et nous définissons une position relative car nous dessinerons l'étoile en utilisant un pseudo-élément à position absolue et nous voulons la conserver dans le conteneur de drapeau.

Pour le fond, nous avons besoin de cinq bandes horizontales : verte, jaune, verte, jaune et verte. Il s'agit d'un motif répétitif de verts et de jaunes qui peut être facilement codé à l'aide d'un dégradé linéaire répétitif :

.flag.togo {
  aspect-ratio: 5 / 3;
  position: relative;
  background: repeating-linear-gradient(#006a4e 0 20%, #ffce00 0 40%);
}
Copier après la connexion

Drawing Togo

Maintenant que nous avons les barres, nous avons besoin du carré rouge en haut à gauche. Nous pourrions utiliser un pseudo-élément, mais à la place, nous ajouterons un autre dégradé à l'arrière-plan :

.flag.togo {
  aspect-ratio: 5 / 3;
  position: relative;
  background: 
    linear-gradient(#d21034 0 0) 0 0 / 36% 60% no-repeat,
    repeating-linear-gradient(#006a4e 0 20%, #ffce00 0 40%);
}
Copier après la connexion

Ce nouveau dégradé sera entièrement rouge (#d21034 0 0), positionné en haut à gauche du drapeau (0 0), avec une largeur de 36% et une hauteur de 60% du drapeau (36% 60% ) il conserve donc la proportion 3:5 qui en fera un carré (36 = 60 * 3/5). Et nous devons nous assurer que cela ne se répète pas (pas de répétition), sinon cela occupera tout le conteneur et tout sera rouge.

Drawing Togo

Avec cela, nous avons la base du drapeau, et nous devons dessiner l'étoile. Nous pourrions le faire avec des dégradés coniques, mais ce serait une petite douleur dans le cou. Au lieu de cela, nous utiliserons un pseudo-élément, puis le recadrerons en forme d'étoile à l'aide du chemin de clip :

.flag.togo::before {
  content: "";
  width: 20%;
  aspect-ratio: 1;
  position: absolute;
  /* half of the size of the red square */
  left: 18%;
  top: 30%;
  /* translated half its size to top and left to center it */
  transform: translate(-50%, -50%);
  background: #fff;
  clip-path: polygon(50% 2%, 62% 39%, 100% 39%, 69% 61%, 81% 98%, 
                     50% 75%, 19% 98%, 31% 61%, 0% 39%, 38% 39%);
}
Copier après la connexion

Remarque : ce sont des points approximatifs pour l'étoile. Nous pourrions utiliser la trigonométrie pour le rendre parfait. Mais cela fonctionnera comme une assez bonne approximation.
Avec ça, c'est fini ! L'ensemble du code CSS du drapeau du Togo serait :

.flag.togo {
  aspect-ratio: 5 / 3;
  position: relative;
  background: 
    linear-gradient(#d21034 0 0) 0 0 / 36% 60% no-repeat,
    repeating-linear-gradient(#006a4e 0 20%, #ffce00 0 40%);

  &::before {
    content: "";
    width: 20%;
    aspect-ratio: 1;
    position: absolute;
    left: 18%;
    top: 30%;
    background: #fff;
    clip-path: polygon(50% 2%, 62% 39%, 100% 39%, 69% 61%, 81% 98%, 
                       50% 75%, 19% 98%, 31% 61%, 0% 39%, 38% 39%);
  }
}
Copier après la connexion

Drawing Togo

Quelques réflexions

Si nous ajoutons un display: inline-block aux styles du drapeau, nous pourrons l'avoir en ligne avec le texte. Dans ce cas, nous devrons définir une hauteur ou une largeur pour que la propriété aspect-ratio puisse faire sa magie et définir automatiquement l'autre valeur.

En dessinant ce drapeau, nous avons pratiqué :

  • Positionnement : relatif et absolu
  • Dégradés : linéaires et linéaires répétitifs
  • Rapports d'aspect : pour définir la taille du drapeau et de l'étoile
  • Clip-paths : pour façonner l'étoile
  • Pseudo-éléments : pour créer l'étoile elle-même

J'espère que vous avez apprécié ce court tutoriel. Je prévois d'en publier un nouveau prochainement avec d'autres drapeaux, expliquant comment fonctionnent les différents dégradés, pas seulement les dégradés linéaires. Gardez-le à l’œil !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal