Fereastra pop-up folosind HTML și CSS. Fereastra modală în JavaScript Crearea unei ferestre modale în html

Pentru a afișa mesaje importante sau pur și simplu modificări efectuate pe site, puteți folosi ferestre pop-up. Există două tipuri de ferestre pop-up: obișnuite și modale.

Notă: ferestrele modale diferă de ferestrele obișnuite prin aceea că, în timp ce fereastra modală este deschisă, utilizatorul nu poate interacționa cu alte elemente ale site-ului până când fereastra modală este închisă.

Puteți vedea un exemplu de fereastră modală folosind JavaScript folosind metoda alert().

Fereastra pop-up

Primul pas în crearea unui pop-up este să creați un element (sau orice alt element) și să îl stilați:

Titlul documentului .okno ( lățime: 300px; înălțime: 50px; text-align: center; padding: 15px; chenar: 3px solid #0000cc; chenar-radius: 10px; culoare: #0000cc; ) Fereastra pop-up! Încerca "

Aceasta va fi folosită ca o fereastră pop-up. Acum îl ascundem folosind valoarea proprietății de afișare none și adăugăm un link care, atunci când facem clic, va face să apară o fereastră pop-up:

Titlul documentului #okno ( lățime: 300px; înălțime: 50px; text-align: center; padding: 15px; chenar: 3px solid #0000cc; border-radius: 10px; culoare: #0000cc; display: none; ) #okno:target (afișare: bloc;) Fereastra pop-up! Apel pop-up Încercați »

Folosind pseudo-class:target selectăm și aplicăm stiluri elementului la care a fost navigat. Astfel, după ce faceți clic pe link, valoarea proprietății de afișare a elementului se va schimba de la none la block .

Acum trebuie să-l poziționăm în mijlocul paginii, astfel încât să arate ca o fereastră pop-up. Faceți-l să fie poziționat absolut și centrați-l vertical și orizontal:

#okno ( lățime: 300px; înălțime: 50px; text-align: center; padding: 15px; chenar: 3px solid #0000cc; chenar-radius: 10px; culoare: #0000cc; afișare: niciunul; /*poziție și centru*/ poziție: absolută: 0;

Următorul pas este să implementați ascunderea ferestrei atunci când faceți clic pe orice loc din pagină sau pe fereastra în sine. Pentru a face acest lucru, trebuie să poziționăm elementul în interiorul elementului:

Fereastra pop-up!

Apoi poziționăm elementul și întindeți-l pe toată lățimea și înălțimea ferestrei. Îl setăm afișare: niciunul; și redirecționează linkul nostru către el:

Titlul documentului #principal ( afișare: niciunul; poziție: absolut; sus: 0; stânga: 0; lățime: 100%; înălțime: 100%; ) #okno ( lățime: 300px; înălțime: 50px; text-align: center; padding : 15px; 3px culoare: #0000cc: 0; Apel pop-up Încercați »

Eliminați afișajul: niciunul din element. (nu mai este necesar, din moment ce acum ne ascundem ). Ca urmare, părintele acum ascunde fereastra pop-up redirecționând selecția către pagină.

Aceasta completează crearea unei ferestre pop-up simple.

Fereastra modală

Pentru a crea o fereastră pop-up modală, luați elementul, proiectați-l și adăugați un link, când faceți clic pe el va apărea:

Titlul documentului #okno ( lățime: 300px; înălțime: 50px; text-align: center; padding: 15px; chenar: 3px solid #0000cc; chenar-radius: 10px; culoare: #0000cc; afișare: niciunul; poziție: absolut; sus : 0; dreapta: 0; margine: auto; Apel pop-up

Următorul pas în crearea unei ferestre modale cu drepturi depline este să adăugați un buton care va ascunde fereastra noastră. Vom face un buton dintr-un link obișnuit, adăugându-l la al nostru și proiectându-l:

Titlul documentului #okno ( lățime: 300px; înălțime: 50px; text-align: center; padding: 15px; chenar: 3px solid #0000cc; chenar-radius: 10px; culoare: #0000cc; afișare: niciunul; poziție: absolut; sus : 0; stânga: 0: țintă: bloc; : #e6e6ff;)
Închideți fereastra Apelați fereastra pop-up Încercați »

Pentru efectul de estompare a paginii atunci când afișați o fereastră modală, trebuie să plasați tot codul de fereastră existent într-unul suplimentar:

Fereastra pop-up!
Închideți o fereastră

Poziționați-l pe cel părinte și întindeți-l pe toată lățimea și înălțimea ferestrei. Îl setăm afișare: niciunul; și redirecționează linkul de apel fereastră către acesta.

Pentru copil, eliminați afișajul: niciunul; (nu mai este necesar deoarece părintele va ascunde totul în interiorul ei). Drept urmare, părintele este acum responsabil pentru afișarea ferestrei modale și pentru estomparea fundalului paginii, iar copilul este responsabil doar pentru decorarea ferestrei în sine:

Titlul documentului #zatemnenie ( fundal: rgba(102, 102, 102, 0,5); lățime: 100%; înălțime: 100%; poziție: absolut; sus: 0; stânga: 0; afișaj: niciunul; ) #okno ( lățime: 300px; alinierea textului: 10px; ; bordura: 1px culoare: #0000cc margine: #f2f2f2;
Închideți fereastra Apelați fereastra pop-up Încercați »

Notă: dacă aveți nevoie ca utilizatorul să vadă imediat o fereastră pop-up când intră în pagină (și nu o apelează printr-un link), atunci adresa paginii va trebui să fie introdusă împreună cu id-ul ferestrei (de exemplu, adresa poate arată astfel: site.ru/papka/documet html#window).

Încă o dată revin la subiectul creării de ferestre modale (pop-up). În ultimul timp sunt din ce în ce mai interesat de diverse tehnici de executare a ferestrelor pop-up, fără a folosi javascript, plugin-uri jQuery etc. Un interes mai mare este posibilitatea de a folosi stiluri pure și potențialul inepuizabil al noilor funcții.
Pe baza evoluțiilor unor burghezi respectați, sunt băieți vicleni în acest sens, obțin rezultate bune în ceea ce privește crearea de ferestre modale folosind CSS3. Sarcina, în primul rând, este de a realiza o compatibilitate cross-browser mai mult sau mai puțin stabilă a rezultatului final și, desigur, cu cele mai mici pierderi, de a reduce cantitatea totală de cod, atât în ​​HTML, cât și în CSS, pentru a ușurează viața lucrătorilor îndelung suferinzi de la construirea de site-uri web.
Ce se întâmplă până la urmă, am în acest sens astăzi, vom vedea și, în același timp, vom învăța cum să facem ferestre modale pop-up folosind „magia” CSS3.

Actualizat: 27.10.2017


Pentru început, toți cei care sunt interesați de acest subiect, puteți să vă uitați la un exemplu despre cum funcționează ferestrele modale în diferite versiuni și să descărcați sursele:

Această lecție nu trebuie luată ca un ghid de acțiune, deoarece în această etapă a fost posibil să se obțină un suport de încredere numai de către browserele moderne (IE 9+, Firefox, Safari, Opera, Chrome). Având în vedere că versiunile vechi ale browserului IE sunt încă destul de populare în rândul utilizatorilor, recomand vizualizarea acestui articol ca un fel de experiment, o demonstrație a capacităților CSS3.

Bine, acum să trecem direct la aspectul real al codului html și stilul ferestrei noastre modale folosind css3)))

