Kastes ēna iekšējā ēna. Iekšējās ēnas CSS

Līdz ar standarta parādīšanos CSS 3 ieviesa box-shadow rekvizītu, kas ir kļuvis plaši izmantots tīmekļa izstrādātāju vidū, jo tas ļauj viegli pievienot vienu vai vairākas ēnas elementa lodziņā, lai iegūtu vēlamo vizuālo efektu.

Iepriekšējā rakstā mēs apskatījām robežu rādiusu, izmantojot to, jūs varat iegūt ēnu ar noapaļotiem stūriem. Pēc analoģijas ar teksta ēnu (teksta ēna) varat izveidot vairākas ēnas, tās tiek piemērotas saskaņā ar z-ass no priekšpuses uz aizmuguri (ar pirmo doto ēnu uz augšu).

Sīkāk apskatīsim šī modernā īpašuma sintaksi:


Apskatīsim secībā iespējamās šī īpašuma vērtības:

NozīmeApraksts
neviensĒna netiek rādīta. Šī ir noklusējuma vērtība.
ielaidumsIzvēles vērtība. Ja šī vērtība nav norādīta (noklusējums), ēna atradīsies elementa ārpusē un radīs elementa izliekuma efektu. Ja ir atslēgvārda (vērtības) ieliktnis, ēna iekritīs elementā un radīs iespiestu efektu. Citiem vārdiem sakot, tā ir maiņa no ārējās ēnas uz iekšējo.
h-ēnaNepieciešamā vērtība. Iestata horizontālās ēnas atrašanās vietu. Ir atļautas negatīvas vērtības.
v-ēnaNepieciešamā vērtība. Iestata vertikālās ēnas atrašanās vietu. Ir atļautas negatīvas vērtības.
izplūduma rādiussIzvēles vērtība. Iestata izplūšanas rādiusu. Jo lielāka vērtība, jo lielāks ir izplūdums, padarot ēnu lielāku un gaišāku. Ja vērtība nav norādīta, vērtība būs 0 (asas - izteiktas ēnas). Negatīvās vērtības nav atļautas.
izplatības rādiussIzvēles vērtība.Ēnas izmērs (ēnas stiepes rādiuss). Ar pozitīvām vērtībām ēna paplašināsies, bet ar negatīvām vērtībām tā samazināsies. Ja vērtība nav norādīta, vērtība būs 0 (ēna atbilst elementa izmēram).
krāsaIzvēles vērtība. Nosaka ēnas krāsu (HEX, RGB, RGBA, HSL, HSLA, "Iepriekš definētas krāsas"). Noklusējuma vērtība ir melna.

Galvenie punkti, kas jums jāsaprot, lai izveidotu elementu ēnas, ir:

Vēlos vērst jūsu uzmanību uz to, ka rekvizītu box-shadow pašlaik atbalsta visas mūsdienu pārlūkprogrammas:

Īpašums
Opera

IExplorer

Mala
kaste-ēna10.0
4.0
-tīmekļa komplekts-
4.0
3.5
-moz-
10.5 5.1
3.1
-tīmekļa komplekts-
9.0 12.0

Ja vēlaties paplašināt atbalstu dažām pārlūkprogrammām, tostarp mobilajām ierīcēm iOS 3.2–4.3 Un Android 2.1–3, tad ieteicams izmantot ražotāja prefiksus un izmantot šādu sintaksi (raksta piemēros sintakse tiks izmantota tikai mūsdienu pārlūkprogrammām):

-webkit-box-shadow: vērtība; /* Safari 3.1–4, IOS 3.2–4.3 un Android 2.1–3 */-moz-box-shadow : vērtība ; /* Firefox 3.5–3.6 */ box-shadow : value ; /* tabula augstāk */

Pāriesim pie prakses un sāksim ar vienkāršu piemēru, kurā elementiem pievienojam vienu ēnu:

Piemērs rekvizīta box-shadow izmantošanai CSS
box-shadow: 10px 10px 0px sarkans;
klase = "test2" > box-shadow:10px 10px 10px #777;


Mūsu piemēra rezultāts:

Vairāku ēnu izmantošana

Nākamajā piemērā es ierosinu apsvērt interesanto krāsu sajaukšanas efektu, ko var panākt, izmantojot vairākas ēnas:

