Maison > interface Web > tutoriel CSS > Présentation de la propriété CSS Clip-path

Présentation de la propriété CSS Clip-path

Joseph Gordon-Levitt
Libérer: 2025-02-21 08:29:09
original
463 Les gens l'ont consulté

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS Clip-Path: Shaping Web Elements</title>
    <style>
        body {
            font-family: sans-serif;
        }
        .container {
            display: flex;
            justify-content: center;
            align-items: center;
            min-height: 100vh;
        }
        .intro-image {
            width: 500px;
            height: auto;
        }
        .section-title {
            font-size: 1.5em;
            font-weight: bold;
            margin-bottom: 1em;
        }
        .code-example {
            background-color: #f0f0f0;
            padding: 1em;
            border-radius: 5px;
            margin-bottom: 1em;
            overflow-x: auto; /* Add horizontal scroll if needed */
        }
        .code-example pre {
            margin: 0;
        }
        .image-example {
            display: flex;
            justify-content: center;
            align-items: center;
            margin-bottom: 2em;
        }
        .image-example img {
            max-width: 100%;
            height: auto;
        }
        .key-takeaway {
            margin-bottom: 2em;
        }
        .key-takeaway ul {
            list-style-type: disc;
            padding-left: 20px;
        }
        .faq-section {
            margin-top: 3em;
        }
        .faq-section h2 {
            font-size: 1.8em;
            font-weight: bold;
            margin-bottom: 1em;
        }
        .faq-section .faq-item {
            margin-bottom: 1em;
        }
        .faq-section .faq-item h3 {
            font-weight: bold;
            margin-bottom: 0.5em;
        }
    </style>
</head>
<body>
    <div class="container">
        <img src="/static/imghw/default1.png"  data-src="https://img.php.cn/upload/article/000/000/000/174009775169997.jpg"  class="lazy" alt="Introducing the CSS clip-path Property " />
    </div>

    <p>The web's predominantly rectangular layout contrasts with print media's diverse shapes.  This difference stems partly from a lack of suitable tools. This tutorial introduces <code>clip-path</code>, a CSS property offering the design flexibility of print.</p>

    <div class="key-takeaway">
        <h2>Key Takeaways</h2>
        <ul>
            <li><code>clip-path</code> masks parts of an element, exceeding the limitations of the deprecated <code>clip</code> property (rectangular clipping only).</li>
            <li>It supports basic shapes, geometry boxes, or SVG <code><clippath></code> URLs for complex shapes and animations.</li>
            <li>Animating <code>clip-path</code> requires matching vertex counts in initial and final shapes for smooth transitions.</li>
            <li>While not universally supported, major modern browsers (Chrome, Safari, Opera) support <code>clip-path</code> (often with prefixes). Firefox support is partial.</li>
        </ul>
    </div>

    <h2>The Basics</h2>
    <p>Clipping trims parts of an element, partially or fully hiding it.  The <i>clipping path</i> defines the visible region, whether a simple shape or a complex polygon.  The <i>clipping region</i> is the area within this path.  Anything outside is hidden, including backgrounds, borders, shadows, and events.</p>
    <p>Even with non-rectangular elements, surrounding content flows naturally. For shape-aware content flow, use the <code>shape-outside</code> property (see related SitePoint tutorial).</p>
    <p>Remember: <code>clip-path</code> differs from the limited, deprecated <code>clip</code> property.</p>

    <h2>Syntax and Usage</h2>
    <p>The syntax is: <code>clip-path: <clip-source> | [<basic-shape> || <geometry-box>] | none</code></p>
    <ul>
        <li><code><clip-source></code>: An SVG <code><clippath></code> URL.</li>
        <li><code><basic-shape></code>: Basic shape functions (CSS Shapes spec).</li>
        <li><code><geometry-box></code>: (Optional) Reference box for <code><basic-shape></code>, or defines the clipping shape itself (e.g., <code>margin-box</code>).</li>
    </ul>

    <div class="code-example">
        <pre class="brush:php;toolbar:false"><code>img {
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
}
        