Pasul 1. HTML

Mai întâi, să creăm niște markup HTML de bază. După cum puteți vedea, designul de bază este destul de simplu, dacă luăm în considerare marcajul html al ferestrelor modale și al butoanelor (link-urilor) pentru a le activa. Fiecare fereastră modală nu este altceva decât un container standard, cu un anumit conținut în interior și un buton „Închidere”, format exclusiv folosind CSS.

< a href= "#win1" class = "button button-green" >Deschide fereastra 1< a href= "#win2" class = "button button-red" >Deschide fereastra 2< a href= "#win3" class = "button button-blue" >Video în fereastra 3< a href= "#win4" class = "button button-orange" >Poza din fereastra 4< a href= "#win5" >< img title= "" src= "img/realism_lrg.jpg" width= "150" height= "150" alt= "" /> < a href= "#x" class = "overlay" id= "win1" > < div class = "popup" > < a class = "close" title= "Închide" href= "#close" > < a href= "#x" class = "overlay" id= "win2" > < div class = "popup" >Aici puteți plasa orice conținut, text cu imagini sau videoclipuri!< a class = "close" title= "Închide" href= "#close" > < a href= "#x" class = "overlay" id= "win3" > < div class = "popup" > < h2>Titlu Aici inserați videoclipul dvs. sau din orice resursă terță parte, YouTube, Vimeo etc. (iframe, încorporare) ...< a class = "close" title= "Închide" href= "page.html" onclick= "return false" > < a href= "#x" class = "overlay" id= "win4" > < div class = "popup" > < img class = "is-image" src= "ваша-картинка.jpg" alt= "" /> < a class = "close" title= "Închide" href= "#close" > < a href= "#x" class = "overlay" id= "win5" > < div class = "popup" > < img class = "is-image" src= "ваша-картинка.jpg" alt= "" /> < a class = "close" title= "Închide" href= "#close" >

