chevron-left chevron-right

Piotr Nalepa Blog webmasterski

[CSS] Jak uzyskać efekt 3D w tekście?

Ta wersja
Opublikowano
Autor
Kategoria
CSS
Uwagi
Napisz do mnie · Napisz na X

Ten wpis ma 15 lat. Od tego czasu przeglądarki i narzędzia mogły się zmienić, więc zanim użyjesz kodu, sprawdź go z aktualną dokumentacją.

Ten wpis będzie dość krótki i będzie dotyczył sposobu uzyskania efektu trójwymiarowości w tekście za pomocą najnowszej wersji języka CSS. Nie będzie do tego potrzebna ani jedna grafika. Wszystko zostanie uzyskane za pomocą kilku linijek kodu.

Muszę wspomnieć, że efekt ten nie będzie widoczny w przeglądarkach Inernet Explorer (no chyba, że masz zainstalowane IE10 Developer Preview). Niestety, na tą chwilę nie można tego obejść w żaden sposób. Owszem, istnieją odpowiednie filtry w przeglądarce Microsoftu, ale one dodają cień lecz nie są w stanie utworzyć efektu 3D.

Na początek zdefiniujemy element, który będziemy przerabiać na 3D. W moim przypadku będzie to element p:

Przykład 1HTML
1
<p id="txt3D">Tekst w 3D</p>

Powyższy element będzie opisany następującym kodem CSS:

Przykład 2CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#txt3D {
	font-size: 72px;
	color: #fff;
	text-shadow: 
		0px 0px 0 rgb(193,193,193),
		-1px -1px 0 rgb(182,182,182),
		-2px -2px 0 rgb(172,172,172),
		-3px -3px 0 rgb(162,162,162),
		-4px -4px 0 rgb(151,151,151),
		-5px -5px 0 rgb(141,141,141),
		-6px -6px 0 rgb(131,131,131),
		-7px -7px 6px rgba(0,0,0,0.8),
		-7px -7px 1px rgba(0,0,0,0.5),
		0px 0px 6px rgba(0,0,0,.2);
}

Jak widać, atrybut text-shadow jest bardzo rozbudowany i obsługuje kilka warstw cienia. Jeśli nie chcesz tworzyć takiego kodu ręcznie, to istnieje w Internecie odpowiedni generator, który wspomoże proces tworzenia takich efektów: generator 3D.

Wpis jest bardzo krótki i mam nadzieję, że będzie użyteczny.
Demo z tego artykułu jest dostępne tutaj: tekst w 3D CSS

O autorze

Staff Software Engineer

Piszę na tym blogu od 2009 roku, a strony i aplikacje webowe tworzę zawodowo od 14 lat. Obecnie w Bishop Fox prowadzę frontend platformy Cosmos, od samego początku projektu. Wcześniej pracowałem m.in. w OLX, KUDO, Auto1 i eZ Systems. Piszę tu o tym, czego nauczyłem się w praktyce: o JavaScripcie, TypeScripcie, Reakcie, CSS-ie i architekturze frontendu. Występowałem też jako prelegent na konferencjach w Polsce i Europie. Masz pytanie albo pomysł na wpis? Daj znać!