Piemērs vairāku ēnu izmantošanai CSS (rekvizīts box-shadow)


  • Divas fiksēta platuma un augstuma bloki (15em un 10em), pievienots polsterējums uz visām pusēm (2em) un iestatiet blokus uz bloku līniju, lai varētu tos sakārtot.
  • Priekš vispirms bloks ar klasi .pārbaude mēs norādījām četriēnas ar dažādām horizontālām un vertikālām ēnu vērtībām, lai elementam būtu dažādas ēnas no visām pusēm. Visu ēnu izplūšanas rādiuss tika iestatīts uz vienādu. Katras ēnas krāsa ir atšķirīga un tiek norādīta, izmantojot iepriekš noteiktas krāsas.
  • Priekš otrais bloks ar klasi .test2 mēs norādījām četriēnas ar dažādām horizontālām un vertikālām ēnu vērtībām. Visu ēnu izplūšanas rādiuss tika iestatīts uz vienādu, savukārt ēnas stiepums tika iestatīts uz negatīvu, kas izraisīja pašas ēnas samazināšanos. Katras ēnas krāsa ir atšķirīga un tiek noteikta, izmantojot RGBA sistēmu.

Mūsu piemēra rezultāts:

Ēnu izmantošana attēliem

Šī raksta pēdējā piemērā galvenā uzmanība tiks pievērsta ēnu izmantošanai attēliem. Es nekavējoties vēlos vērst jūsu uzmanību uz to, ka jūs varat tieši norādīt ēnu HTML elementam Tas nedarbosies, taču mums ir iespēja norādīt attēlu kā fonu mūs interesējošajam elementam un pēc tam piešķirt šim elementam vajadzīgo ēnu.

Mēs detalizēti apskatīsim darbu ar fona attēliem mācību grāmatas rakstā "", un tagad, lai izbeigtu ēnu izmantošanas izpēti, mēs tam pieskarsimies virspusēji un izmantosim attēlu kā fonu elementam tālāk. piemērs:

Attēlu ēnu izmantošanas piemērs CSS


  • Divas fiksēta platuma un augstuma blokus (237 pikseļi un 232 pikseļi), visām pusēm ir pievienotas piemales (2 em) un iestatiet blokus uz bloku līniju, lai varētu tos sakārtot. Mēs iestatījām bloka izmēru 237 x 232 pikseļi atbilstoši attēla izmēram, lai šajā apmācības posmā mums nebūtu jāmēro attēls, lai tas atbilstu elementam un ietekmētu tās CSS īpašības, kuras plānots izpētīt vēlāk. (mācību grāmatas rakstā " ").
  • Priekš vispirms bloks ar klasi .pārbaude Mēs norādījām nulles vērtību horizontālajai un vertikālajai ēnai, taču tajā pašā laikā mēs norādījām izplūšanas rādiusu 50 pikseļus un paplašinājām to, iestatot stiepes rādiusu — 10 pikseļi. Ēnu krāsa tika norādīta ar iepriekš noteiktu krāsu (violetu). Turklāt deklarācijā norādījām ielikto atslēgvārdu, kas izraisa ēnas iekrišanu elementā. Citiem vārdiem sakot, mēs esam radījuši elementa iekšējo ēnu.
  • Priekš otrais bloks ar klasi .test2 Mēs norādījām nulles vērtību horizontālajai un vertikālajai ēnai, taču tajā pašā laikā mēs norādījām izplūšanas rādiusu 50 pikseļus un paplašinājām to, iestatot stiepes rādiusu — 10 pikseļi. Ēnu krāsa ir norādīta RGBA režīmā.

Mūsu piemēra rezultāts:

Rīsi. 98 Piemērs ēnu izmantošanai attēliem CSS (box-shadow rekvizīts)

Jautājumi un uzdevumi par tēmu

Pirms pāriet pie nākamās tēmas, izpildiet prakses uzdevumu:


Ja jums ir grūtības izpildīt prakses uzdevumu, jūs vienmēr varat atvērt piemēru atsevišķā logā un pārbaudīt lapu, lai saprastu, kāds CSS kods tika izmantots.


2016-2019 Deniss Boļšakovs, komentārus un ieteikumus par vietnes darbu varat sūtīt uz [email protected]

īsa informācija

CSS versijas

CSS 1 CSS 2 CSS 2.1 CSS 3

Apraksts

Pievieno elementam ēnu. Var izmantot vairākas ēnas, norādot to parametrus atdalot ar ēnām, pirmā ēna sarakstā būs augstāka, pēdējā zemāka; Ja elementam ir norādīts noapaļošanas rādiuss, izmantojot rekvizītu border-radius, tad ēnai būs arī noapaļoti stūri. Ēnas pievienošana palielina elementa platumu, tāpēc pārlūkprogrammā var parādīties horizontāla ritjosla.