Deschide fereastra 1 Deschide fereastra 2 Videoclip în fereastra 3 Fotografie în fereastra 4 Aici puteți plasa orice conținut, text cu imagini sau videoclipuri! Titlu Aici inserați videoclipul sau din orice resursă terță parte, YouTube, Vimeo etc. (iframe, încorporare)...

În exemplul de cod de mai sus, pentru claritate, am scris scurte explicații în containerele ferestrelor modale. Prin analogie, trebuie doar să plasați orice conținut în containerul div al ferestrei pop-up, fie că este vorba de text simplu, imagini sau videoclipuri din orice resursă terță parte, YouTube, Vimeo etc. Puteți face linkuri pentru a apela text modal Windows sau le puteți formata în formular, ca în exemplu.

Pasul 2: CSS

Următorul pas, acesta este cel mai interesant lucru, este important să pregătim toate stilurile necesare pentru fereastra noastră modală, să proiectăm aspectul și să adăugăm funcționalitate. Am omis stilurile de bază ale paginii pentru a nu crea confuzie și, pentru o mai mare claritate, am diluat câteva reguli cu comentarii:

/* Stiluri de bază pentru stratul de estompare și fereastra modală */ . suprapunere (sus: 0; dreapta: 0; jos: 0; stânga: 0; z-index: 10; afișare: niciunul; /* decolorare fundal */ culoare fundal: rgba(0, 0, 0, 0,65) ; poziție : fixed; /* fixed positioning */ cursor: default ; overlay: target ( display: block; ) /* stiluri modale */ . pop-up (sus: - 100%; dreapta: 0; stânga: 50%; dimensiunea fontului: 14px; z-index: 20; margine: 0; lățime: 85%; lățime minimă: 320px; lățime maximă: 600px; /* poziționare fixă, fereastra este stabilă la derulare */ poziție: fixed padding: 1px solid #383838 /* corner rounding */ - webkit- border- radius: 4px; chenar- rază: 4px; 20px rgba(0, 0, 0, .22) , 0 19px 60px rgba(0, 0, 0, .3) - moz-box-shadow: 0 15px; rgba(0, 0, 0, .22) , 0 19px 60px rgba(0, 0, 0, .3) - ms-box-shadow: 0 15px 20px rgba(0, 0, 0, .22) , 0; 19px 60px rgba(0, 0, 0, .3 ) ; box-shadow: 0 15px 20px rgba(0, 0, 0, .22) , 0 19px 60px rgba(0, 0, 0, .3) ; -transform: translate(- 50%, - 500% ) ; - ms- transform: translate(- 50%, - 500% ); - o- transform: translate(- 50%, - 500% ) ; transform: translate(- 50%, - 500% ) ; - webkit- tranziție: - webkit- transform 0. 6s ease- out; - moz- tranziție: - moz- transform 0. 6s ease- out; - o- tranziție: - o- transforma 0. 6s ease- out; tranziție: transformare 0. 6s ease- out; ) /* activează blocul modal */ . suprapunere: target+. popup ( - webkit- transform: translate(- 50%, 0 ) ; - ms- transform: translate(- 50%, 0 ) ; - o- transform: translate(- 50%, 0 ) ; transform: translate(- 50 %, 0 ) ; top: 20 % ) /* formează un buton de închidere */ . închidere ( sus: - 10px; dreapta: - 10px; lățime: 20px; înălțime: 20px; poziție: absolut; umplutură: 0 ; chenar: 2px solid #ccc; - webkit- chenar- rază: 15px; - moz- chenar- rază : 15px; - ms- border- radius: 15px - fundal- culoare: rgba(61, 61, 0.8) 0px 10px-shadow: 0px 0px #000; ; text-align: font: 13px/ 20px "Tahoma" , sans-serif: bold-transiție; 8s; - moz- tranziție: toate ușurința. 8s; -ms- tranziție: toate ușurința. 8s; -o- tranziție: toate ușurința. 8s; tranziție: toată ușurința. 8s; ). close: before ( culoare: rgba(255 , 255 , 255 , 0,9 ) ; conținut: „X” ; text-shadow: 0 - 1px rgba(0 , 0 , 0 , 0,9 ) ; font-size: 12px; ) . close: hover ( fundal- culoare: rgba(252, 20, 0, 0.8) ; - webkit- transform: rotire(360deg) ; - moz- transform: rotire(360deg) ; - ms- transform: rotire(360deg) ; - o- transform: rotate(360deg) ; transform: rotate(360deg) ; popup img ( lățime: 100%; înălțime: automat; ) /* miniaturi stânga/dreapta */ . poza-stânga, . pic-dreapta (latime: 25%; inaltime: auto; ) . pic-left (float: stânga; margine: 5px 15px 5px 0 ; ) . pic- dreapta ( float: dreapta; margine: 5px 0 5px 15px; ) /* elemente m-media, cadre */ . încorporare pop-up, . iframe pop-up (sus: 0; dreapta: 0; jos: 0; stânga: 0; afișare: bloc; margine: automată; lățime minimă: 320 px; lățime maximă: 600 px; lățime: 100%; ). popup h2 ( /* antet 2 */ margine: 0 ; culoare: #008000; padding: 5px 0px 10px; text- align: left; text- shadow: 1px 1px 3px #adadad; font-weight: 500 ; font-size: 1. 4em font- familie: "Tahoma" , Arial, sans- serif: 1.3 ) /* paragrafe */ . pop-up p (marja: 0; umplutură: 5px 0)

/* Stiluri de bază pentru stratul de estompare și modal */ .overlay ( sus: 0; dreapta: 0; jos: 0; stânga: 0; z-index: 10; afișare: niciunul; /* Fade fundal */ background-color : rgba(0, 0, 0, 0,65 poziție: fixă ​​/* poziționare fixă ​​*/ cursor: implicit /* tip cursor */ . ) / * stiluri modale de fereastră */ .popup ( sus: -100%; dreapta: 0; stânga: 50%; dimensiunea fontului: 14px; z-index: 20; marginea: 0; lățime: 85%; lățime minimă : 320px ; max-width: 600px /* poziție fixă ​​la derulare */ poziție: fixed #383838 /* colțuri rotunjite: 4px-border; radius: 4px; -ms-border-radius: 4px font: 14px/18px "Tahoma", Arial, sans-serif: 0 15px 20px rgba(0,0,0,.22),0 19px; 60px rgba(0,0,0,.3); -moz-box-shadow: 0 15px 20px rgba(0,0 ,0,.22),0 19px 60px rgba(0,0,0,.3); -ms-box-shadow: 0 15px 20px rgba(0,0,0,.22),0 19px 60px rgba(0,0,0,.3); box-shadow: 0 15px 20px rgba(0,0,0,.22),0 19px 60px rgba(0,0,0,.3); -webkit-transform: translate(-50%, -500%); -ms-transform: translate(-50%, -500%); -o-transforma: translate(-50%, -500%); transforma: traduce(-50%, -500%); -webkit-tranziție: -webkit-transform 0.6s ease-out; -moz-tranziție: -moz-transform 0.6s ease-out; -o-tranziție: -o-transform 0.6s ease-out; tranziție: transformare 0.6s ease-out; ) /* activează blocul modal */ .overlay:target+.popup ( -webkit-transform: translate(-50%, 0); -ms-transform: translate(-50%, 0); -o-transform: translate ( -50%, 0); translate(-50%, 0: 20%) /* formează butonul de închidere */ .close ( sus: -10px; lățime: 20px; înălțime: 20px; bordura: 2px-radius: 15px; -box-shadow: 0px 0px 10px #000; .8s; -ms-tranziție: toate ușurința 255, 255, 255, 0. 9); conținut: „X”; text-shadow: 0 -1px rgba(0, 0, 0, 0.9); dimensiunea fontului: 12px; ) .close:hover (culoare de fundal: rgba(252, 20, 0, 0,8); -webkit-transform: rotire(360deg); -moz-transform: rotire(360deg); -ms-transform: rotire(360deg) ; -o-transform: rotire(360deg); transform: rotire(360deg); -stânga, .pic-right ( lățime: 25%; înălțime: automat; ) .pic-left (float: stânga; margine: 5px 15px 5px 0; ) .pic-right ( float: dreapta; margine: 5px 0 5px 15px ; ) /* elemente m-media, cadre */ .popup embed, .popup iframe ( sus: 0; dreapta: 0; jos: 0; stânga: 0; afișare: bloc; margine: auto; lățime min.: 320px; lățime maximă: 600px; lățime: 100% .popup h2 ( /* antet 2 */ margine: 0; culoare: #008000; umplutură: 5px 0px 10px; text-align: text-shadow: 1px 1px 3px #; adadad; font-weight: 500 font-family: "Tahoma", Arial, sans-serif: 1.3 ) /* paragrafe */ .popup p (marja: 0; padding: 5px 0)

După cum puteți vedea, dragi prieteni, totul este destul de simplu și nu există confuzii inutile. Dacă faci totul corect, vei primi un instrument minunat în arsenalul tău, în care poți plasa orice conținut, fie că este vorba de conținut text, fotografii, diferite formulare de înregistrare și feedback, sau videoclipuri din orice sursă terță parte. Experimentați cu parametrii, modificați fereastra după cum doriți. Dacă este posibil, împărtășește-ți experiențele sau problemele care apar brusc în comentarii.

Sau poate că acest lucru vă va interesa: Adăugiri:

Adesea, chiar și foarte des, mi se pune întrebarea cum să opresc corect redarea video atunci când închid un mod. fereastră. Când închideți fereastra modală, redarea video din demonstrație se oprește. În demo am folosit evenimentul onclick pentru butonul de închidere a ferestrei, indicând adresa paginii demo în link, i.e. pagina pe care se află fereastra video:

Pur și simplu poți folosi un link cu un atribut href="" gol, în ambele cazuri pagina se reîncarcă și, în consecință, fereastra se închide și videoclipul se oprește, o cârjă desigur, dar nu există altă soluție mai eficientă și mai validă, fără conectând javascript, momentan nu sunt aici.

< script type= "text/javascript" src= "http://www.youtube.com/player_api" >

Cu API-ul JavaScript, puteți controla Playerul Chromeless și playerul încorporat YouTube folosind codul JavaScript. Pentru blocul nostru modal cu videoclip încorporat, js-ul executabil va fi astfel:

< script>var player; funcția peYouTubePlayerAPIReady() ( player = nou YT. Player("player" ) ; ) $("#stop" ) . faceți clic (funcție () ( player. stopVideo() ) )

var player; function onYouTubePlayerAPIReady() ( player = new YT.Player("player"); ) $("#stop").click(function())( player.stopVideo() ))

Când faceți clic pe butonul cu id="stop", funcția va fi apelată, fereastra se va închide și redarea video se va opri.
Cu toate acestea, ar trebui să înțelegeți că pentru alte servicii video, dansul cu tamburine va fi diferit))). Deși există întotdeauna o alegere - să folosești pluginuri specializate gata făcute.

