Kako napraviti modalni prozor html. Kako napraviti modalni prozor sa css-om

Da biste prikazali važne poruke ili jednostavno promjene napravljene na stranici, možete koristiti iskačuće prozore. Postoje dvije vrste iskačućih prozora: redovni i modalni.

Napomena: modalni prozori se razlikuju od običnih prozora po tome što dok je modalni prozor otvoren, korisnik ne može komunicirati s drugim elementima stranice dok se modalni prozor ne zatvori.

Možete vidjeti primjer modalnog prozora koji koristi JavaScript koristeći metodu alert().

Iskačući prozor

Prvi korak u kreiranju skočnog prozora je kreiranje elementa (ili bilo kojeg drugog elementa) i stiliziranje:

Naslov dokumenta .okno ( širina: 300px; visina: 50px; poravnanje teksta: centar; padding: 15px; ivica: 3px čvrsta #0000cc; granica-radijus: 10px; boja: #0000cc; ) Pop-up prozor! Pokušajte »

Ovo će se koristiti kao iskačući prozor. Sada ga sakrivamo koristeći vrijednost none svojstva prikaza i dodajemo vezu koja će, kada se klikne, uzrokovati da se pojavi skočni prozor:

Naslov dokumenta #okno ( širina: 300px; visina: 50px; poravnanje teksta: centar; padding: 15px; ivica: 3px čvrsta #0000cc; granica-radijus: 10px; boja: #0000cc; prikaz: nema; ) #okno:target (prikaz: blok;) Pop-up prozor! Poziv iskačući Pokušajte »

Koristeći pseudo-class:target biramo i primjenjujemo stilove na element do kojeg ste navigirali. Dakle, nakon klika na vezu, vrijednost svojstva prikaza elementa će se promijeniti iz none u block .

Sada ga trebamo postaviti na sredinu stranice tako da izgleda kao iskačući prozor. Učinite ga apsolutno pozicioniranim i centrirajte ga okomito i vodoravno:

#okno ( širina: 300px; visina: 50px; poravnanje teksta: centar; padding: 15px; granica: 3px čvrsta #0000cc; granica-radijus: 10px; boja: #0000cc; prikaz: nema; /*pozicija i centar*/ pozicija: apsolutna: 0;

Sljedeći korak je implementacija skrivanja prozora kada kliknete na bilo koje mjesto na stranici ili na sam prozor. Da bismo to učinili, trebamo postaviti element unutar elementa:

Pop-up prozor!

Zatim postavljamo element i rastegnite na cijelu širinu i visinu prozora. Postavljamo prikaz: nema; i preusmjerite našu vezu na njega:

Naslov dokumenta #main (prikaz: nema; pozicija: apsolutna; vrh: 0; lijevo: 0; širina: 100%; visina: 100%; ) #okno ( širina: 300px; visina: 50px; poravnanje teksta: centar; padding : 15px ivica: 3px, boja: #0000cc; Poziv iskačući Pokušajte »

Ukloni prikaz: nema iz elementa. (više nije potrebno, pošto se sada skrivamo ). Kao rezultat toga, roditelj sada sakriva iskačući prozor preusmjeravanjem odabira na stranicu.

Ovo dovršava kreiranje jednostavnog iskačućeg prozora.

Modalni prozor

Da kreirate iskačući modalni prozor, uzmite element, dizajnirajte ga i dodajte link, kada kliknete na njega, pojavit će se:

Naslov dokumenta #okno ( širina: 300px; visina: 50px; poravnanje teksta: centar; padding: 15px; ivica: 3px čvrsta #0000cc; granica-radijus: 10px; boja: #0000cc; prikaz: nema; pozicija: apsolutna; vrh : 0 desno: 0 margina: auto ) #prozor: cilj; Poziv iskačući

Sljedeći korak u kreiranju punopravnog modalnog prozora je dodavanje dugmeta koje će sakriti naš prozor. Napravit ćemo dugme od običnog linka, dodati ga našem i dizajnirati ga:

Naslov dokumenta #okno ( širina: 300px; visina: 50px; poravnanje teksta: centar; padding: 15px; ivica: 3px čvrsta #0000cc; granica-radijus: 10px; boja: #0000cc; prikaz: nema; pozicija: apsolutna; vrh : 0 : 0 ; ; ; ; ; ; ; : #e6e6ff;)
Zatvori prozor Pozovi iskačući prozor Pokušajte »

Za efekat zatamnjivanja stranice prilikom prikaza modalnog prozora, potrebno je da sav postojeći kod prozora postavite u dodatni:

Pop-up prozor!
Zatvori prozor

Postavite roditeljski i rastegnite ga na cijelu širinu i visinu prozora. Postavljamo prikaz: nema; i preusmjerite link za poziv prozora na njega.

Za dijete, uklonite ekran: nema; (više nije potreban jer će roditelj sakriti sve u njemu). Kao rezultat toga, roditelj je sada odgovoran za prikaz modalnog prozora i zatamnjivanje pozadine stranice, a dijete je odgovorno samo za ukrašavanje samog prozora:

Naslov dokumenta #zatemnenie ( pozadina: rgba(102, 102, 102, 0.5); širina: 100%; visina: 100%; pozicija: apsolutna; vrh: 0; lijevo: 0; prikaz: nema; ) #okno ( širina: 300px text-align: 10px left: 0.000%; granica: 1px, boja: #0000cc;
Zatvori prozor Pozovi iskačući prozor Pokušajte »

Napomena: ako vam je potrebno da korisnik odmah vidi iskačući prozor pri ulasku na stranicu (a ne da ga poziva preko linka), tada će adresu stranice morati unijeti zajedno sa ID-om prozora (na primjer, adresa može izgleda ovako: site.ru/papka/documet html#window).

Još jednom se okrećem temi kreiranja modalnih (skočnih) prozora. U posljednje vrijeme me sve više zanimaju razne tehnike za izvršavanje pop-up prozora, bez korištenja javascripta, jQuery dodataka itd. Od većeg interesa je mogućnost korištenja čistih stilova i neiscrpni potencijal novih funkcija.
Na osnovu razvoja nekih uglednih buržuja, oni su lukavi momci u tom pogledu, postižu dobre rezultate u smislu kreiranja modalnih prozora koristeći CSS3. Zadatak je, prije svega, postići koliko-toliko stabilnu cross-browser kompatibilnost konačnog rezultata, i naravno, uz najmanje gubitke, smanjiti ukupnu količinu koda, kako u HTML-u tako iu CSS-u, kako bi se olakšati život napaćenim radnicima izrade web stranica.
Šta će se na kraju desiti, imam u vezi sa tim danas, videćemo, a istovremeno ćemo naučiti kako da napravimo iskačuće modalne prozore koristeći „magiju“ CSS3.

Ažurirano: 27.10.2017


Za početak, svi koji su zainteresirani za ovu temu, možete pogledati primjer kako modalni prozori rade u različitim verzijama i preuzeti izvore:

Ovu lekciju ne treba uzimati kao vodič za akciju, jer je u ovoj fazi bilo moguće postići pouzdanu podršku samo modernim pretraživačima (IE 9+, Firefox, Safari, Opera, Chrome). S obzirom da su drevne verzije IE pretraživača još uvijek prilično popularne među korisnicima, preporučujem da ovaj članak gledate kao svojevrsni eksperiment, demonstraciju mogućnosti CSS3.

U redu, sada idemo direktno na stvarni izgled html koda i stiliziranje našeg modalnog prozora koristeći css3)))