Sintakse

kastes ēna: nav |<тень> [,<тень>]*
Kur<тень>:
ielaidums<сдвиг по x> <сдвиг по y> <радиус размытия> <растяжение> <цвет>

Vērtības

none Atceļ ēnas pievienošanu. ielaidums Ēna tiek ievilkta elementa iekšpusē. Izvēles parametrs. x offset Ēnas horizontālā nobīde attiecībā pret elementu. Pozitīva šī parametra vērtība pārvieto ēnu pa labi, negatīva – pa kreisi. Nepieciešamais parametrs. y nobīde Ēnas vertikālā nobīde attiecībā pret elementu. Pozitīva vērtība novirza ēnu uz leju, negatīva - uz augšu. Nepieciešamais parametrs. blur Iestata ēnas izplūšanas rādiusu. Jo augstāka šī vērtība, jo vairāk ēna tiek izlīdzināta, kļūstot platākai un gaišākai. Ja šis parametrs nav norādīts, noklusējuma vērtība ir iestatīta uz 0, kas padarīs ēnu asu, nevis izplūdušu. stiept Pozitīva vērtība izstiepj ēnu, negatīva vērtība, gluži pretēji, to saspiež. Ja šis parametrs nav norādīts, noklusējuma vērtība ir 0, kā rezultātā ēna būs tāda paša izmēra kā elementam. krāsa Ēnas krāsa jebkurā pieejamajā CSS formātā, noklusējuma ēna ir melna. Izvēles parametrs.

Ir iespējams norādīt vairākas ēnas, to parametrus atdalot ar komatu. Tiek ņemta vērā šāda secība: pirmā ēna sarakstā atrodas pašā augšā, pēdējā sarakstā ir pašā apakšā.

HTML5 CSS3 IE Cr Op Sa Fx

kaste-ēna

Vai citrusaugļi dzīvotu dienvidu biezokņos? Jā, bet viltota kopija!


Piemēra rezultāts ir parādīts attēlā. 1.

Rīsi. 1. Ēnu skats pārlūkprogrammā Safari

Pārlūkprogrammas

Safari pirms versijas 5.1, Chrome pirms versijas 10.0, Android pirms versijas 4.0 un iOS Safari pirms versijas 5.0 atbalsta rekvizītu -webkit-box-shadow.

Firefox pirms versijas 4.0 atbalsta rekvizītu -moz-box-shadow.

Internet Explorer pirms versijas 9.0 neatbalsta box-shadow rekvizītu, tā vietā varat izmantot nestandarta filtra rekvizītu:

