亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Table des matières
Bureau
Mobile / tablette
Maison interface Web tutoriel CSS Utilisation de masques CSS pour créer des bords déchiquetés

Utilisation de masques CSS pour créer des bords déchiquetés

Apr 06, 2025 am 10:19 AM

Créer des bords déchiquetés à l'aide du masque CSS

J'ai récemment d? créer un bord de décha?nement soigné au bas de l'image de la bannière dans un projet.

Cela m'a fait réfléchir un moment et j'ai appris quelque chose dans le processus! Je pense que je peux écrire ma méthode afin que vous puissiez l'utiliser également dans votre propre projet.

Je commence par une image HTML normale et un élément de wrapper:

<div>
  <img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/174390595232013.jpg" class="lazy" alt="Utilisation de masques CSS pour créer des bords déchiquetés">
</div>

Ensuite, j'utilise son ::after un pseudo-élément pour placer une image d'arrière-plan en double:

 .jagged-wrapper :: After {
  contenu: "";
  Image d'arrière-plan: URL ('Données: image / svg xml; UTF-8, <svg preserveaspectratio="none" viewbox="0 0 1 1" xmlns="http://www.w3.org/2000/svg"><polygon points="1,0 1,1 0,1 " style="fill:white;"></polygon></svg> ');
  taille arrière: 30px 30px;
  Largeur: 100%;
  hauteur: 30px;
  Position: absolue;
  En bas: 0px;
  à droite: 0;
  Z-Index: 2;
}

Cette image d'arrière-plan? Il s'agit du code SVG converti en un URI de données. Il s'agit du code SVG d'origine. Chris a une belle vidéo expliquant le processus de conversion.

<svg preserveaspectratio="none" viewbox="0 0 1 1" xmlns="http://www.w3.org/2000/svg">
  <polygon points="1,0 1,1 0,1 " style="fill: white;"></polygon>
</svg>

"C'est fait!" Je pensais.

Bien que cela fonctionne, ma bonté, c'est tellement gênant. La lecture des balises SVG dans CSS comme celle-ci est difficile. De plus, se souvenir de les citer est ennuyeux (par exemple url('data:image/svg xml'...') ). Bien s?r, nous pouvons base64 encodant le SVG pour éviter cela, mais c'est encore plus ennuyeux. De plus, le SVG doit être rempli de la même couleur d'arrière-plan que l'image (ou partout où vous l'utilisez), sinon elle ne fonctionnera pas.

Attendez, n'est-ce pas la fonction d'un masque? Oui! Oui, c'est ce que fait le masque.

Cela m'amène à une nouvelle approche: utilisez une image comme celle-ci comme masque CSS afin que la partie "manquante" de l'image de la bannière soit réellement manquante . Au lieu de dessiner des triangles de couleur d'arrière-plan sur le dessus de la bannière, couvrez-les complètement de la bannière et laissez le véritable arrière-plan se montrer. De cette fa?on, cela peut fonctionner dans n'importe quel contexte!

Le masque est très favorable à presque tous les endroits - du moins dans l'approche simple dont j'ai discuté ici. Nous parlons également de quelque chose qui peut être mis en ?uvre avec une amélioration progressive; Si les masques ne sont pas pris en charge dans un navigateur donné, vous n'obtiendrez pas d'effets déchiquetés. Ce n'est certainement pas la fin du monde.

Ce navigateur prend en charge les données de Caniuse, qui contient plus de détails. Le nombre indique que le navigateur prend en charge cette fonctionnalité dans cette version et plus tard.

Bureau

Mobile / tablette

Une fa?on de travailler les masques CSS est de fournir une image avec un canal alpha en tant mask-image . L'élément sous-jacent - l'élément aveugle - détermine sa (semi) transparence basée sur le canal alpha de l'image masquée. Donc, si votre image de masque est une théière blanche sur un fond transparent, les éléments en aveugle seront coupés en forme de théière et tout à l'extérieur de la théière sera caché.

Les masques peuvent être un concept incompréhensible. Sarah Drasner a un article qui explore le masque en profondeur, y compris la fa?on dont il diffère de l'édition. Les masques peuvent faire bien plus que ce que nous discutons ici. Consultez les spécifications, Caniuse et MDN pour plus d'informations.

Ce dont nous avons besoin est une seule image "dentelée" similaire au SVG ci-dessus, où la moitié supérieure gauche est remplie de blanc et le coin inférieur gauche est translucide. Et, idéalement, l'image ne devrait pas être un SVG réel, car cela nous ramènera au chaos de données laides auparavant.

