Maison > Questions et réponses > le corps du texte
P粉3928610472023-08-30 10:51:11
C'est possible, et cela ne nécessite aucun balisage supplémentaire mais utilise ::after
pseudo-éléments .
Il s'agit de placer un pseudo-élément avec un fond dégradé en dessous et de le recadrer. Cela fonctionne pour tous les navigateurs qui n'ont actuellement pas de préfixes de fournisseur ou de hacks (même IE), mais si vous souhaitez prendre en charge les versions rétro d'IE, vous devriez envisager des solutions de secours en couleurs unies, du javascript et/ou des extensions CSS MSIE personnalisées (c'est-à-dire
过滤器
, CSSPie - comme l'usurpation d'identité vectorielle, etc.).
version jsfiddle) :
@import url('//raw.githubusercontent.com/necolas/normalize.css/master/normalize.css'); html { /* just for showing that background doesn't need to be solid */ background: linear-gradient(to right, #DDD 0%, #FFF 50%, #DDD 100%); padding: 10px; } .grounded-radiants { position: relative; border: 4px solid transparent; border-radius: 16px; background: linear-gradient(orange, violet); background-clip: padding-box; padding: 10px; /* just to show box-shadow still works fine */ box-shadow: 0 3px 9px black, inset 0 0 9px white; } .grounded-radiants::after { position: absolute; top: -4px; bottom: -4px; left: -4px; right: -4px; background: linear-gradient(red, blue); content: ''; z-index: -1; border-radius: 16px; }
<p class="grounded-radiants"> Some text is here.<br/> There's even a line break!<br/> so cool. </p>
box-shadow
、inset
P粉9523651432023-08-30 00:07:25
Selon les spécifications du W3C, cela n'est peut-être pas possible :
Cela peut être dû au fait que border-image
certains modèles potentiellement complexes peuvent être adoptés. Si vous souhaitez une bordure d'image circulaire, vous devrez en créer une vous-même.