Filtrs: progid:DXImageTransform.Microsoft.dropshadow(offX=5, offY=5, color=#000000);

Šeit: offX - horizontāla ēnas nobīde; offY — vertikālās ēnas nobīde; krāsa — ēnu krāsa.

Lietojot ēnu filtru, tiek iegūta skaidra, asa ēna, tāpēc varat izmantot ēnu filtru izplūšanas efektam.

Filtrs: progid:DXImageTransform.Microsoft.shadow(virziens=120, krāsa=#000000, stiprums=10);

Šeit: virziens — ēnas virziena leņķis no 0 līdz 360°; color — ēnu krāsa; stiprums — ēnu nobīde pikseļos.

Rekvizīts box-shadow elementam pievieno vienu vai vairākas ēnas. Ēna ir elementa kopija, kas nobīdīts ar norādīto attālumu. Ēnas var būt ārējās vai iekšējās, izplūdušas vai plakanas, un tās var sekot bloku kontūrām ar noapaļotiem stūriem. Izmantojot ielikto atslēgvārdu, elementa iekšpusē tiek izveidotas ēnas, padarot elementu vizuāli apjomīgu vai nospiestu.

Kā izveidot lodziņa ēnu, izmantojot rekvizītu box-shadow

Pārlūka atbalsts

IE: 9.0
Mala: 12.0
Firefox: 4.0, 3.5 -moz-
Chrome: 10.0, 4.0 - tīmekļa komplekts-
Safari: 5.1, 3.1 - tīmekļa komplekts-
Opera: 11.5
iOS Safari: 5.1, 3.1 - tīmekļa komplekts-
Android pārlūkprogramma: 4.0, 2.1 - tīmekļa komplekts-

1. Box-shadow rekvizītu sintakse

Katrai ēnai ir no viena līdz pieciem parametriem: horizontālā nobīde, vertikālā nobīde, izplūšanas rādiuss (neobligāti), izkliedes rādiuss (neobligāti) un ēnas krāsa. Ēnas neietekmē izkārtojumu un var pārklāties ar blakus esošajiem elementiem vai to ēnām. Īpašums nav mantots.


Rīsi. 1. Box-shadow rekvizītu sintakse
Vērtības:
x-nobīde Nepieciešamā vērtība. Ēnas horizontālā nobīde attiecībā pret bloku. Tam var būt gan pozitīvas, gan negatīvas vērtības, pozitīva novirza ēnu pa labi no bloka, negatīva – pa kreisi.
y-nobīde Nepieciešamā vērtība. Ēnas vertikālā nobīde attiecībā pret bloku. Var pieņemt gan pozitīvas, gan negatīvas vērtības, pozitīvais ēnu pārvieto uz leju, negatīvs ēnu uz augšu.
aizmiglot Izvēles vērtība. Nosaka ēnas izplūšanas rādiusu. Jo lielāks rādiuss, jo izplūdušāka ir ēna. Var izmantot tikai pozitīvas vērtības.
stiepšanās Pēc izvēles paplašina ēnu, sabiezinot cieto daļu starp izplūdušajām malām. Pieņem gan pozitīvas, gan negatīvas vērtības, norādītas garuma vienībās - px utt.
krāsa Izvēles vērtība. Pēc noklusējuma ēna ir melna. Lai iestatītu vērtību, varat izmantot šādus krāsu ierakstīšanas formātus: #RRGGBB , rgb (sarkans, zaļš, zils) , rgba (sarkans, zaļš, zils, alfa) . Programmai Safari ir jānorāda ēnu krāsa.
ielaidums Izveido ēnu bloka iekšpusē.
neviens Noklusējuma vērtība nozīmē, ka nav ēnas.
sākotnējā Iestata rekvizīta vērtību uz noklusējuma vērtību.
mantot Manto rekvizītu vērtību no vecākelementa.

2. Bloku ēnu piemēri

2.1. Iekšējā ēna

.example-shadow-1 (fons: #e6e3df; teksta izlīdzināšana: centrā; ) .example-shadow-1 span (mala: 50 pikseļi; augstums: 100 pikseļi; platums: 200 pikseļi; displejs: inline-block; box-shadow: ielaidums 2 pikseļi 2 pikseļi 5 pikseļi rgba (154, 147, 140, 0,5), 1 pikseļi 1 pikseļi 5 pikseļi rgba (255, 255, 255, 1);

2.2. Vienā pusē plakana ēna

plakans

plakans

.example-shadow-2 ( fons: bēšs; teksta līdzinājums: centrā; ) .example-shadow-2 a ( displejs: iekļauts bloks; apmales rādiuss: 5 pikseļi; polsterējums: 15 pikseļi 35 pikseļi; fonta izmērs: 22 pikseļi; piemale : 20 pikseļi: fons: #55acee 0 .example-shadow-2 a: hover;

CSS rekvizīts box-shadow pievieno elementam vienu vai vairākas ēnas. Lai norādītu vairākas ēnas, jāpievieno papildu ēnas vērtība(-as), atdalot tās ar komatiem.


Pārlūka atbalsts

Īpašums
Opera

IExplorer

Mala
kaste-ēna10.0
4.0
-tīmekļa komplekts-
4.0
3.5
-moz-
10.5 5.1
3.1
-tīmekļa komplekts-
9.0 12.0

CSS sintakse:

kastes ēna: "nav| ielikts h-ēna v-ēna izplūšanas rādiuss izkliedes rādiuss krāsa | sākotnējais | mantot";

JavaScript sintakse:

Object.style.boxShadow = "10 pikseļi 5 pikseļi 5 pikseļi sarkans"

Īpašumu vērtības

NozīmeApraksts
neviensĒna netiek rādīta. Šī ir noklusējuma vērtība.
ielaidumsIzvēles vērtība. Ja šī vērtība nav norādīta (noklusējums), ēna atradīsies elementa ārpusē un radīs elementa izliekuma efektu. Ja ir iekļauts atslēgvārds (vērtība), ēna iekritīs elementā un radīs atkāpes efektu. Citiem vārdiem sakot, tā ir maiņa no ārējās ēnas uz iekšējo.
h-ēnaNepieciešamā vērtība. Iestata horizontālās ēnas atrašanās vietu. Ir atļautas negatīvas vērtības.
v-ēnaNepieciešamā vērtība. Iestata vertikālās ēnas atrašanās vietu. Ir atļautas negatīvas vērtības.
izplūduma rādiussIzvēles vērtība. Iestata izplūšanas rādiusu. Jo lielāka vērtība, jo lielāks ir izplūdums, padarot ēnu lielāku un gaišāku. Ja vērtība nav norādīta, vērtība būs 0 (asas - izteiktas ēnas). Negatīvās vērtības nav atļautas.
izplatības rādiussIzvēles vērtība.Ēnas izmērs (ēnas stiepes rādiuss). Ar pozitīvām vērtībām ēna paplašināsies, bet ar negatīvām vērtībām tā samazināsies. Ja vērtība nav norādīta, vērtība būs 0 (ēna atbilst elementa izmēram).
krāsaIzvēles vērtība. Nosaka ēnas krāsu (HEX, RGB, RGBA, HSL, HSLA, "Iepriekš definētas krāsas"). Noklusējuma vērtība ir melna.
Iestata īpašuma noklusējuma vērtību.
Norāda, ka vērtība ir mantota no vecākelementa.

CSS versija

CSS3

Iedzimts

Nē.

Animējams

Jā.

Lietošanas piemērs

Elementu ēnas CSS
klase = "pārbaudījums" >



Tāpat kā 3. atjauninājumā, bet ar moderniem css noteikumiem (=mazāk), lai nav nepieciešama īpaša pozicionēšana uz pseidoelementa.

#box ( fona krāsa: #3D6AA2; platums: 160 pikseļi; augstums: 90 pikseļi; pozīcija: absolūts; augšā: calc(10% - 10px); pa kreisi: calc(50% - 80px); ) .box-shadow:after ( saturs:"" platums: 100%; box-shadow: 0px 2px #000000;

ATJAUNINĀJUMS 3

#box ( fona krāsa: #3D6AA2; platums: 160 pikseļi; augstums: 90 pikseļi; mala augšā: -45 pikseļi; mala-kreisais: -80 pikseļi; pozīcija: absolūtā; augšā: 50%; pa kreisi: 50%; ) .box- shadow:after ( saturs: ""; platums: 150 pikseļi; augstums: 1 pikseļi; mala augšpusē: 88 pikseļi; mala-kreisais: -75 pikseļi; displejs: bloks; pozīcija: absolūtā; pa kreisi: 50%; z-indekss: -1; -webkit-box-shadow: 0px 0px 2px #000000 -moz-box-shadow: 0px 8px 2px #000000: 0px 8px 2px #000;

ATJAUNINĀJUMS 2

Acīmredzot to var izdarīt tikai ar neobligāto CSS lodziņa tagu opciju, kā visi citi tikko norādīja. Šeit ir demonstrācija:

Webkit-box-shadow: 0 4px 4px -2px #000000; -moz-box-shadow: 0 4px 4px -2px #000000; box-shadow: 0 4px 4px -2px #000000;

Tas būtu labākais risinājums. Pievienotais papildu parametrs ir aprakstīts šādi:

Ceturtais garums ir izkliedes attālums. Pozitīvas vērtības izraisa ēnas formas izplešanos virzienā pa norādīto rādiusu. Negatīvās vērtības liek ēnas formai sakrist.

ATJAUNINĀT

Es izveidoju "ēnas elementu", kas paslēptos aiz faktiskā elementa, kuru vēlaties atrast ēnā. Es padarīju "ēnas elementa" platumu tieši mazāk platu par faktisko elementu, 2 reizes lielāku par norādīto ēnu; tad es to pareizi izlīdzināju.

#iesaiņojums ( platums: 84 pikseļi; pozīcija: relatīvs; ) # elements ( fona krāsa: #3D668F; augstums: 54 pikseļi; platums: 100%; pozīcija: relatīvs; z-indekss: 10; ) #ēna ( fona krāsa: # 3D668F augstums: 8px: -40px z-index: 0px 4px #000000;

Oriģinālā atbilde

Jā, varat to izdarīt, izmantojot to pašu sintaksi, kuru norādījāt. Pirmā vērtība kontrolē horizontālo pozicionēšanu, bet otrā vērtība kontrolē vertikālo pozicionēšanu. Tāpēc vienkārši iestatiet pirmo vērtību uz 0 pikseļu, bet otro — uz jebkuru nobīdi, kuru vēlaties veikt, kā norādīts tālāk.




Tops