Korak 1. HTML

Prvo, napravimo neke osnovne HTML oznake. Kao što vidite, osnovni dizajn je prilično jednostavan, ako uzmemo u obzir html oznaku modalnih prozora i dugmadi (linkova) za njihovo aktiviranje. Svaki modalni prozor nije ništa drugo do standardni kontejner, sa određenim sadržajem unutra i dugmetom „Zatvori“, formiranim isključivo pomoću CSS-a.

< a href= "#win1" class = "button button-green" >Otvori prozor 1< a href= "#win2" class = "button button-red" >Otvori prozor 2< a href= "#win3" class = "button button-blue" >Video u prozoru 3< a href= "#win4" class = "button button-orange" >Fotografija u prozoru 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= "Zatvori" href= "#close" > < a href= "#x" class = "overlay" id= "win2" > < div class = "popup" >Ovdje možete postaviti bilo koji sadržaj, tekst sa slikama ili video zapisima!< a class = "close" title= "Zatvori" href= "#close" > < a href= "#x" class = "overlay" id= "win3" > < div class = "popup" > < h2>Naslov Ovdje ubacujete svoj video ili sa bilo kojeg izvora treće strane, YouTube, Vimeo, itd. (iframe, embed) ...< a class = "close" title= "Zatvori" 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= "Zatvori" href= "#close" > < a href= "#x" class = "overlay" id= "win5" > < div class = "popup" > < img class = "is-image" src= "ваша-картинка.jpg" alt= "" /> < a class = "close" title= "Zatvori" href= "#close" >

