Windows modal html. Creați o fereastră modală folosind HTML5 și CSS3. Cea mai simplă fereastră modală folosind HTML și CSS

Simplu în funcție fereastra modală, care se desfășoară în întregime pe CSS pur unde o poti pune sub diferite funcții pentru a suna pe site. Acesta este probabil unul dintre multele pe care le-am întâlnit dintr-o selecție de ferestre modale, din punct de vedere al setărilor sale, dar și din punct de vedere al instalării. Dar principalul lucru este funcționalitatea sa, care nu va fi inferioară altora. De asemenea, implicit este realizat într-o nuanță deschisă, unde în dreapta colțul de sus Există un buton instalat sub formă de cruce.

Care va fi folosit pentru a dezactiva funcția sau pur și simplu pentru a face ca rama să dispară, unde chiar și pe acest element mic există un efect de schimbare a paletei de culori. Acum webmaster-ul îl poate pune pe site și plasează în el o descriere sau operatori care pot afișa diferite categorii, ca statistici sau informator.

Dar lucrul este că, dacă aveți un stil de resurse întunecat, atunci în stil puteți schimba rapid gama sau, mai degrabă, o puteți adapta la design original. Aici este unul dintre metode standard cum să faci CSS pur pe o fereastră modală care va fi lansată atunci când se face clic pe butonul de sub linkul cu legarea HTML. Butonul în sine este mai mult pentru vizibilitate, unde în stiluri, prin eliminarea unei clase, va rămâne numele, care poate fi plasat fie în navigare, fie în panoul de control, unde se află funcționalitatea principală sau navigarea pe site.

Aceasta se întâmplă când verifici dacă totul funcționează bine:

Să începem instalarea:

Fereastra cu buton



ZorNet.Ru - portal webmaster×


Aici veți găsi conținut pe tema site-ului.


CSS

Butksaton-satokavate (
display: inline-block;
text-decor: niciuna;
margine-dreapta: 7px;
chenar-rază: 5px;
umplutură: 7px 9px;
fundal: #199a36;
culoare: #fbf7f7 !important;
}

anelumen (
display: flex;
poziție: fixă;
stânga: 0;
sus: -100%;
latime: 100%;
inaltime: 100%;
alinierea elementelor: centru;
justificare-conținut: centru;
opacitate: 0;
-webkit-tranziție: top 0s .7s, opacitate .7s 0s;
tranziție: top 0s .7s, opacitate .7s 0s;
}

Anelumen:țintă (
sus: 0;
opacitate: 1;
-webkit-tranziție: niciuna;
tranziție: niciuna;
}

Figura anelumenului (
latime: 100%;
lățime maximă: 530px;
poziție: relativă;
umplutură: 1,8 em;
opacitate: 0;
culoare de fundal: alb;
-webkit-tranzitie: opacitate .7s;
tranziție: opacitate .7s;
}

Anelumen.lowingnuska figura (
fundal: #f9f5f5;
chenar-rază: 7px;
padding-top: 8px;
chenar: 3px solid #aaabad;
}

Anelumen.lowingnuska figura h2 (
margine-top: 0;
umplutură-partea de jos: 3px;
chenar-jos: 1px solid #dcd7d7;
}

Anelumen: cifră țintă (
opacitate: 1;
}

Anelumen.lowingnuska.compatibg-ukastywise (
text-decor: niciuna;
poziție: absolută;
dreapta: 8px;
sus: 0px;
dimensiunea fontului: 41px;
}

Anelumen.nedismiseg (
stânga: 0;
sus: 0;
latime: 100%;
inaltime: 100%;
poziție: fixă;
culoare de fundal: rgba(10, 10, 10, 0,87);
continut: "";
cursor: implicit;
vizibilitate: ascuns;
-webkit-tranziție: toate .7s;
tranziție: toate .7s;
}

Anelumen:target .nedismiseg (
vizibilitate: vizibil;
}


De asemenea, trebuie să știți că stilul CSS și pseudo-clasa sunt una dintre cele care nu sunt utilizate pe deplin de Caracteristici CSS cu multe aplicații potențiale interesante.

Începe când adresa URL pagina corespunde cu identificatorul elementului său, sau îl puteți spune diferit, acesta este momentul în care utilizatorul sare la element specific Pe pagina.

Salutare tuturor! In aceea o mica lectie Vom crea o fereastră modală simplă, dar puternică, folosind CSS pur. Și în același timp vom repeta (și pentru cine vom deschide) așa ceva lucru util ca flexbox. În acest caz, vom crea nu doar o fereastră modală care se deschide la clic, dar care este poziționată exact în centrul ecranului. Cândva, acest lucru se putea face doar folosind javascript, dar timpul trece și acum acest lucru se poate face cu literalmente 4 linii de cod.

