Maison >interface Web >tutoriel CSS >Comment créer un hexagone avec bordure et remplissage à l'aide de superpositions CSS ?

Comment créer un hexagone avec bordure et remplissage à l'aide de superpositions CSS ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-31 17:33:01347parcourir

How to Create a Hexagon with Border and Fill Using CSS Overlays?

Création d'un hexagone avec bordure et remplissage

Les hexagones sont généralement créés à l'aide de bordures CSS via des pseudo-éléments. Bien qu'il ne soit pas directement possible de remplir un hexagone avec une couleur et de le délimiter avec une autre, une approche alternative consiste à superposer plusieurs hexagones les uns dans les autres.

Méthode de superposition

En superposant des hexagones, vous pouvez obtenir l'effet souhaité sans vous fier aux images. L'exemple suivant illustre cette méthode :

HTML :

<code class="html"><div class="hex">
    <div class="hex inner">
        <div class="hex inner2"></div>
    </div>
</div></code>

CSS :

<code class="css">.hex {
    /* Define shape, size, and colors */
    margin-top: 70px;
    width: 208px;
    height: 120px;
    background: #6C6;
    position: relative;
}

.hex:before, .hex:after {
    /* Create hexagon shape */
    content: "";
    border-left: 104px solid transparent;
    border-right: 104px solid transparent;
    position: absolute;
}

.hex:before {
    top: -59px;
    border-bottom: 60px solid #6C6;
}

.hex:after {
    bottom: -59px;
    border-top: 60px solid #6C6;
}

.hex.inner {
    /* Style inner hexagon */
    background-color: blue;
    transform: scale(.8, .8);
    z-index: 1;
}

.hex.inner:before {
    border-bottom: 60px solid blue;
}

.hex.inner:after {
    border-top: 60px solid blue;
}

.hex.inner2 {
    /* Style innermost hexagon */
    background-color: red;
    transform: scale(.8, .8);
    z-index: 2;
}

.hex.inner2:before {
    border-bottom: 60px solid red;
}

.hex.inner2:after {
    border-top: 60px solid red;
}</code>

Ce code crée trois hexagones superposés, chacun avec des couleurs et un z-index différents. valeurs. La propriété transform: scale() est utilisée pour diminuer proportionnellement les dimensions des éléments internes, créant ainsi un effet superposé.

Exemple en direct

Vous pouvez voir un exemple en direct de cette technique ici : [Exemple de bordure et de remplissage hexagonal](https://codepen.io/username/pen/wveBJp)

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!

Déclaration:
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