Otvori prozor 1 Otvori prozor 2 Video u prozoru 3 Fotografija u prozoru 4 Ovdje možete postaviti bilo koji sadržaj, tekst sa slikama ili video zapisima! Naslov Ovdje ubacujete svoj video ili sa bilo kojeg izvora treće strane, YouTube, Vimeo, itd. (iframe, embed)...

U gornjem primjeru koda, radi jasnoće, napisao sam kratka objašnjenja u kontejnerima modalnih prozora. Po analogiji, jednostavno morate postaviti bilo koji svoj sadržaj u div kontejner iskačućeg prozora, bilo da se radi o jednostavnom tekstu, slikama ili video zapisima sa bilo kojeg drugog izvora, YouTube, Vimeo, itd. Možete napraviti veze za pozivanje modalnog teksta prozora ili ih formatirati u obliku, kao u primjeru.

Korak 2: CSS

Sljedeći korak, ovo je najzanimljivija stvar, važno je pripremiti sve potrebne stilove za naš modalni prozor, dizajnirati izgled i dodati funkcionalnost. Izostavio sam osnovne stilove stranica kako ne bih izazivao zabunu, a radi veće jasnoće razrijedio sam neka pravila komentarima:

/* Osnovni stilovi za sloj zatamnjivanja i modalni prozor */ . preklapanje (gore: 0; desno: 0; dole: 0; lijevo: 0; z-indeks: 10; prikaz: nema; /* blijeđenje pozadine */ boja pozadine: rgba(0, 0, 0, 0,65); pozicija : fiksno /* fiksno pozicioniranje */ kursor: default /* tip kursora */ ) /* aktiviranje zatamnjenja */ . preklapanje: cilj (prikaz: blok; ) /* modalni stilovi */ . iskačući prozor ( gore: - 100%; desno: 0 ; lijevo: 50%; veličina fonta: 14px; z-indeks: 20; margina: 0; širina: 85%; minimalna širina: 320px; maksimalna širina: 600px; /* fiksno pozicioniranje, prozor je stabilan pri skrolovanju: fiksiran padding: 1px solid #383838 /* zaokruživanje ugla */ - radijus: 4px; border- radius: 4px 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) ; 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- tranzicija: - webkit- transformacija 0. 6s ease-out; - moz- prijelaz: - moz- transformacija 0. 6s ease-out; - o- prelaz: - o- transformacija 0. 6s ease-out; tranzicija: transformacija 0. 6s ease-out; ) /* aktivirati modalni blok */ . prekrivanje: cilj+. popup ( - webkit- transform: translate(- 50%, 0 ) ; - ms- transform: translate(- 50%, 0 ) ; - o- transform: translate(- 50%, 0 ) ; transform: translate(- 50 %, 0 ) ; 20 % ) /* formiraj dugme za zatvaranje */ . zatvori ( gore: - 10px; desno: - 10px; širina: 20px; visina: 20px; pozicija: apsolutna; padding: 0 ; granica: 2px solid #ccc; - webkit- border- radius: 15px; - moz- border- radijus : 15px - radijus - o - boja pozadine: rgba (61, 61, 0,8) 0px 10px #000; text-align: font: 13px/ 20px "Tahoma" , sans-serif: bold - webkit-prijelaz; 8s; - moz- tranzicija: sve lakoća. 8s; -ms- tranzicija: sve lako. 8s; -o- tranzicija: sve lako. 8s; tranzicija: sva lakoća. 8s; ) . zatvori: prije ( boja: rgba(255 , 255 , 255 , 0.9 ) ; sadržaj: "X" ; sjena teksta: 0 - 1px rgba(0 , 0 , 0 , 0.9 ) ; veličina fonta: 12px; ). zatvori: lebdi (pozadina- boja: rgba(252, 20, 0, 0.8) ; - webkit- transform: rotiraj (360 stepeni) ; - moz- transform: rotiraj (360 stepeni) ; - ms- transform: rotiraj (360 stepeni) ; - o- transform: rotate(360deg) transform: rotate(360deg) /* slike unutar prozora; popup img ( širina: 100%; visina: auto; ) /* sličice lijevo/desno */ . slika-lijevo, . pic-desno (širina: 25%; visina: auto; ) . pic-left ( float: lijevo; margina: 5px 15px 5px 0 ;) . pic- desno ( float: desno; margina: 5px 0 5px 15px; ) /* m-medijski elementi, okviri */ . popup embed, . iskačući iframe (gore: 0; desno: 0; dole: 0; lijevo: 0; prikaz: blok; margina: automatski; minimalna širina: 320px; maksimalna širina: 600px; širina: 100%; ) . popup h2 ( /* zaglavlje 2 */ margina: 0 ; boja: #008000; padding: 5px 0px 10px; poravnanje teksta: lijevo; sjena teksta: 1px 1px 3px #adadad; težina fonta: 500; veličina fonta: 1. 4em familija fontova: "Tahoma", arial, visina reda: 1.3 ) /* pasusa */ . popup p ( margina: 0 ; padding: 5px 0 )

/* Osnovni stilovi za bledi sloj i modalni */ .overlay (gore: 0; desno: 0; dole: 0; lijevo: 0; z-indeks: 10; prikaz: nema; /* blijedi pozadina */ boja pozadine : rgba(0, 0, 0, 0.65): fiksno pozicioniranje */ kursor: default /* tip kursora */ .overlay: cilj; ) / * modalni stilovi prozora */ .popup ( gore: -100%; desno: 0; lijevo: 50%; veličina fonta: 14px; z-indeks: 20; margina: 0; širina: 85%; min-širina : 320px , max-width: 600px, stabilna pozicija: 1px solid #383838 /* -webkit-border-radius: -moz-border-; radijus: 4px; font: 14px/18px; 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-transform: translate(-50%, -500%); transform: translate(-50%, -500%); -webkit-transition: -webkit-transform 0.6s ease-out; -moz-transition: -moz-transform 0.6s ease-out; -o-transition: -o-transform 0.6s ease-out; tranzicija: transformacija 0.6s ease-out; ) /* aktivirati modalni blok */ .overlay:target+.popup ( -webkit-transform: translate(-50%, 0); -ms-transform: translate(-50%, 0); -o-transform: prevesti ( -50%, 0): translate(-50%, 0%: 20% ) /* formirajte dugme za zatvaranje */ .close (gore: -10px; širina: 20px); visina: 20px; 15px; -box-shadow: 0px 0px 10px #000: font: 13px/20px -moz-transition; .8s-prijelaz: sve lakoće .8s; 9);

Kao što vidite, dragi prijatelji, sve je prilično jednostavno i nema nepotrebne zabune. Ako sve učinite ispravno, dobit ćete u svom arsenalu prekrasan alat u koji možete smjestiti bilo koji sadržaj, bilo da se radi o tekstualnom sadržaju, fotografijama, raznim obrascima za registraciju i povratne informacije ili videozapisima iz bilo kojeg izvora treće strane. Eksperimentišite sa parametrima, modifikujte prozor kako želite. Ako je moguće, podijelite svoja iskustva ili probleme koji se iznenada pojavljuju u komentarima.

Ili će vam možda ovo biti zanimljivo: Dodaci:

Često, čak i vrlo često, postavljaju mi ​​se pitanje kako pravilno zaustaviti reprodukciju videa prilikom zatvaranja moda. prozor. Kada zatvorite modalni prozor, reprodukcija videa u demonstraciji se zaustavlja. U demonstraciji sam koristio događaj onclick za dugme za zatvaranje prozora, koji ukazuje na adresu demo stranice u linku, tj. stranica na kojoj se nalazi video prozor:

Možete jednostavno koristiti link sa praznim atributom href="" u oba slučaja se stranica ponovo učitava i, shodno tome, prozor se zatvara i video staje, štaka naravno, ali nema drugog efikasnijeg i validnijeg rješenja, bez povezujući javascript, trenutno nisam ovdje.

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

Sa JavaScript API-jem, možete kontrolirati Chromeless Player i YouTube ugrađeni plejer koristeći javaScript kod. Za naš modalni blok sa ugrađenim videom, izvršni js će biti ovakav:

< script>var player; funkcija naYouTubePlayerAPIReady() ( player = novi YT. Player("player" ) ; ) $("#stop") . klik (funkcija () ( player. stopVideo() ) )

var player; funkcija naYouTubePlayerAPIReady() ( player = novi YT.Player("player"); ) $("#stop").click(function())( player.stopVideo() ))

Kada kliknete na dugme sa id="stop" funkcija će biti pozvana, prozor će se zatvoriti i reprodukcija videa će se zaustaviti.
Međutim, trebali biste shvatiti da će za druge video usluge ples s tamburama biti drugačiji))). Iako uvijek postoji izbor - koristiti gotove specijalizirane dodatke.