à ce stade, vous pensez peut-être: "Hé, intégrez le SVG directement dans le CSS, définissez un masque dedans et pointez le CSS vers l'ID de masque dans le SVG!"

Bonne idée! Si vous pouvez modifier HTML, cela est certainement possible. Cependant, pour mon projet spécifique, j'utilise WordPress, je veux vraiment limiter mes modifications à Pure CSS au lieu d'injecter les pièces supplémentaires en HTML. Ce serait plus de travail. Je ne pense pas que ce soit rare; Pour de tels changements de démonstration, il est utile de ne pas avoir à modifier HTML. Nous convenons principalement que d'éviter les éléments d'emballage sémantiquement inutiles est simplement de fournir des crochets de style, mais je pense que cela s'applique également à l'ajout de balises SVG entières au document ... même des modèles WordPress.

Nous pouvons utiliser les gradients linéaires CSS pour créer des triangles:

 .el {
  Image d'arrière-plan: gradient linéaire (
    en bas à droite,
    Blanc,
    Blanc 50%,
    transparent 50%,
    transparent
  ));
}

C'est l'effet sur un fond radial, vous pouvez donc voir qu'il est vraiment transparent:

merveilleux! Nous pouvons l'utiliser directement comme mask-image pour les bannières, non? Nous devons définir mask-size (similaire à background-size ) et mask-repeat (similaire à background-repeat ), et nous avons terminé?

Malheureusement, non. Pas si bon.

La première raison est qu'à moins que vous n'utilisiez Firefox, vous pouvez voir que l'exemple ci-dessus n'a aucun masque du tout. En effet, au moment de la rédaction, Blink et WebKit ne prennent toujours en charge les masques avec des préfixes de fournisseurs. Cela signifie que nous avons besoin de tout avec -webkit- préfixe.

Outre le préfixe du fournisseur, ce que nous faisons est conceptuellement mauvais. Si nous limitons le masque aux bandes inférieures de l'image, en utilisant mask-size , alors le reste de l'image n'a pas du tout mask-image , ce qui l'observera complètement. Par conséquent, nous ne pouvons pas utiliser de décha?nement comme masques seuls. Nous avons besoin d'une mask-image qui est un rectangle de la même taille que l'image, avec un seul dentelé en bas.

Comme ?a:

Nous le faisons en utilisant deux images dégradées. La première image est le même triangle dentelé ci-dessus, qui est réglé sur repeat-x et est situé en bas afin qu'il se répète le long du bord inférieur de l'image. La deuxième image est un autre gradient, avec le plus bas de 30px (pour éviter de déranger le landeur), l'opaque supérieur (du noir au blanc dans la démo) et occupant toute la taille de l'élément.

Nous avons donc maintenant ce bloc de coin avec une seule dentelle triangulaire en bas qui occupe toute la hauteur de l'image de la bannière en deux sections distinctes. Enfin, nous pouvons utiliser ces blocs comme mask-image en les répétant horizontalement, ce qui devrait avoir l'effet que nous voulons:

C'est ?a!

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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Qu'est-ce que l'autoprefixer et comment ?a marche? Qu'est-ce que l'autoprefixer et comment ?a marche? Jul 02, 2025 am 01:15 AM

AutoPrefixer est un outil qui ajoute automatiquement les préfixes des fournisseurs aux attributs CSS en fonction de la portée du navigateur cible. 1. Il résout le problème de maintenir manuellement les préfixes avec des erreurs; 2. Travaillez le formulaire de plug-in PostCSS, analyse CSS, analysez les attributs qui doivent être préfixés et générer du code en fonction de la configuration; 3. Les étapes d'utilisation incluent l'installation de plug-ins, la définition de la liste de navigateurs et leur permettant dans le processus de construction; 4. Les notes ne comprennent pas manuellement les préfixes, le maintien des mises à jour de la configuration, les préfixes pas tous des attributs, et il est recommandé de les utiliser avec le préprocesseur.

Tutoriel CSS pour créer un en-tête ou un pied de page collant Tutoriel CSS pour créer un en-tête ou un pied de page collant Jul 02, 2025 am 01:04 AM

TOCREATESTICKYHEADERSERSANDFOOTERS WITHCSS, USEPOSITION: StickyforhederswithTopValueAndz-Index, assurant leparentContainerson’trestrictit.1.Forstickyheders: SetPosition: Sticky, Top: 0, Z-index, AndbackgroundColor.2

