Voici mon meilleur essai:
.inner_shadow {
color:transparent;
background-color:white;
text-shadow: 0 0 20px rgba(198,28,39,0.8), 0 0 0 black;
font-family:'ProclamateHeavy'; // Or whatever floats your boat
font-size:150px;
}
<span class="inner_shadow">Inner Shadow</span>
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