Web dizajneri i poduzetnici koji žive u zemljama ruskog govornog područja vjerovatno žele imati mogućnost da koriste ne samo šablone na engleskom jeziku. Takođe žele da imaju pristup kolekcijama gotovih rešenja na ruskom jeziku. Stoga bismo željeli skrenuti vašu pažnju na najnoviji odjeljak koji je sada predstavljen na TemplateMonster tržištu. Vrijedi napomenuti da je tekst za svaki od šablona napisan ručno. Osim toga, nije vam potrebno nikakvo napredno znanje programiranja da biste kreirali impresivan online projekat.

Uz svo poštovanje, Andrew


3. Primjer jQuery modalnog prozora pozvanog sa veze (iz Demo)

Najvjerovatnije ste već više puta vidjeli iskačući modalni prozor na Internetu - potvrdu registracije, upozorenje, referentne informacije, preuzimanje datoteka i još mnogo toga. U ovom tutorijalu ponudit ću nekoliko primjera kako napraviti najjednostavniji modalni prozor.

Kreiranje jednostavnog iskačućeg modalnog prozora Počnimo gledati kod za jednostavan modalni prozor koji će se odmah pojaviti
jQuery kod


$(document).ready(function()
{
alert("Tekst u iskačućem prozoru");
});

Zalijepite kod bilo gdje u tijelu vaše stranice. Odmah nakon učitavanja stranice, bez ikakvih naredbi, vidjet ćete prozor koji izgleda ovako:


Ali sljedeći kod će se izvršiti nakon što se cijela stranica učita u pretraživač. U našem primjeru, nakon učitavanja stranice sa slikama, pojavit će se jednostavan iskačući prozor:


$(window).load(function()
{
alert("Stranica je završila učitavanje!)");
});

Pozivanje jQuery modalnog prozora sa veze sa CSS-om Sledeći korak je kreiranje modalnog prozora kada se klikne na vezu. Pozadina će polako tamniti.


Često možete vidjeti da se obrasci za prijavu i registraciju nalaze u takvim prozorima. Hajdemo na posao

Prvo, napišimo html dio. Ovaj kod stavljamo u tijelo vašeg dokumenta.

Pozivanje modalnog prozora



Modalni tekst prozora
Zatvori
Tekst u modalnom prozoru.


CSS kod. Ili u zasebnoj css datoteci, ili u glavi.


tijelo (
font-family:verdana;
font-size:15px;
}
.link (boja:#fff; text-decoration:nema)
.link:hover (boja:#fff; text-decoration:underline)
#maska ​​(
pozicija:apsolutna;
lijevo:0;
top:0;
z-indeks:9000;
background-color:#000;
display:none;
}
#boxes.window (
pozicija:apsolutna;
lijevo:0;
top:0px;
-top: 40px;
širina:440px;
visina:200px;
display:none;
z-indeks:9999;
padding: 20px;
overflow: skriveno;
}
#kutije #dijalog (
širina:375px;
visina:203px;
padding:10px;
background-color:#ffffff;
}
.top(
pozicija:apsolutna;
lijevo:0;
top:0;
širina:370px;
visina:30px;
pozadina: #0085cc;
padding: 8px 20px 6px 10px;
}
.close(
float:desno;
}
.content(
padding-top: 35px;
}

U jQuery kodu ćemo se fokusirati na poziciju modalnog prozora i maske, u našem slučaju na postepeno zatamnjenje pozadine.