Copier après la connexion

Cela crée un losange. Les coordonnées du sommet (x, y) sont dans le sens horaire, par rapport à la boîte de l'élément.

Introducing the CSS clip-path Property

Coupage avec geometry-box

<code>.clip-me {
  clip-path: polygon(10% 20%, 20% 30%, 50% 80%) margin-box;
  margin: 10%;
}
        </code>
Copier après la connexion

Ici, margin-box est la référence. Les éléments SVG utilisent fill-box, stroke-box, ou view-box.

Utilisations de clip-path

clip-path Améliore le texte et les images. Les formes complexes sont facilement réalisables.

Introducing the CSS clip-path Property
<code>.p-msg {
  clip-path: polygon(0% 0%, 100% 0%, 100% 75%, 75% 85%, 75% 100%, 50% 80%, 0% 75%);
}
        </code>
Copier après la connexion

Les galeries d'images et les avatars bénéficient de formes non rectangulaires.

<code>.right {
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
  position: relative;
  top: -352px;
  left: 256px;
}
        </code>
Copier après la connexion

ajout de l'animation

animer clip-path, mais maintiennent des comptes de sommets cohérents pour les transitions en douceur.

<code>@keyframes polygons {
  25% {
    clip-path: polygon(20% 0%, 100% 38%, 70% 90%, 0% 100%);
  }
  50% {
    clip-path: polygon(0 46%, 100% 15%, 55% 74%, 0 100%);
  }
  70% {
    clip-path: polygon(100% 38%, 100% 38%, 66% 100%, 0 53%);
  }
}
        </code>
Copier après la connexion

Prise en charge du navigateur

IE et Edge manquent de soutien. Firefox a un support partiel (url() syntaxe, potentiellement activé via un drapeau). Le chrome, le safari et l'opéra nécessitent des préfixes -webkit-. Vérifiez puis-je utiliser pour les dernières informations.

Conclusion

clip-path offre des possibilités de conception importantes. Des outils comme Clippy et le générateur de chemins de cheminement de CSS Plant simplifient la création de polygones complexes.

Questions fréquemment posées (FAQ)

Quelle est la propriété CSS Clip-Path et comment ça marche?

clip-path coupe les parties d'un élément, définissant une région d'affichage. Il accepte les formes de base, les boîtes de géométrie ou les chemins SVG, permettant des formes et des animations complexes.

Comment puis-je utiliser la fonction Polygone dans CSS Clip Path?

La fonction polygon() utilise (x, y) des paires de coordonnées pour définir les sommets d'un polygone. Par exemple, clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%) crée un diamant.

Puis-je utiliser la propriété CSS Clip-Path pour une conception réactive?

Oui, utilisez des pourcentages dans les paramètres de forme pour la mise à l'échelle avec la taille de l'élément.

est-il possible d'animer la propriété CSS Clip-path?

Oui, en utilisant des images clés et la propriété animation. Gardez le nombre de sommets cohérent pour les transitions en douceur.

Quels navigateurs prennent en charge la propriété CSS Clip-path?

La plupart des navigateurs modernes le prennent en charge (vérifier que je peux utiliser pour les mises à jour).

Comment puis-je utiliser la fonction Circle dans CSS Clip Path?

circle(radius at position) crée un cercle. Par exemple, clip-path: circle(50% at 50% 50%) centre un cercle dans l'élément.

Puis-je utiliser un SVG comme trajet de clip dans CSS?

Oui, en utilisant la fonction url() pour référencer un élément svg <clippath>.

Quelle est la différence entre Clip et Clip Path dans CSS?

clip est obsolète et ne prend en charge que l'écrêtage rectangulaire. clip-path est beaucoup plus polyvalent.

Comment puis-je utiliser la fonction d'encart dans CSS Clip Path?

inset(top right bottom left [round border-radius]) crée un rectangle avec des coins arrondis facultatifs.

Puis-je utiliser plusieurs formes dans un seul chemin CSS Clip?

Oui, en utilisant la fonction path() avec la syntaxe du chemin SVG.

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 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
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal