Obecnie bawię się CSS3 i próbuję uzyskać taki efekt tekstowy (czarny rozmyty wewnętrzny cień):
Ale nie mogę znaleźć sposób, aby utworzyć cienie tekstowe wewnątrz tekstu. Zastanawiam się, czy nadal jest to możliwe, ponieważ element box-shadow jest w stanie renderować cień wewnątrz w następujący sposób:
box-shadow: inset 0px -5px 10px 0px rgba(0, 0, 0, 0.5);
Jakieś pomysły?
Odpowiedzi:
Oto mały trik odkryłem użyciu
:before
i:after
pseudo-elementy:Atrybut tytułu musi być taki sam jak treść. Demo: http://dabblet.com/gist/1609945
źródło
Powinieneś być w stanie to zrobić za pomocą cienia tekstu, lub coś takiego:
oto przykład: http://jsfiddle.net/ekDNq/
źródło
Oto moja najlepsza próba:
Problem w tym, jak przyciąć cień, który krwawi na brzegach !!! Próbowałem w webkicie używając background-clip: text, ale webkit renderuje cień nad tłem, więc nie działa.
Tworzenie maski tekstowej za pomocą CSS?
Bez górnej warstwy maskującej niemożliwe jest wykonanie prawdziwego wewnętrznego cienia na tekście.
Być może ktoś powinien zalecić W3C dodanie klipu tła: odwróconego tekstu , który przeciąłby maskę przez tło zamiast wycinać tło, aby dopasować je do tekstu.
Albo wyrenderuj cień tekstu jako część tła i przytnij go za pomocą background-clip: text.
Próbowałem bezwzględnie umieścić nad nim identyczny element tekstowy, ale problemem jest przycięcie tła: tekst przycina tło, aby dopasować się do tekstu, ale potrzebujemy odwrotności tego.
Próbowałem użyć linii tekstu: 20px biała; zarówno na tym elemencie, jak i nad nim, ale obrys tekstu wchodzi i wychodzi.
Metody alternatywne
Ponieważ obecnie nie ma sposobu na utworzenie maski z odwróconym tekstem w CSS, możesz przejść do SVG lub Canvas i zrobić obraz zastępujący tekst z trzema warstwami, aby uzyskać efekt.
Ponieważ SVG jest podzbiorem XML, tekst SVG nadal byłby możliwy do wybrania i przeszukiwania, a efekt można uzyskać przy użyciu mniejszej ilości kodu niż Canvas.
Byłoby to trudniejsze do osiągnięcia w przypadku Canvas, ponieważ nie ma domeny z warstwami, jak ma to miejsce w SVG.
Możesz utworzyć SVG po stronie serwera lub jako metodę zastępowania tekstu javascript w przeglądarce.
Dalsze czytanie:
SVG a Canvas:
http://dev.opera.com/articles/view/svg-or-canvas-choosing-between-the-two/
Przycinanie i maskowanie za pomocą tekstu SVG:
http://www.w3.org/TR/SVG/text.html#TextElement
źródło
Bardziej precyzyjne wyjaśnienie CSS w odpowiedzi kendo451 .
Jest inny sposób na uzyskanie wymyślnej iluzji wewnętrznego cienia,
którą wyjaśnię w trzech prostych krokach. Powiedzmy, że mamy ten HTML:
i ten CSS:
Krok 1
Zacznijmy od uczynienia tekstu przezroczystym:
Krok 2
Teraz przycinamy to tło do kształtu tekstu:
Krok 3
A teraz magia: umieścimy rozmazany obraz
text-shadow
, który będzie przed tłem , dając w ten sposób wrażenie wewnętrznego cienia!Zobacz efekt końcowy .
Wady?
background-clip
nie może byćtext
).źródło
text-shadow: 1px 1px 1px #000, 3px 3px 5px blue;
?Eleganckim przykładem bez konieczności korzystania z umieszczonym opakowaniu jednostkowym lub powielania treści w znacznikach:
Wygląda dobrze również na ciemnym tle:
I ME LINK I ME2 LINK
źródło
Możesz to zrobić. Niestety nie ma sposobu, aby użyć wstawki na cieniu tekstu, ale można ją sfałszować kolorem i pozycją. Zmniejsz rozmycie i ułóż cień w prawym górnym rogu. Coś takiego może załatwić sprawę:
... ale musisz bardzo, bardzo uważać na to, jakich kolorów użyjesz, w przeciwnym razie będzie wyglądać inaczej. Zasadniczo jest to złudzenie optyczne, więc nie będzie działać w każdym kontekście. Nie wygląda też świetnie przy mniejszych rozmiarach czcionek, więc pamiętaj o tym.
źródło
background-clip
jak pokazano w tej odpowiedzi .Nie ma potrzeby stosowania wielu cieni ani niczego podobnego, wystarczy zrównoważyć cień na ujemnej osi Y.
Ciemny tekst na jasnym tle:
Jeśli masz ciemne tło, możesz po prostu odwrócić kolor i pozycję y:
Baw się wartościami rgba, kryciem i rozmyciem, aby uzyskać odpowiedni efekt. Będzie to w dużej mierze zależało od posiadanej czcionki i tła, a im grubsza czcionka, tym lepiej.
źródło
Wypróbuj ten mały klejnot wariacji:
Zwykle traktuję „brak odpowiedzi” jako wyzwanie
źródło
Widziałem wiele z proponowanych rozwiązań, ale żadne nie spełniło moich oczekiwań.
Oto moja najlepsza sztuczka w tym przypadku, gdy kolor jest przezroczysty, tło i górny cień tekstu są tego samego koloru z różnymi przezroczystościami, symulując maskę, a drugi cień tekstu to ciemniejsza, bardziej nasycona wersja koloru faktycznie chcesz (całkiem łatwe do zrobienia z HSLA).
(przy okazji, tekst i stylizacja oparta na OP wątku podwójnego )
źródło
Miałem kilka przypadków, w których potrzebowałem wewnętrznych cieni w tekście, a następujące elementy dobrze mi się sprawdziły:
To ustawia krycie tekstu na 80%, a następnie tworzy dwa cienie:
Ostrzeżenia
źródło
Oto link mówiący o tym, jak to zrobić, powinno to być to, czego szukasz:
http://sixrevisions.com/css/how-to-create-inset-typography-with-css3/
źródło
Wygląda na to, że to działa: http://tips4php.net/2010/08/nice-css-text-shadow-effects/
Używa wielu cieni, aby osiągnąć ten efekt, jak wyjaśniono tutaj: http://www.w3.org/Style/Examples/007/text-shadow#multiple
źródło
Wygląda na to, że każdy ma na to odpowiedź. Podoba mi się rozwiązanie od @Web_Designer. Ale nie musi to być tak skomplikowane i nadal możesz uzyskać rozmyty wewnętrzny cień, którego szukasz.
http://dabblet.com/gist/3877605
źródło
To z pewnością najlepszy przykład, jaki widziałem. http://lab.simurai.com/carveme/
Źródło znajduje się na gitthub https://github.com/simurai/lab/tree/gh-pages/carveme
źródło
Opierając się na
:before
:after
technice web_designer, oto coś, co zbliża się do Twojego wyglądu:Najpierw nadaj tekstowi kolor wewnętrznego cienia (czarny w przypadku OP).
Teraz użyj klasy: after psuedo, aby utworzyć przezroczystą kopię oryginalnego tekstu, umieszczoną bezpośrednio na nim. Przypisz do niego zwykły cień tekstu bez przesunięcia. Przypisz oryginalny kolor tekstu do cienia i dostosuj współczynnik alfa według potrzeb.
http://dabblet.com/gist/2499892
Nie masz pełnej kontroli nad rozproszeniem itp. Cienia, tak jak w PS, ale przy mniejszych wartościach rozmycia jest to całkiem znośne. Cień wychodzi poza granice tekstu, więc jeśli pracujesz w środowisku z wysokim kontrastem tła i pierwszego planu, będzie to oczywiste. W przypadku przedmiotów o niższym kontraście, szczególnie tych o tym samym odcieniu, nie jest to zbyt zauważalne. Na przykład za pomocą tej techniki udało mi się stworzyć bardzo ładnie wyglądający wytrawiony tekst na metalowym tle.
źródło
Oto świetne rozwiązanie dla TRUE wstawionego cienia tekstu przy użyciu właściwości background-clip CSS3:
źródło
Oto, co wymyśliłem po przyjrzeniu się niektórym pomysłom tutaj. Główną ideą jest to, że kolor tekstu łączy się z obydwoma cieniami i zwróć uwagę, że jest on używany na szarym tle (w przeciwnym razie biały nie będzie dobrze widoczny).
źródło
Wypróbuj ten przykład dla wstawienia cienia tekstu. Oto kod HTML
i CSS
Demo on Jsfiddle
źródło
dla cienia skrzynki:
można zobaczyć tekst online i cień ramki: tekst online i cień ramki
na przykład możesz przejść do tego adresu: więcej przykładowego kodu freeclup
źródło
Jest na to znacznie prostszy sposób
Voilà
źródło
Dla tekstu o normalnym rozmiarze na małych przyciskach
Odkryłem, że inne pomysły na tej stronie tracą skuteczność, gdy są stosowane na małych przyciskach z małym napisem. Ta odpowiedź rozszerza odpowiedź Roberta Pitta .
Oto drobne poprawki:
Pokaż fragment kodu
Uwaga:
Użyłem tej strony do finezji odcieni kolorów.
źródło
Używam go z tej strony, również wygląda dobrze. Spójrz na to Wewnętrzny cień
źródło