Pažnja! Ne zaboravite da uključite biblioteku u zaglavlje dokumenta!


Povezivanje biblioteke sa Google web stranice. Pa, sam jQuery kod.

jQuery kod


$(document).ready(function() (
$("a").click(funkcija(e) (
e.preventDefault();
var id = $(this).attr("href");
var maskHeight = $(document).height();
var maskWidth = $(window).width();
$("#mask").css(("width":maskWidth,"height":maskHeight));
$("#maska").fadeIn(1000);
$("#mask").fadeTo("slow",0.8);
var winH = $(window).height();
var winW = $(window).width();
$(id).css("top", winH/2-$(id).height()/2);
$(id).css("lijevo", winW/2-$(id).width()/2);
$(id).fadeIn(2000);
});
$(".window .close").click(funkcija (e) (
e.preventDefault();
$("#maska, .window").hide();
});
$("#maska").click(funkcija () (
$(ovo).hide();
$(".window").hide();
});
});

U današnje vrijeme, za razne stranice, sve vrste iskačućih modalnih prozora - iskačućih prozora - za registraciju, autorizaciju, informacijske prozore - svih vrsta i veličina su postale norma, osim jQueryja , za jednostavno i praktično kreiranje takvih iskačućih prozora - isti Shadowbox, na primjer.

Izgled, veličina i dizajn takvih iskačućih prozora su potpuno drugačiji - s preklapanjem, sjenama, animacijama - ne možete sve pobrojati. Jedino što im je zajedničko je, možda, činjenica da se obično prikazuju u samom centru stranice – i horizontalno i okomito. I ovo centriranje se vrši pomoću JS-a. Neću ulaziti u detalje ovih proračuna, samo ću ih ukratko opisati:

HTML kod skočnog prozora obično ima sljedeću strukturu:


... -- Iskačući prozor sa sadržajem -->

I CSS ( ovdje i dolje ću namjerno izostaviti pisanje nekih svojstava koja su neophodna samo za neke pretraživače i njihove verzije, ostavljajući samo najosnovnije):

Popup__overlay(
pozicija: fiksna;
lijevo: 0;
vrh: 0;
pozadina : #000 ;
neprozirnost: .5;
filter: alfa(prozirnost=50);
z-indeks: 999
}
.iskočiti(
pozicija: apsolutna;
širina: 20%;
z-indeks: 1000;
granica : 1px čvrsta #ccc ;
pozadina : #fff
}

JS određuje pretraživač i verziju pretraživača i na osnovu toga izračunava veličinu radnog prostora i veličinu samog iskačućeg prozora (ako nisu specificirani), a zatim se izvode jednostavne kalkulacije pozicije njegovog gornjeg lijevog ugla ( css svojstva lijevo i gore za .popup). Mnogi dodaci također reaguju na promjenu veličine stranice, preračunavajući cijelu stvar svaki put tako da se popup nalazi tačno u centru radnog prostora.

Ja sam perfekcionista po prirodi (znam, ponekad je to loša stvar), i često se zamaram čak i malim detaljima, pokušavajući da poboljšam i dodam maksimalnu moguću proširivost tim detaljima, i nisam mogao a da me ne zavuče ovu tačku u radu svih ovih dodataka. Pojavila se ideja da se sav rad na pozicioniranju popup-a može prenijeti sa ramena JS-a na ramena samog pretraživača, odnosno da se ovaj posao može obaviti pomoću CSS-a.

Ovo ćemo uraditi.

U nastavku ću dati primjer iskačućeg prozora koji radi u svim glavnim verzijama glavnih pretraživača. Da bi ispravno radio u IE
< div class ="popup">

I malo CSS-a:

Popup__overlay(
pozicija: fiksna;
lijevo: 0;
vrh: 0;
širina: 100%;
visina: 100%;
z-indeks: 999
}
.iskočiti(
}

Fiksne veličine Najjednostavnija opcija. Nema potrebe izmišljati ništa novo:

Iskočiti (
lijevo: 50%;
vrh: 50%;
širina: 400px;
visina: 200px;
margin-left : -200px ;
margin-top : -100px
}

Negativne margine od pola širine i visine su banalne i dosadne, u tome nema ničeg originalnog.