Quelle est la fonction conique-gradient ()? Quelle est la fonction conique-gradient ()? Jul 01, 2025 am 01:16 AM

THECONCON-GRADIENT () FURMATINGEnSSSCREATSCICLULARD GRODIENTSTHATATATECOLORSTOPSAROUNDacentralpoint.1.IiSIDEALFORPIECHARTS, PROGRESSINDICATEURS, Colorweels, andDecorativeBackgrounds.2.itworksByDefiningColOrStopSatSpiecificangles, FactuallylyTartingfromadefinin

Tutoriel CSS pour créer des filateurs et des animations de chargement Tutoriel CSS pour créer des filateurs et des animations de chargement Jul 07, 2025 am 12:07 AM

Il existe trois fa?ons de créer un rotateur de chargement CSS: 1. Utilisez le rotateur de base des frontières pour obtenir une animation simple via HTML et CSS; 2. Utilisez un rotateur personnalisé de plusieurs points pour atteindre l'effet de saut à travers différents temps de retard; 3. Ajoutez un rotateur dans le bouton et basculez les classes via JavaScript pour afficher l'état de chargement. Chaque approche souligne l'importance des détails de conception tels que la couleur, la taille, l'accessibilité et l'optimisation des performances pour améliorer l'expérience utilisateur.

Tutoriel CSS axé sur la conception mobile d'abord Tutoriel CSS axé sur la conception mobile d'abord Jul 02, 2025 am 12:52 AM

Mobile-FirstcssDesigrequequetsettingTheViewportMetatag, UsingrelativeUnits, StylingFromsMallScreensup, OptimizingTypographicAndTouchtarget.First, addtiControlsaling.second, use%, em, orreminsteadofpixel

Comment créer une disposition de grille intrinsèquement réactive? Comment créer une disposition de grille intrinsèquement réactive? Jul 02, 2025 am 01:19 AM

Pour créer une disposition de grille réactive intrinsèque, la méthode principale consiste à utiliser le mode répétition de CSSGrid (Auto-Fit, Minmax ()); 1. Définir la grille-template-colonnes: répéter (Auto-Fit, Minmax (200px, 1fr)) pour laisser le navigateur ajuster automatiquement le nombre de colonnes et limiter les largeurs minimales et maximales de chaque colonne; 2. Utiliser l'espace pour contr?ler l'espacement de la grille; 3. Le conteneur doit être réglé sur des unités relatives telles que la largeur: 100%, et utiliser la taille de la bo?te: Border-Box pour éviter les erreurs de calcul de la largeur et les centrer avec la marge: auto; 4. Définissez éventuellement la hauteur de la ligne et l'alignement du contenu pour améliorer la cohérence visuelle, comme la ligne

Comment centrer une grille entière dans la fenêtre? Comment centrer une grille entière dans la fenêtre? Jul 02, 2025 am 12:53 AM

Pour rendre l'intégralité de la disposition de la grille centrée dans la fenêtre, elle peut être réalisée par les méthodes suivantes: 1. Utilisez la marge: 0Auto pour atteindre le centrage horizontal, et le conteneur doit être défini pour définir la largeur fixe, qui convient à la mise en page fixe; 2. Utilisez Flexbox pour définir les propriétés de justification et d'alignement des éléments dans le récipient extérieur, et combinez la hauteur min: 100VH pour atteindre le centrage vertical et horizontal, qui convient aux scénarios d'affichage plein écran; 3. Utilisez la propriété Place-Items de CSSGrid pour se concentrer rapidement sur le conteneur parent, ce qui est simple et a un bon soutien des navigateurs modernes, et en même temps, il est nécessaire de garantir que le conteneur parent a une hauteur suffisante. Chaque méthode a des scénarios et des restrictions applicables, choisissez simplement la solution appropriée en fonction des besoins réels.

Qu'est-ce que la détection des fonctionnalités dans CSS en utilisant @Supports? Qu'est-ce que la détection des fonctionnalités dans CSS en utilisant @Supports? Jul 02, 2025 am 01:14 AM

FeatureSectionIncSsusing @ supportScheCkSifabrowSerSupportsaSaspecificfEATUREBOreApplyingreatedStyles.1.ituseSConditionalcSsblocksbasedOnproperty-Valuepraire, telshas @ supports (affichage: Grid).

See all articles