Maison > interface Web > tutoriel CSS > Pourquoi les bordures transparentes déforment-elles les arrière-plans dégradés en CSS ?

Pourquoi les bordures transparentes déforment-elles les arrière-plans dégradés en CSS ?

DDD
Libérer: 2024-11-24 02:09:09
original
581 Les gens l'ont consulté

Why Do Transparent Borders Distort Gradient Backgrounds in CSS?

Distorsion de la bordure transparente avec un arrière-plan dégradé

En CSS, l'application d'une bordure transparente à un élément avec un arrière-plan dégradé linéaire peut provoquer un effet inhabituel effet où les bords gauche et droit de l'élément présentent une coloration déformée ou aplatie.

Cela se produit parce que les points de début et de fin du dégradé résident au bords de la boîte de remplissage, tandis que la bordure est rendue à l'extérieur de celle-ci. Par conséquent, la bordure apparaît visuellement déformée car l'arrière-plan est répété de chaque côté de la zone de remplissage pour remplir la zone de bordure.

Cause de la distorsion

La La raison de cette distorsion réside dans la façon dont le navigateur interprète le modèle de boîte CSS. La padding-box détermine la zone dans laquelle le contenu de l'élément est placé, tandis que la border-box englobe la padding-box et la bordure. Dans le scénario donné, l'arrière-plan dégradé est contenu dans la zone de remplissage, mais la bordure transparente s'étend au-delà de ses limites.

Solution

Pour résoudre ce problème, un peut utiliser une propriété CSS appelée "box-shadow: inset". Contrairement à une bordure, une ombre de boîte incrustée est rendue dans la zone de remplissage, fournissant un effet visuellement similaire à une bordure sans provoquer de distorsion.

En remplaçant la bordure par la propriété box-shadow suivante, l'apparence souhaitée peut être réalisé :

box-shadow: inset 0 0 0 10px rgba(0,0,0,0.2);
Copier après la connexion

De plus, comme une ombre de boîte n'occupe pas d'espace comme une bordure, il est nécessaire d'augmenter le remplissage en conséquence.

Illustration

Le diagramme suivant illustre la différence entre la padding-box et la border-box :

[Image de padding-box et border-box]

Démonstration

Une démonstration interactive du la solution peut être trouvée sur : http://jsfiddle.net/ilpo/fzndodgx/5/

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