Veličina iskačućeg prozora ovisi o sadržaju. Prvo, horizontalno poravnanje - ovo je izgleda lakše. Ako je skočni prozor fiksne širine, tada će biti dovoljno sljedeće:

Iskočiti (
margina: auto
}

Ovo ni na koji način neće uticati na vertikalno poravnanje, a usput rečeno, ako vam je dovoljno samo horizontalno poravnanje, možete stati na tome, navodeći neku drugu gornju marginu skočnog prozora. Ali ovo nam nije dovoljno! Nastavi.

Vertikalno poravnanje. Ovdje postaje zanimljivo. Naravno, emulacija tabele ili tabele koja koristi display: table & display: table-cell bi mogla da se nosi sa ovim zadatkom bez ikakvih problema, ali to da radi u starijem IE je skuplje. Tabela također nestaje - iz očiglednih razloga.

Dakle, margina više nije potrebna - ne znamo veličine. Prisjetimo se koja svojstva postoje sa sličnim efektima. Da, poravnajte tekst. Ali samo za inline elemente. UREDU. Čini se da je sam Bog naredio upotrebu prikaza: inline-block - blok element na koji se mogu primijeniti svojstva za inline elemente. Uz podršku za ovo svojstvo u svim pretraživačima, sve je također u redu. Kod postaje otprilike ovako:

Popup__overlay(
pozicija: fiksna;
lijevo: 0;
vrh: 0;
širina: 100%;
visina: 100%;
z-indeks: 999;
text-align: centar
}
.iskočiti(
prikaz: inline -block;
vertikalno poravnanje: sredina
}

Ono što ostaje je vertikalno poravnanje - vertical-align će nam pomoći. U bilo kojoj drugoj situaciji bilo bi prikladno koristiti line-height, ali pošto nemamo fiksnu visinu stranice (line-height u ovom kontekstu), ovdje se ne može koristiti. Jedan trik koji dolazi u pomoć je vertikalno poravnavanje elemenata nepoznatih veličina. Tačno se sjećam da sam ovu metodu pronašao na Habréu, ali, nažalost, nisam mogao pronaći link na tu temu. Ova metoda se sastoji od sljedećeg: dodaje se inline-block element nulte širine i 100% visine nadređenog, koji "proširuje" visinu reda na 100% visine roditelja, odnosno na visinu rada stranice području. Učinimo ovo elegantnijim - umjesto nepotrebnog označavanja, koristit ćemo pseudoelemente:

Popup__overlay :after (
prikaz: inline -block;
širina: 0;
visina: 100%;
vertikalno poravnanje: sredina;
sadržaj : ""
}

Sve što ostaje je dodati prozirno zatamnjenje preklapanja - rgba će to riješiti. Sve! Sada poziciju iskačućeg prozora kontrolišu samo alati pretraživača na CSS nivou.

Jednostavan modalni prozor u smislu funkcija, koji je u potpunosti napravljen u čistom CSS-u, gdje možete postaviti različite funkcije za pozivanje na stranicu. Ovo je vjerovatno jedan od mnogih na koje sam naišao u izboru modalnih prozora, u smislu njegovih postavki, ali i u smislu instalacije. Ali glavna stvar je njegova funkcionalnost, koja neće biti inferiorna u odnosu na druge. Također je standardno izrađen u svijetloj nijansi, gdje se u gornjem desnom uglu nalazi dugme u obliku krsta.

Koji će se koristiti za onemogućavanje funkcije ili jednostavno za nestanak okvira, gdje čak i na ovom malom elementu postoji efekat promjene palete boja. Sada ga web master može staviti na stranicu i u njega postaviti opis ili operatore koji mogu prikazati različite kategorije, kao što su statistika ili informator.

Ali stvar je u tome da ako imate mračni stil resursa, onda možete brzo promijeniti stil u stilu, odnosno prilagoditi ga izvornom dizajnu. Evo jedne od standardnih metoda za pravljenje čistog CSS-a na modalnom prozoru koji će se pokrenuti kada se klikne na dugme ispod linka sa HTML vezanjem. Samo dugme je više za vidljivost, gde u stilovima uklanjate jednu klasu i ostaje naziv, koji se može postaviti ili u navigaciju ili u kontrolni panel, gde se nalazi glavna funkcionalnost ili navigacija sajta.

Ovo je kada provjerite da li sve radi kako treba:

mob_info