chevron-left chevron-right

Piotr Nalepa Frontend, architecture and AI

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

This version
blog.piotrnalepa.pl/2011/10/04/css-jak-uzyskac-efekt-3d-w-tekscie
Published
Author
, Staff Software Engineer
Category
CSS
Feedback
Write to me · Post on X

This post is 15 years old. Browsers and tools may have changed since then, so check the code against current documentation before you use it.

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:

Example 1HTML
1
<p id="txt3D">Tekst w 3D</p>

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

Example 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

Share
Feedback

About the author

Staff Software Engineer

I've been writing this blog since 2009 and building for the web professionally for 14 years. Today I lead the frontend of the Cosmos platform at Bishop Fox, where I've been since day one of the project. Before that I worked at OLX, KUDO, Auto1 and eZ Systems. Here I write about what I've learned in practice: JavaScript, TypeScript, React, CSS and frontend architecture. I've also spoken at conferences across Poland and Europe. Got a question or an idea for a post? Let me know!