Designerii web și antreprenorii care locuiesc în țările vorbitoare de limbă rusă doresc probabil să poată folosi nu numai șabloane în limba engleză. De asemenea, vor să aibă acces la colecții de soluții gata făcute în limba rusă. Prin urmare, am dori să vă atragem atenția asupra celei mai noi secțiuni, care este acum prezentată pe piața TemplateMonster. Este de menționat că textul pentru fiecare dintre șabloane a fost scris manual. În plus, nu aveți nevoie de cunoștințe avansate de programare pentru a crea un proiect online impresionant.

Cu tot respectul, Andrew

O fereastră modală sau pop-up (numită diferit) este una foarte comună folosită pe un site web. Scopul său principal este de a afișa diverse informații (în mare parte text și, dacă sunt mai multe imagini), care apar atunci când dai clic pe un obiect special (link, buton sau fotografie).

În fereastra modală, în cele mai multe cazuri, pentru a economisi spațiu pe site, sunt scrise informații nu deosebit de importante, de exemplu: feedback, autorizare sau.

Există cazuri în care webmasterii doresc să atragă atenția vizitatorului asupra unui eveniment important, de exemplu: să primească bonusuri și cadouri, să participe la promoții și tombole etc., iar ferestrele modale apar fără participarea și dorința vizitatorului.

