Kutija-sjena - CSS-trikovi

Anonim

Koristi se za lijevanje sjena (često nazvanih "Ispuštanje sjena", kao u Photoshopu) iz elemenata. Evo primjera s najdubljom mogućom podrškom za preglednik:

.shadow ( -webkit-box-shadow: 3px 3px 5px 6px #ccc; /* Safari 3-4, iOS 4.0.2 - 4.2, Android 2.3+ */ -moz-box-shadow: 3px 3px 5px 6px #ccc; /* Firefox 3.5 - 3.6 */ box-shadow: 3px 3px 5px 6px #ccc; /* Opera 10.5, IE 9, Firefox 4+, Chrome 6+, iOS 5 */ )

Taj:

box-shadow: (horizontal offset) (vertical offset) (blur radius) (optional spread radius) (color);
  1. Horizontalni pomak (potreban) sjene, pozitivan znači da će sjena biti s desne strane okvira, negativni pomak stavit će sjenku s lijeve strane okvira.
  2. Vertikalni pomak (potreban) sjene, negativan znači da će sjena biti iznad okvira, pozitivan znači da će sjena biti ispod okvira.
  3. Radijus zamućenja (potreban), ako je postavljena na 0, sjena će biti oštra, što je veći broj, to će biti zamućenija, a sjena će se dalje širiti. Na primjer, sjena s vodoravnim pomakom od 5 piksela koja također ima radijus zamućenja od 5 piksela bit će 10 piksela ukupne sjene.
  4. Polumjer širenja (neobavezno), pozitivne vrijednosti povećavaju veličinu sjene, negativne vrijednosti smanjuju veličinu. Zadana vrijednost je 0 (sjena je iste veličine kao zamućenje).
  5. Boja (obavezna) - uzima bilo koju vrijednost boje, poput hex-a, named-a, rgba ili hsla. Ako je vrijednost boje izostavljena, sjene okvira crtaju se u boji prednjeg plana (tekst color). No, imajte na umu da stariji preglednici WebKit (prije Chromea 20 i Safari 6) ignoriraju pravilo kada se boja izostavlja.

Korištenje poluprozirne boje kao što rgba(0, 0, 0, 0.4)je najčešća i lijep efekt, jer ne pokriva potpuno / neprozirno ono što je gotovo, već omogućuje da se ono ispod nalazi malo, poput prave sjene.

Primjer

Unutarnja sjena

.shadow ( -moz-box-shadow: inset 0 0 10px #000000; -webkit-box-shadow: inset 0 0 10px #000000; box-shadow: inset 0 0 10px #000000; )

Primjer

Internet Explorer (8 i stariji) Box Shadow

Trebate dodatni element, ali to je moguće učiniti filter.

 Box-shadowed element 
.shadow1 ( margin: 40px; background-color: rgb(68,68,68); /* Needed for IEs */ -moz-box-shadow: 5px 5px 5px rgba(68, 68, 68, 0.6); -webkit-box-shadow: 5px 5px 5px rgba(68, 68, 68, 0.6); box-shadow: 5px 5px 5px rgba(68, 68, 68, 0.6); filter: progid:DXImageTransform.Microsoft.Blur(PixelRadius=3,MakeShadow=true,ShadowOpacity=0.30); -ms-filter: "progid:DXImageTransform.Microsoft.Blur(PixelRadius=3,MakeShadow=true,ShadowOpacity=0.30)"; zoom: 1; ) .shadow1 .content ( position: relative; /* This protects the inner element from being blurred */ padding: 100px; background-color: #DDD; )

Samo s jedne strane

Korištenjem negativnog radijusa širenja možete stisnuti sjenu kutije i odgurnuti je samo s jednog ruba kutije.

.one-edge-shadow ( box-shadow: 0 8px 6px -6px black; )

Više granica i više

Možete zarezom odvojiti okvir-sjenku koliko god puta želite. Na primjer, ovo pokazuje dvije sjene s različitim položajima i različitim bojama na istom elementu:

box-shadow: inset 5px 5px 10px #000000, inset -5px -5px 10px blue;

Primjer pokazuje kako to možete koristiti za stvaranje više obruba:

Pogledajte olovku Multiple box hlad u sjeni! Chris Coyier (@chriscoyier) na CodePenu.

Primjenom sjena na pseudo elemente kojima zatim manipulirate, možete dobiti neke prilično otmjene 3D sjene u obliku okvira:

Pogledajte Pen CSS3 Box Shadows Effects Halila İbrahima Nuroğlua (@haibnu) na CodePenu.

Super glatke sjene putem višestrukih vrijednosti odvojenih zarezom:

Pogledajte
sjenilo glatke kutije olovke Chrisa Coyiera (@chriscoyier)
na CodePenu.

Podrška preglednika

Pogledajte isječak na vrhu stranice za pojedinosti o pokrivenosti prefiksa dobavljača. Ovo je jedno od onih svojstava kod kojih je ispuštanje prefiksa u ovom trenutku prilično razumno.