Ich spiele gerade mit CSS3 herum und versuche, einen solchen Texteffekt zu erzielen (den schwarzen, verschwommenen inneren Schatten):
Ich kann jedoch keine Möglichkeit finden, Textschatten im Text zu erstellen . Ich frage mich, ob es noch möglich ist, weil das Box-Shadow-Element in der Lage ist, Schatten im Inneren wie folgt zu rendern:
box-shadow: inset 0px -5px 10px 0px rgba(0, 0, 0, 0.5);
Irgendwelche Ideen?
Antworten:
Hier ist ein kleiner Trick, den ich mit den Pseudoelementen
:before
und entdeckt habe:after
:Das title-Attribut muss mit dem Inhalt übereinstimmen. Demo: http://dabblet.com/gist/1609945
quelle
Sie sollten in der Lage sein, dies mit dem Textschatten zu tun, ähm, denken Sie so:
Hier ist ein Beispiel: http://jsfiddle.net/ekDNq/
quelle
Hier ist mein bester Versuch:
Das Problem ist, wie man den Schatten schneidet, der an den Rändern blutet !!! Ich habe es im Webkit mit background-clip: text versucht, aber das Webkit rendert den Schatten über dem Hintergrund, sodass es nicht funktioniert.
Erstellen einer Textmaske mit CSS?
Ohne eine obere Maskenebene ist es unmöglich, einen echten inneren Schatten auf Text zu erzeugen.
Vielleicht sollte jemand dem W3C empfehlen, einen Hintergrundclip hinzuzufügen : umgekehrten Text , der eine Maske durch den Hintergrund schneidet, anstatt den Hintergrund so zu schneiden, dass er in den Text passt.
Entweder das oder den Textschatten als Teil des Hintergrunds rendern und mit Hintergrund-Clip: Text ausschneiden.
Ich habe versucht, ein identisches Textelement absolut darüber zu positionieren, aber das Problem ist der Hintergrundclip: Text schneidet den Hintergrund so ab, dass er in den Text passt, aber wir brauchen das Gegenteil davon.
Ich habe versucht, einen Strich zu verwenden: 20px weiß; sowohl auf diesem als auch auf dem darüber liegenden Element, aber der Textstrich geht sowohl rein als auch raus.
Alternative Methoden
Da es derzeit keine Möglichkeit gibt, eine invertierte Textmaske in CSS zu erstellen, können Sie sich an SVG oder Canvas wenden und ein Textersatzbild mit den drei Ebenen erstellen, um den Effekt zu erzielen.
Da SVG eine Teilmenge von XML ist, kann SVG-Text weiterhin ausgewählt und durchsucht werden, und der Effekt kann mit weniger Code als Canvas erzeugt werden.
Es wäre schwieriger, dies mit Canvas zu erreichen, da es keinen Dom mit Ebenen wie SVG gibt.
Sie können die SVG entweder serverseitig oder als Javascript-Textersetzungsmethode im Browser erstellen.
Weiterführende Literatur:
SVG versus Canvas:
http://dev.opera.com/articles/view/svg-or-canvas-choosing-between-the-two/
Ausschneiden und Maskieren mit SVG-Text:
http://www.w3.org/TR/SVG/text.html#TextElement
quelle
Genauere Erklärung des CSS in der Antwort von kendo451 .
Es gibt noch einen anderen Weg, um eine ausgefallene innere Schattenillusion zu erhalten,
die ich in drei einfachen Schritten erklären werde. Angenommen, wir haben diesen HTML-Code:
und dieses CSS:
Schritt 1
Beginnen wir damit, den Text transparent zu machen:
Schritt 2
Nun schneiden wir diesen Hintergrund auf die Form des Textes zu:
Schritt 3
Nun wird die Magie: wir werden ein verschwommenes setzen
text-shadow
, die sein wird , vor dem Hintergrund , so dass der Eindruck einer inneren Schatten zu geben!Siehe das Endergebnis .
Nachteile?
background-clip
kann nicht seintext
).quelle
text-shadow: 1px 1px 1px #000, 3px 3px 5px blue;
?Ein elegantes Beispiel, ohne dass ein positionierter Wrapper oder doppelter Inhalt im Markup erforderlich ist:
Sieht auch auf dunklem Hintergrund gut aus:
UND ME LINK UND ME2 LINK
quelle
Sie können dies irgendwie tun. Leider gibt es keine Möglichkeit, einen Einschub für Textschatten zu verwenden, aber Sie können ihn mit Farbe und Position fälschen. Nehmen Sie die Unschärfe ganz nach unten und ordnen Sie den Schatten oben rechts an. So etwas könnte den Trick machen:
... aber Sie müssen wirklich sehr, sehr vorsichtig sein, welche Farben Sie verwenden, sonst sieht es nicht gut aus. Es ist im Wesentlichen eine optische Täuschung und funktioniert daher nicht in jedem Kontext. Bei kleineren Schriftgrößen sieht es auch nicht besonders gut aus. Beachten Sie dies auch.
quelle
background-clip
wie in dieser Antwort gezeigt möglich .Es sind keine mehreren Schatten oder ähnliches erforderlich. Sie müssen lediglich Ihren Schatten auf der negativen y-Achse versetzen.
Für dunklen Text auf hellem Hintergrund:
Wenn Sie einen dunklen Hintergrund haben, können Sie einfach die Farbe und die y-Position umkehren:
Spielen Sie mit den RGBA-Werten, der Deckkraft und der Unschärfe, um den richtigen Effekt zu erzielen. Es hängt stark davon ab, welche Farbschrift und welchen Hintergrund Sie haben. Je schwerer die Schrift, desto besser.
quelle
Probieren Sie dieses kleine Juwel einer Variation:
Normalerweise nehme ich "es gibt keine Antwort" als Herausforderung
quelle
Ich habe viele der vorgeschlagenen Lösungen gesehen, aber keine war genau das, was ich mir erhofft hatte.
Hier ist mein bester Hack, bei dem die Farbe transparent ist, der Hintergrund und der obere Textschatten dieselbe Farbe mit unterschiedlichen Opazitäten haben und die Maske simulieren. Der zweite Textschatten ist eine dunklere, gesättigtere Version der Farbe, die Sie verwenden eigentlich wollen (ziemlich einfach mit HSLA zu tun).
(Übrigens, Text und Styling basierend auf dem OP eines Dupe-Threads )
quelle
Ich hatte einige Fälle, in denen ich innere Schatten auf Text brauchte, und Folgendes hat für mich gut funktioniert:
Dadurch wird die Deckkraft des Texts auf 80% festgelegt und anschließend zwei Schatten erstellt:
Vorsichtsmaßnahmen
quelle
Hier ist ein Link, der darüber spricht, wie das geht. Es sollte das sein, wonach Sie suchen:
http://sixrevisions.com/css/how-to-create-inset-typography-with-css3/
quelle
Das sieht so aus, als würde es funktionieren: http://tips4php.net/2010/08/nice-css-text-shadow-effects/
Er verwendet mehrere Schatten, um diesen Effekt zu erzielen, wie hier erläutert: http://www.w3.org/Style/Examples/007/text-shadow#multiple
quelle
Anscheinend hat jeder eine Antwort auf diese Frage. Ich mag die Lösung von @Web_Designer. Aber es muss nicht so komplex sein und Sie können immer noch den verschwommenen inneren Schatten erhalten, den Sie suchen.
http://dabblet.com/gist/3877605
quelle
Dies ist mit Sicherheit das beste Beispiel, das ich je gesehen habe. http://lab.simurai.com/carveme/
Die Quelle ist auf gitthub https://github.com/simurai/lab/tree/gh-pages/carveme
quelle
Aufbauend auf der
:before
:after
Technik von web_designer kommt hier etwas näher an Ihren Look heran:Stellen Sie Ihren Text zunächst auf die Farbe des inneren Schattens ein (im Fall des OP schwarz).
Verwenden Sie jetzt eine: after pseudo-Klasse, um ein transparentes Duplikat des Originaltextes zu erstellen, das direkt darüber platziert wird. Weisen Sie ihm einen regulären Textschatten ohne Versatz zu. Weisen Sie dem Schatten die ursprüngliche Textfarbe zu und passen Sie das Alpha nach Bedarf an.
http://dabblet.com/gist/2499892
Sie erhalten keine vollständige Kontrolle über die Ausbreitung usw. des Schattens wie in PS, aber für kleinere Unschärfewerte ist dies durchaus passabel. Der Schatten überschreitet die Grenzen des Textes. Wenn Sie also in einer Umgebung mit einem kontrastreichen Hintergrund-Vordergrund arbeiten, ist dies offensichtlich. Bei Gegenständen mit geringerem Kontrast, insbesondere bei Gegenständen mit demselben Farbton, ist dies nicht allzu auffällig. Zum Beispiel konnte ich mit dieser Technik sehr gut aussehenden geätzten Text in Metallhintergründen erstellen.
quelle
Hier ist eine großartige Lösung für TRUE-Textschatten mithilfe der CSS3-Eigenschaft für Hintergrundclips:
quelle
Folgendes habe ich mir ausgedacht, nachdem ich mir einige der Ideen hier angesehen habe. Die Hauptidee ist, dass die Farbe des Textes mit beiden Schatten verschmilzt. Beachten Sie, dass dies auf einem grauen Hintergrund verwendet wird (andernfalls wird das Weiß nicht gut angezeigt).
quelle
Versuchen Sie dieses Beispiel für eingefügten Textschatten. Hier ist der HTML-Code
und das CSS
Demo on Jsfiddle
quelle
für Kastenschatten:
Sie können Online-Text und Box-Schatten sehen: Online-Text und Box-Schatten
Für mehr Beispiele können Sie zu dieser Adresse gehen: mehr Beispielcode freeclup
quelle
Es gibt einen viel einfacheren Weg, dies zu erreichen
Voilà
quelle
Für normal großen Text auf kleinen Schaltflächen
Ich habe festgestellt, dass die anderen Ideen auf dieser Seite ihre Wirksamkeit verlieren, wenn sie auf kleinen Schaltflächen mit kleiner Textbeschriftung verwendet werden. Diese Antwort erweitert die Antwort von RobertPitt .
Hier ist die kleine Änderung:
Code-Snippet anzeigen
Hinweis:
Ich habe diese Seite benutzt, um die Farbtöne zu verfeinern.
quelle
Ich benutze es von dieser Seite, auch es sieht gut aus. Schau es dir an Innerer Schatten
quelle