Je joue actuellement avec CSS3 et j'essaie d'obtenir un effet de texte comme celui-ci (l'ombre intérieure floue noire):
Mais je ne trouve pas de moyen de créer des ombres de texte à l' intérieur du texte. Je me demande si cela est toujours possible car l'élément box-shadow est capable de rendre l'ombre à l'intérieur comme ceci:
box-shadow: inset 0px -5px 10px 0px rgba(0, 0, 0, 0.5);
Des idées?
Réponses:
Voici un petit truc que j'ai découvert en utilisant la
:before
et:after
pseudo-éléments:L'attribut title doit être le même que le contenu. Démo: http://dabblet.com/gist/1609945
la source
Vous devriez pouvoir le faire en utilisant text-shadow, ou quelque chose comme ceci:
voici un exemple: http://jsfiddle.net/ekDNq/
la source
Voici mon meilleur essai:
Le problème est de savoir comment couper l'ombre qui saigne sur les bords !!! J'ai essayé dans webkit en utilisant background-clip: text, mais webkit rend l'ombre au-dessus de l'arrière-plan pour que cela ne fonctionne pas.
Faire un masque de texte avec CSS?
Sans un calque de masque supérieur, il est impossible de créer une véritable ombre intérieure sur le texte.
Peut-être que quelqu'un devrait recommander que le W3C ajoute background-clip: reverse-text , qui couperait un masque à travers l'arrière-plan au lieu de couper l'arrière-plan pour s'adapter à l'intérieur du texte.
Soit cela, soit le rendu de l'ombre du texte comme partie de l'arrière-plan et le clip avec background-clip: text.
J'ai essayé de positionner absolument un élément de texte identique au-dessus, mais le problème est background-clip: le texte rogne l'arrière-plan pour s'adapter à l'intérieur du texte, mais nous avons besoin de l'inverse.
J'ai essayé d'utiliser le trait de texte: 20px blanc; à la fois sur cet élément et sur celui au-dessus, mais le trait de texte entre aussi bien en dedans qu'en dehors.
Méthodes alternatives
Comme il n'y a actuellement aucun moyen de créer un masque de texte inversé en CSS, vous pouvez vous tourner vers SVG ou Canvas et créer une image de remplacement de texte avec les trois calques pour obtenir votre effet.
Puisque SVG est un sous-ensemble de XML, le texte SVG serait toujours sélectionnable et interrogeable, et l'effet peut être produit avec moins de code que Canvas.
Ce serait plus difficile à réaliser avec Canvas car il n'a pas de dom avec des couches comme SVG.
Vous pouvez produire le SVG soit côté serveur, soit comme méthode de remplacement de texte javascript dans le navigateur.
Lectures complémentaires:
SVG contre toile:
http://dev.opera.com/articles/view/svg-or-canvas-choosing-between-the-two/
Détourage et masquage avec texte SVG:
http://www.w3.org/TR/SVG/text.html#TextElement
la source
Explication plus précise du CSS dans la réponse de kendo451 .
Il existe une autre façon d'obtenir une illusion d'ombre intérieure fantaisiste,
que je vais expliquer en trois étapes simples. Disons que nous avons ce code HTML:
et ce CSS:
Étape 1
Commençons par rendre le texte transparent:
Étape 2
Maintenant, nous recadrons cet arrière-plan à la forme du texte:
Étape 3
Maintenant, la magie: on va mettre un flouté
text-shadow
, qui sera devant l'arrière-plan , donnant ainsi l'impression d'une ombre intérieure!Voir le résultat final .
Des inconvénients?
background-clip
impossibletext
).la source
text-shadow: 1px 1px 1px #000, 3px 3px 5px blue;
?Un exemple élégant sans avoir besoin d'un wrapper positionné ou d'un contenu duplicatif dans le balisage:
Convient également aux arrière-plans sombres:
AND ME LINK ET ME2 LINK
la source
Vous pouvez en quelque sorte le faire. Malheureusement, il n'y a aucun moyen d'utiliser un encart sur l'ombre du texte, mais vous pouvez le simuler avec la couleur et la position. Réduisez le flou vers le bas et disposez l'ombre en haut à droite. Quelque chose comme ça pourrait faire l'affaire:
... mais vous devrez être vraiment très prudent sur les couleurs que vous utilisez, sinon cela aura l'air mauvais. C'est essentiellement une illusion d'optique et ne fonctionnera donc pas dans tous les contextes. Il n'a pas non plus vraiment fière allure avec les tailles de police plus petites, alors soyez conscient de cela aussi.
la source
background-clip
comme indiqué dans cette réponse .Il n'y a pas besoin de plusieurs ombres ou de quelque chose d'extraordinaire comme ça, il vous suffit de décaler votre ombre sur l'axe y négatif.
Pour du texte sombre sur un fond clair:
Si vous avez un arrière-plan sombre, vous pouvez simplement inverser la couleur et la position y:
Jouez avec les valeurs rgba, l'opacité et le flou pour obtenir l'effet parfait. Cela dépendra beaucoup de la couleur de la police et de l'arrière-plan que vous avez, et plus la police est lourde, mieux c'est.
la source
Essayez ce petit bijou d'une variante:
Je considère généralement "il n'y a pas de réponse" comme un défi
la source
J'ai vu plusieurs des solutions proposées, mais aucune n'était tout à fait ce que j'espérais.
Voici mon meilleur hack à ce sujet , où la couleur est transparente, l'arrière-plan et l'ombre du texte supérieure sont de la même couleur avec des opacités variables, simulant le masque, et la deuxième ombre du texte est une version plus sombre et plus saturée de la couleur que vous voulez vraiment (assez facile à faire avec HSLA).
(btw, texte et style basés sur l'OP d' un fil de dupe )
la source
J'ai eu quelques cas où j'avais besoin d'ombres intérieures sur du texte, et ce qui suit a bien fonctionné pour moi:
Cela définit l'opacité du texte à 80%, puis crée deux ombres:
Mises en garde
la source
Voici un lien expliquant comment faire cela, cela devrait être ce que vous recherchez:
http://sixrevisions.com/css/how-to-create-inset-typography-with-css3/
la source
Cela semble fonctionner: http://tips4php.net/2010/08/nice-css-text-shadow-effects/
Il utilise plusieurs ombres pour obtenir cet effet, comme expliqué ici: http://www.w3.org/Style/Examples/007/text-shadow#multiple
la source
Il semble que tout le monde a une réponse à celle-ci. J'aime la solution de @Web_Designer. Mais cela n'a pas besoin d'être aussi complexe que cela et vous pouvez toujours obtenir l'ombre intérieure floue que vous recherchez.
http://dabblet.com/gist/3877605
la source
C'est de loin le meilleur exemple que j'ai vu. http://lab.simurai.com/carveme/
La source est sur gitthub https://github.com/simurai/lab/tree/gh-pages/carveme
la source
En vous
:before
:after
appuyant sur la technique de web_designer, voici quelque chose qui se rapproche de votre look:Tout d'abord, donnez à votre texte la couleur de l'ombre intérieure (noirâtre dans le cas de l'OP).
Maintenant, utilisez une classe: after psuedo pour créer une copie transparente du texte d'origine, placée directement au-dessus de celui-ci. Attribuez-lui une ombre de texte ordinaire sans décalage. Attribuez la couleur du texte d'origine à l'ombre et ajustez l'alpha si nécessaire.
http://dabblet.com/gist/2499892
Vous n'obtenez pas un contrôle complet sur la propagation, etc. de l'ombre comme vous le faites dans PS, mais pour des valeurs de flou plus petites, c'est tout à fait passable. L'ombre dépasse les limites du texte, donc si vous travaillez dans un environnement avec un arrière-plan à contraste élevé, ce sera évident. Pour les éléments à faible contraste, en particulier ceux avec la même teinte, ce n'est pas trop perceptible. Par exemple, j'ai pu créer de très beaux textes gravés sur des arrière-plans métalliques en utilisant cette technique.
la source
Voici une excellente solution pour VRAI ombre de texte incrusté en utilisant la propriété CSS3 background-clip:
la source
Voici ce que j'ai trouvé après avoir examiné certaines des idées ici. L'idée principale est que la couleur du texte se mélange avec les deux ombres, et notez que cela est utilisé sur un fond gris (sinon le blanc ne s'affichera pas bien).
la source
Essayez cet exemple pour une ombre de texte incrustée. Voici le HTML
et le CSS
Demo on Jsfiddle
la source
pour l'ombre de la boîte:
vous pouvez voir le texte en ligne et l'ombre de zone: texte en ligne et ombre de zone
pour plus d'exemple vous pouvez aller à cette adresse: plus d'exemple de code freeclup
la source
Il existe un moyen beaucoup plus simple d'y parvenir
Voilà
la source
Pour du texte de taille normale sur des boutons de petite taille
J'ai trouvé que les autres idées de cette page perdaient leur efficacité lorsqu'elles étaient utilisées sur de petits boutons avec de petits caractères. Cette réponse étend la réponse de RobertPitt .
Voici le petit tweak:
Afficher l'extrait de code
Remarque:
J'ai utilisé ce site pour affiner les nuances de couleurs.
la source
Je l'utilise depuis ce site, aussi ça a l'air bien. Jetez un oeil à l'ombre intérieure
la source