Deschideți fereastra modală

Întreaga fereastră modală constă din două straturi - primul strat, care are clasa ModalWindow, întunecă întregul spațiu din jurul ferestrei modale și va alinia conținutul ferestrei la centrul ecranului. Al doilea strat este de clasă Corpul_modal— conține conținutul ferestrei modale în sine.

Acum să creăm codul CSS pentru acest marcaj:

Modal (poziție: fix; afișare: niciunul; sus: 0; dreapta: 0; jos: 0; stânga: 0; z-index: 0; fundal: rgba(0,0,0,0.7); pointer-evenimente: niciunul ; ) .Modal:target ( display: flex; pointer-events: auto; ) .Modal_Body (poziție: relativ; z-index: 2; display: block; margin: auto; padding: 15px; background: #FFF; ) . ModalFull (poziție: absolut; afișare: bloc; z-index: 0; lățime: 100%; înălțime: 100%; )

Să ne uităm acum la funcționarea ferestrei modale și să înțelegem cum funcționează.

După cum putem vedea, când faceți clic pe „Deschideți fereastra modală”, întreaga fereastră este umbrită, iar o fereastră modală albă apare exact în centru. Să ne oprim aici deocamdată și să ne dedicăm teoriei.

Deoarece am fost de acord să nu folosim javascript și nu îl putem folosi pentru a urmări clicurile pe elemente, putem face acest lucru cu ușurință folosind o pseudo-clasă css și un link de ancorare cu un hash (pentru a indica elementul pe pagina dată) și id cu o valoare care trebuie să fie egală cu indicatorul din link. Uită-te la exemplul nostru: href link-uri și id containerul principal al ferestrei modale au aceeași valoare - ModalWindow. Acest lucru este important deoarece browserul trebuie să înțeleagă ce elemente vor interacționa între ele.

În cazul nostru, containerul general al ferestrei modale este ascuns și, în consecință, întregul conținut al ferestrei modale este ascuns. Dar când se face clic pe link, elementul primește o pseudo-clasă :ţintăși apare în consecință. Uită-te în codul css - proprietate afişa modificări de la nici unul pe contracta. Rețineți că este flex, deoarece cu el ne putem alinia Corpul_modal exact în centrul ecranului. Am scris toate celelalte stiluri pentru el imediat.

Apropo, dacă nu înțelegeți prea bine cum a fost atât de aplatizat pe întreaga suprafață a ecranului, vă voi spune - este vorba despre următoarele 4 linii:

Sus: 0; dreapta: 0; jos: 0; stânga: 0;

Am indicat că ar trebui să fie la pixelul zero din dreapta, stânga, sus și jos în același timp. În schimb, puteți utiliza, de exemplu, următoarea construcție:

Latime: 100%; inaltime: 100vh;

Aici specificăm o lățime egală cu 100% a ecranului, dar este mai bine să setați înălțimea folosind înălțimea ferestrei— înălțimea ferestrei browserului. Voi rămâne la versiunea mea.

O alta nuanță importantă este sensul proprietățile z-index la ModalȘi Corpul_modal. Ei trebuie să fie prezenți și Corpul_modal trebuie să fie cu cel puțin o unitate mai mare ca valoare, altfel conținutul ferestrei modale nu va fi disponibil - linkurile și butoanele nu vor putea fi clicate. Și dacă există conținut cu defilarea, nici acest lucru nu va funcționa, deoarece un element se va suprapune pe altul.

Să continuăm să creăm capodopera noastră. Când faceți clic, apare o fereastră modală, dar nu o putem închide la fel de ușor. Să adăugăm un buton pentru a-l închide:

De fapt, ea anulează :ţintă pentru fereastra noastră modală și apoi pur și simplu acceptă pozitia de pornire- dispare din vedere. Dar există o oarecare subtilitate cu acest link - când faceți clic pe el, browserul va încerca să găsească un astfel de element, dar nu va eșua și va derula pagina până la început. Acest comportament este unul dintre micile dezavantaje ale acestei abordări de a face ferestre modale, dar poate fi tratat.

Pentru acest atribut href la linkul de la care schimbam «#» pe „#ModalWindowClose”, iar pentru linkul butonului care a deschis fereastra, adăugați un atribut id cu acelasi sens. Puteți utiliza, de asemenea, atributul Nume, dar în HTML5 este mai bine să definiți o ancoră și necesită un atribut id.

Deschideți fereastra modală

Acum, când faceți clic, browserul va reveni la buton. De dragul adevărului, vreau să spun că această ancoră va fi situată de-a lungul marginii de sus a ecranului. Dar, dacă acest buton de deschis este situat în antet sau subsol, atunci această problemă este uniformizată. Și dacă antetul are o poziție fixă, atunci va fi absolut bine - de exemplu, pentru comandă sună din nou sau precomanda/consultația va fi perfectă chiar și atunci când fereastra se închide.

Iată un exemplu de ceea ce am primit:

Puteți modifica puțin mai mult recipientul Corpul_modal- acestea sunt restricții de dimensiune (pentru a nu se întinde în înălțime și lățime). Și încă o mică nuanță - recomand, dacă este posibil, plasarea codului cu o fereastră modală înainte de eticheta de închidere.

Acesta este modul în care puteți crea rapid o fereastră modală. Acest cod pe care l-am scris poate fi folosit în versiunea de bază, adăugând stilurile necesare după cum este necesar.

Sper că lecția mea ți-a fost de folos. O zi buna si sa ne vedem noua intalnire pe Insulele Web!

Ferestrele modale sunt un instrument folosit frecvent în arsenalul unui webmaster. Este foarte potrivit pentru rezolvare cantitate mare sarcini precum afișarea formularelor de înregistrare, a unităților de publicitate, a mesajelor și așa mai departe.

Dar în ciuda loc important V suport informativ proiect, 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 anterioară.

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. Markup complet pentru exemplul nostru va 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 în gamă largă, începând de la afișarea mesajelor și terminând cu formularul de înregistrare.

Stiluri

Creați o clasă modalDialogși începe să se formeze aspect:

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 când deschide fereastra. 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.

Închizând fereastra

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 mouse-ul peste buton, vom schimba culoarea de fundal.

Î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 un formular părere, 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 lipiți-l în cod în loc de elipse. De asemenea, trebuie să inserăm un link care să ne închidă fereastra și să-i dea class="close". Iată cum ar trebui să arate codul tău:

PROIECT REDSTAR

STEA ROȘIE- un proiect dedicat problemelor care te interesează de atâta timp. Pe acest proiect lecții gratuite și articole despre diverse subiecte. Subiectele sunt foarte diverse, de la simple Instalări Windowsși terminând cu 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, buton închide nu arata foarte frumos.

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

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ă închide:

Î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:

Pe aceasta această lecție terminat. 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ă.

Lecția a fost pregătită pentru tine de echipa site-ului STEA ROȘIE.

Caseta de dialog este metodă grozavă retrage mesaj scurt sau informații. În prezent, fereastra modală este un element foarte popular al designului web. Dacă adăugați un conținut special în pagină, este mai bine să îl plasați într-o fereastră modală:

Anterior a fost creat cu folosind JavaScript, Ce este acest moment nu este considerată cea mai bună practică. Dar HTML5 și CSS3 vă permit să creați ferestre modale fără probleme. În acest tutorial vom folosi tranzițiile CSS3, opacitatea, pointer-eveniment și culoarea de fundal.

Acest modal va fi proiectat în CSS pur. Va fi receptiv și ar trebui să funcționeze bine pe smartphone-uri și tablete. Și, de asemenea, pe ecrane mari cu rezoluție înaltă.

Crearea ferestrei modale CSS

În primul rând, trebuie să creăm un cod HTML simplu:

Deschide Modal!

Avem un link simplu care vă invită să deschideți o fereastră modală și hashtag-ul modal-one. Vom seta toate stilurile chiar aici folosind clase, astfel încât ID-ul este folosit ca un cârlig pentru a crea câmpul modal.

Amintiți-vă că vom folosi doar CSS și nu un modal Fereastra JQuery, deci să folosim pseudo-selectorul „ :nainte de tinta”.

Apoi, trebuie să salvați tot conținutul ferestrei modale. În interiorul div-ului vom plasa un hyperlink. Ea închide recipientul cu care expunem folosind CSS. Apoi puteți pune un titlu cu câteva puncte de text sub el. Marcajul nostru HTML va arăta acum astfel:

Setarea stilurilor

Acum avem un hyperlink învelit într-un div. Puteți începe să modelați recipientul pentru a-l face mai practic. Mai întâi, să creăm o clasă modală pentru o fereastră modală în CSS. Pentru aceasta folosim pseudo-elementul :before:

Modal: înainte (conținut: ""; afișare: niciunul; fundal: rgba(0, 0, 0, 0,6); poziție: fix; sus: 0; stânga: 0; dreapta: 0; jos: 0; z-index: 10; .modal:target:before ( afișare: bloc; )

Noi creați o fereastră modală, dându-i o poziție fixă. Se va deplasa în jos pe măsură ce utilizatorul derulează pagina.

În plus, am setat marginile de sus, din dreapta, de jos și din stânga la zero, astfel încât fundalul întunecat să acopere întregul ecran. Acum trebuie să setăm fundalul, chenarul, raza pentru dialogul .modal și, de asemenea, poziția fixă. Codul nostru CSS va arăta astfel:

Dialog-modal ( fundal: #fefefe; chenar: #333 solid 1px; chenar-radius: 5px; margine-stânga: -200px; poziție: fix; stânga: 50%; sus: -100%; z-index: 11; width: 360px; -webkit-transform: translate(0, -500%) -ms-transform: translate(0, -500%); ; -moz-transiție: -moz-transform 0.3s ease-out: -o-transform 0.3s ease-out;

Modal:țintă .modal-dialog ( -webkit-transform: translate(0, 0); -ms-transform: translate(0, 0); transform: translate(0, 0); top: 20%; )

Iată câteva stiluri suplimentare de folosit pentru a vă face modal să arate frumos:

body ( culoare: #333; font-family: „Helvetica”, arial; înălțime: 80em; ) .wrap ( padding: 40px; text-align: center; ) hr ( clear: ambele; margin-top: 40px; margin- jos: 40px; chenar: 0; chenar-sus: 1px solid #aaa ) h1 ( dimensiunea fontului: 30px; margin-bottom: 40px; ) p ( margin-bottom: 20px; .modal-body: 20px ; ) .modal-header, .modal-footer (padding: 10px 20px; ) .modal-header (border-bottom: #eee solid 1px; ) .modal-header h2 (font-size: 20px; ) .modal-header ( chenar-sus: #eee solid 1px; text-align: right; )

Acum că am stilat fereastra modală HTML și am făcut-o funcțională, tot ce trebuie să facem este să creăm un buton în dreapta jos. Cod CSS:

Btn ( fundal: #428bca; chenar: #357ebd solid 1px; chenar-radius: 3px; culoare: #fff; afișare: inline-block; font-size: 14px; umplutură: 8px 15px; text-decor: niciunul; text- align: center; poziția: relativă: .1s ease /* top: 40em;*/ ) .btn: hover ( background: #357ebd; ) ; umplutură: 15px 20px lățime minimă: 100px; .btn-close (culoare: #aaa; dimensiunea fontului: 30px; text-decor: absolut; dreapta: 0; ) close:hover (culoare: #919191; ) /*adăugați pentru a opri derularea în sus*/ #close (afișare: niciunul; )

Care sunt avantajele ferestrei modale create?

Principalul avantaj al ferestrei noastre modale este că este creată folosind numai HTML5 și CSS3. De ce este asta atât de important? Modal Fereastra Javascript este ceva pe care chiar și un începător îl poate crea. Există o mulțime soluții gata făcute, care poate fi descărcat de pe Internet. Deci, de ce vrem să ne descurcăm doar cu HTML5 și CSS3 fără JavaScript?

Ei bine, de exemplu, astfel încât utilizatorii fără suport JavaScript să poată utiliza o fereastră modală. Statisticile arată că mai mult de 2% dintre utilizatorii din întreaga lume nu folosesc JavaScript.

Am folosit efectiv câteva linii de cod CSS pentru a crea animația. Dacă aplicați vreuna Biblioteca JavaScript animații, veți fi uimit de cât de mult mai puțin cod am folosit. Acest lucru oferă un alt avantaj - mai mult cod curat.

Am implementat un div care conține toată animația și sunt doar câteva linii de cod. Ceea ce face codul mai curat și această soluție vă permite să schimbați sau să mutați acest div după cum doriți, fără să vă faceți griji cu privire la modificările codului în JavaScript.

Și în sfârșit, HTML5 și CSS3 sunt viitorul. Cu toții încercăm să le folosim în proiectele noastre. Datorită lor, obțineți un cod mai curat, fără să vă faceți griji Biblioteci JavaScript. HTML5 și CSS3 sunt aici pentru a rămâne, așa că nu există niciun motiv să nu le folosiți.

Concluzie

Acum puteți crea o fereastră modală simplă folosind HTML5 și CSS3, care poate fi folosită pentru un formular de conectare sau înregistrare, unități de anunțuri și multe altele. În plus, ați învățat de ce ar trebui să utilizați HTML5 și CSS3 în loc de JavaScript și ați văzut câteva exemple despre modul în care site-urile folosesc ferestrele modale.

Traducerea articolului " Cum să faci o fereastră modală CSS fără Javascript„a fost pregătit de echipa prietenoasă de proiect.