În aceste scopuri, cineva face o fereastră modală atunci când deschide o pagină, care apare pe pagină după o anumită perioadă de timp folosind un script java, desigur, în timp ce alții doresc să mențină vizitatorul pe site-ul lor în moduri diferite și utilizează un modal. fereastra la închiderea paginii, care apare în acel moment, când clientul dorește să părăsească și să închidă pagina.

Primul exemplu de fereastră modală pop-up.


Pentru a crea o fereastră modală folosind doar css, trebuie să scrieți cod html pentru un obiect de referință în fereastra pop-up și să atribuiți parametri și proprietăți în fișierul de stil pentru a afișa corect o fereastră modală frumoasă.

.my_modal(poziție:fix;sus:0;dreapta:0;jos:0;stânga:0;background:rgba(0,0,0,0.5);z-index:1050;display:none;margin:0; padding:0;).my_modal:target(display:block;overflow-y:auto;).my_modal-dialog(position:relative;width:auto;margin:10px;)@media (min-width:576px)(. my_modal-dialog(max-width:460px;margin:30px auto;)).my_modal-content(poziție:relativ;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex ;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:coloană;-ms-flex-direction:coloană;flex-direction:coloană;culoare-fond:#fff; -webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;)@media (min. -width:768px)(.my_modal-content(-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5); ;)).my_modal-header(display:block;padding:14px 14px 4px;).my_modal-title(margin-top:0;margin-bottom:0;line-height:1.5;font-size:1.25rem; font -greutate:500;border-bottom:1px solid #d4d4d4;).close(padding:1px 5px 0;border:1px solid #000;border-radius:50%;font-family:sans-serif;font-size: 24px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5;text-decoration:none;top:4px;right:4px;position : absolut;).close:focus,.close:hover(culoare:#000;text-decoration:none;cursor:pointer;opacitate:.75;).my_modal-body(poziție:relativ;-webkit-box-flex : 1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;padding:15px;overflow:auto;) Deschideți fereastra modală

Titlul ferestrei modal

×

Iată informațiile text ale ferestrei modale...

Copiați, lipiți și salvați codul de mai sus într-un document text numit index.html și apoi deschideți-l în browser pentru a testa funcționalitatea ferestrei modale. Aici puteți ajusta, de asemenea, aspectul ferestrei modale în funcție de designul proiectului dumneavoastră.

De exemplu, pentru a afișa anumite informații folosesc adesea o fereastră modală cu diverse efecte de animație, care arată mult mai interesant.

Fereastra modală când faceți clic pe un buton

În acest exemplu, voi arăta cum să înregistrez un buton pentru a deschide o fereastră modală.
Pentru a face acest lucru, trebuie doar să adăugăm atributul HTML onclick în codul pentru buton și pentru blocul de fereastră modală și, prin urmare, să apelăm o funcție cu un nume specific.

Un exemplu de buton pentru a deschide o fereastră modală (clic).

Butonul ferestrei modale


#overlay ( poziție: fix; sus: 0; stânga: 0; lățime: 100%; înălțime: 100%; culoare de fundal: rgba(0, 0, 0, 0,4); z-index: 999; overflow: automat; vizibilitate: ascuns; opacitate: 0; opacitate 0.7s ease-in 0s .popup (sus: 10%; stânga: 0; dimensiunea fontului: 14px; lățime: 80%; min-width: 200px, padding absolut: 15px 20px; 0, 0, 0,4); aproape (sus: 10px; dreapta: 10px; lățime: 32px; înălțime: 32px; poziție: absolut; chenar: niciunul; culoare de fundal: rgba(0, 130, 230, 0,9); casetă- umbră: 0 2px 5px 0 rgba(0, 0, 0,16), 0 2px 10px 0 rgba(0, 0, 0, 0,12); , 255, 0,9); text-shadow: 0 -1px rgba(0, 0, 0, 0.9); ) .close:hover (culoare de fundal: rgba(180, 20, 14, 0,8); ) #overlay .popup p.zag(margin:20px 0 10px;padding:0 0 6px;color:tomato;font-size: 16px;font-weight:bold;border-bottom:1px roșie solidă;)

Apoi copiați și lipiți codul html al ferestrei modale:

Fereastra modală

Prima informație text...

A doua informație text...

Informații text ulterioare...

Fereastra modală

Și, în sfârșit, scrieți înainte de script pentru a apela și a închide fereastra modală:

var b = document.getElementById("overlay"); funcția swa())( b.style.visibility = "vizibil"; b.style.opacity = "1"; b.style.transition = "toate 0-urile de 0,7s ease-out"; ) funcția swa2())( b .style .vizibility = „ascuns”; b.style.opacity = „0”;

Distribuiți prietenilor și puneți întrebări dacă ceva nu funcționează atunci când creați o fereastră modală.

În acest tutorial vom învăța cum să creați o fereastră modală folosind HTML5 și CSS3. În acest tutorial nu vom folosi JS, ci doar CSS3 complet. Ferestrele modale pot fi folosite pentru formularele de feedback, pentru fotografii și videoclipuri și există multe mai multe opțiuni pentru utilizarea acestuia.

Să începem să facem fereastra noastră modală.

Pasul 1: Markup HTML

În primul rând, trebuie să facem un marcaj HTML, adică. faceți un link care va deschide o fereastră și faceți un cadru pentru fereastra noastră. Pentru a face acest lucru scriem următorul cod:

Pasul 2. Conținutul ferestrei modale

Acum să adăugăm conținutul ferestrei noastre. Să facem un titlu și ceva text și să punem totul într-o etichetă și să le introducem în cod în loc de puncte suspensive. De asemenea, trebuie să inserăm un link care să închidă fereastra noastră și să-i dea class="close" . Iată cum ar trebui să arate codul dvs.:

PROIECT REDSTAR

REDSTAR este un proiect dedicat problemelor care te interesează de atâta timp. Acest proiect conține lecții gratuite și articole pe diverse subiecte. Subiectele sunt foarte diverse, variind de la simpla instalare Windows până la dezvoltarea site-ului web.

Pasul 3. Stiluri

Acum să începem să scriem stiluri pentru fereastra noastră. În acest pas ne vom face fereastra invizibilă. Va apărea doar când dați clic pe link. Pentru a face acest lucru, scriem stiluri pentru clasa noastră modalDialog:

ModalDialog ( poziție: fix; font-family: Arial, Helvetica, sans-serif; sus: 0; dreapta: 0; jos: 0; stânga: 0; fundal: rgba(0,0,0,0.8); z-index : 99999 -webkit-transition: opacitate 400ms ease-in: opacitate 400ms ease-in;

Pasul 4. Funcționalitate și vizualizare

În acest pas ne vom asigura că fereastra noastră funcționează deja. Pentru a face acest lucru, să mai adăugăm câteva stiluri pentru clasa noastră modalDialog:

ModalDialog:target ( opacitate: 1; pointer-events: auto; display: block; ) .modalDialog > div ( lățime: 400px; poziție: relativă; margine: 10% automat; padding: 5px 20px 13px 20px; border-radius: 10px ; fundal: #fff: -moz-linear-gradient(#fff, #b8ecfb: -webkit-linear-gradient (#fff, #b8ecfb);

La acest pas vă puteți vizualiza deja fereastra, aceasta este deja funcțională. Dar butonul de închidere nu arată prea frumos.

Acum trebuie să adăugăm stiluri pentru clasa noastră apropiată.

Pasul 5. Realizarea unui buton de închidere

În acest pas vom îmbunătăți aspectul butonului nostru, care ne va închide fereastra. Pentru a face acest lucru, scriem stiluri pentru clasa noastră apropiată:

Închidere ( fundal: #606061; culoare: #FFFFFF; înălțimea liniei: 25px; poziție: absolut; dreapta: -12px; text-align: center; sus: -10px; lățime: 24px; text-decor: niciunul; font- greutate: -webkit-border-radius: 12px-box-shadow: 1px 3px #000; :hover (fond: #860015;)

Ei bine, acum butonul nostru arată așa cum a fost intenționat. Ar trebui să arate așa pentru tine:

Aceasta încheie această lecție. Vă mulțumim pentru atenție! Pentru confortul dumneavoastră, am adăugat o versiune demo și fișiere sursă. Dacă ceva nu este clar, descărcați fișierele sursă.

Ferestrele modale sunt un instrument folosit frecvent în arsenalul unui webmaster. Este foarte potrivit pentru rezolvarea unui număr mare de sarcini, cum ar fi afișarea formularelor de înregistrare, blocuri de publicitate, mesaje și așa mai departe.

Dar, în ciuda locului lor important în suportul informațional al proiectului, ferestrele modale sunt de obicei implementate în JavaScript, ceea ce poate crea probleme la extinderea funcționalității sau la asigurarea compatibilității cu versiunea inversă.

HTML5 și CSS3 fac incredibil de ușor să creezi ferestre modale.

Marcaj HTML

Primul pas către crearea unei ferestre modale este un marcaj simplu și eficient:

Deschideți fereastra modală

În interiorul unui element div Conținutul ferestrei modale este plasat. De asemenea, trebuie să furnizați un link pentru a închide fereastra. De exemplu, să plasăm un titlu simplu și mai multe paragrafe. Markupul complet pentru exemplul nostru ar arăta astfel:

Deschideți fereastra modală X Fereastra modală

Un exemplu de fereastră modală simplă care poate fi creată folosind CSS3.

Poate fi folosit într-o gamă largă, de la afișarea mesajelor până la înregistrarea formularelor.

Stiluri

Creați o clasă modalDialogși începeți să modelați aspectul:

ModalDialog ( poziție: fix; font-family: Arial, Helvetica, sans-serif; sus: 0; dreapta: 0; jos: 0; stânga: 0; fundal: rgba(0,0,0,0.8); z-index : 99999 -webkit-transition: opacitate 400ms ease-in: opacitate 400ms ease-in;

Fereastra noastră va avea o poziție fixă, adică se va deplasa în jos dacă derulați pagina cu fereastra deschisă. De asemenea, fundalul nostru negru se va extinde pentru a umple întregul ecran.

Fundalul va avea o ușoară transparență și va fi, de asemenea, plasat deasupra tuturor celorlalte elemente prin utilizarea proprietății z-index.

În cele din urmă, setăm tranzițiile pentru afișarea ferestrei noastre modale și o ascundem într-o stare inactivă.

Poate nu cunoști proprietatea pointer-evenimente, dar vă permite să controlați modul în care elementele vor reacționa la clicurile mouse-ului. Setăm valoarea la valoarea sa pentru clasă modalDialog, deoarece linkul nu ar trebui să răspundă la clicurile mouse-ului când pseudo-clasa este activă ":ţintă".

Acum adăugăm o pseudo clasă :ţintăși stiluri pentru fereastra modală.

ModalDialog:țintă ( display: block; pointer-events: auto; ) .modalDialog > div ( lățime: 400px; poziție: relativă; margine: 10% automat; padding: 5px 20px 13px 20px; chenar-radius: 10px; fundal: # fff; fundal: -moz-linear-gradient(#fff, #999); -webkit-linear-gradient(#fff, #999); )

Pseudo clasă ţintă schimbă modul de afișare al elementului, astfel încât fereastra noastră modală va fi afișată atunci când se face clic pe link. Schimbăm și valoarea proprietății pointer-evenimente.

Definim lățimea și poziția ferestrei modale pe pagină. De asemenea, definim un gradient pentru fundal și colțurile rotunjite.

Închiderea ferestrei

Acum trebuie să implementăm funcționalitatea de închidere a ferestrei. Formarea aspectului butonului:

Închidere ( fundal: #606061; culoare: #FFFFFF; înălțimea liniei: 25px; poziție: absolut; dreapta: -12px; text-align: center; sus: -10px; lățime: 24px; text-decor: niciunul; font- greutate: -webkit-border-radius: 12px-box-shadow: 1px 3px #000; :hover ( fundal: #00d9ff; )

Pentru butonul nostru setăm fundalul și poziția textului. Apoi poziționăm butonul, îl rotunjim folosind proprietatea de rotunjire a cadrului și formăm o umbră ușoară. Când treceți cursorul mouse-ului peste buton, vom schimba culoarea de fundal.