HTML formular za povratne informacije sa padajućom listom. HTML forme. Grupisanje stavki liste
U procesu kreiranja web stranice ili bloga i njegovog daljeg popunjavanja sadržajem, iz različitih razloga, ponekad je potrebno sakriti dio teksta, staviti obimnije informacije u blok koji je za sada skriven, ali ipak ukazati na korisniku ono što je dostupno nešto drugo, te mu dati priliku da vidi skriveni sadržaj bez prelaska na sljedeći red ili stranicu.
Ranije je gomila javascripta korištena za implementaciju takvog rješenja, ali sada se sve to može učiniti vrlo lako koristeći nevjerovatna svojstva.
Danas ćemo pogledati najjednostavniji način kreiranja skrivenih blokova sadržaja na stranicama web-mjesta i u pojedinačnim porukama koje se otvaraju kada kliknete na određeni tekstualni element, koristeći isključivo CSS3 svojstva. Prekidač može biti jedna riječ, istaknuta fraza, cijela rečenica ili informativna ikona.
Takvi blokovi se često koriste na stranicama s velikom količinom sadržaja, kako bi bili strukturiraniji i kompaktniji, sav sadržaj je podijeljen u takozvane grupe, u kojima se korisniku prikazuju samo naslovi, sav tekst je po defaultu skriven i može se vidjeti klikom na određeni element (vidi gore).
Pokušajmo bez nepotrebne vode, pogledajte cijeli ovaj jednostavan mehanizam na djelu, sa jasnim primjerom, a možete i urediti nešto ako želite:
Primjer br. 1
Neodabrani i neoznačeni tekst se koristi kao prekidači za padajuće blokove sa dodatnim informacijama, uz nedvosmislenu pozivnicu da kliknete na njega, što morate učiniti bez straha ili sumnje da biste vidjeli)))
Kao što vidite, sve radi više nego savršeno, skriveni sadržaj se pojavljuje bez problema i nestaje laganim klikom miša, a pritom smo koristili minimalan izvršni kod, kako u html framework-u tako i u formiranju css stilova. Bez povezivanja dodatnih javascript biblioteka, uz vječnu brigu da li su one onemogućene na strani korisnika.
Implementacija sve ove akcije postala je moguća zahvaljujući pseudo-klasi CSS3 :provjereno, primijenjen na elemente interfejsa kao što su radio dugmad (). Šta smo zapravo uradili u oznaci Atributu tipa smo dodijelili polje za potvrdu vrijednosti, kao i identifikator id="hd-1" koji odgovara jedinstvenom identifikatoru for="hd-1" strujni blok prekidač. Potvrde ćemo sakriti temeljito i zauvijek postavljanjem svojstva display: none u class.hide.
Zapravo, ovdje nema ništa posebno objašnjavati; cijeli mehanizam za uključivanje i isključivanje skrivenih blokova sastoji se od tri elementa:
- Polje za potvrdu - oznaka sa značenjem polje za potvrdu atribut tip i sa specifičnim identifikatorom povezivanja
- Naslov (prekidač teksta) - oznaka sa jedinstvenom vrijednošću identifikatora za atribut za, (identifikator mora biti isti kao identifikator oznake unos sa značenjem polje za potvrdu atribut tip).
- Blok sadržaja je div tag, koji će sadržavati, do boljih vremena, dok korisnik ne klikne, različite skrivene sadržaje (tekst, slike itd., itd.)
Nadam se da je iz mog haotičnog objašnjenja postalo jasno u čemu je poenta. CSS primjenjuje nove stilove (koristeći pseudo-klasu provjereno) za prikaz bloka sadržaja koji je prethodno bio sakriven samo kada korisnik klikne na element koji je jedinstvenim identifikatorom povezan s potvrdnim okvirom.
Iz svega proizilazi važna napomena:
Kada koristite više skrivenih blokova na istoj stranici, svako radio dugme mora imati jedinstveni ID koji će se razlikovati od ID-ova u drugim blokovima.
Dakle, riječima smo sredili šta ide kamo i zašto, sada pogledajmo html okvir cijele strukture:
< input class = "hide" id= "hd-1" type= "checkbox" > < label for = "hd-1" >Kliknite ovdje da otvorite! label> < div>Skriveni sadržaj..... div> < input class = "hide" id= "hd-2" type= "checkbox" > < label for = "hd-2" >Kliknite ovdje da pročitate više! label> < div>Skriveni sadržaj... div> |
Zatim prelazimo direktno na formiranje CSS stilova, bez kojih cijeli ovaj dizajn neće funkcionirati. Sasvim minimum koda, bez ikakvog ukrasa, samo je malo istaknuo pozadinu za padajući blok da biste definirali i prikazali okvir skrivenog teksta. Možete dizajnirati blokove kako želite, dodati ivice, zaobljene uglove, istaknuti tekst ili .
1.CSS
. sakriti,. sakriti + label ~ div (prikaz: nema;) /* tip teksta oznake */. sakriti + oznaka, . sakriti: označeno + oznaka (dopuna: 0; boja: zelena; kursor: pokazivač; obrub-dno: 1px tačkasto zeleno; ) . hide: označeno + label + div ( display: block; background: #efefef; - moz- box- shadow: inset 3px 3px 10px #7d8e8f; - webkit- box- shadow: inset 3px 3px 10px #7d8e8f; box- shadow: inset 3px 3px 10px #7d8e8f; padding: 10px; ) |
/* sakrij potvrdne okvire i blokove sadržaja */ .hide, .hide + label ~ div (prikaz: nema; ) /* izgled teksta oznake */ .hide + label, .hide:checked + label (dopuna: 0; boja: zelena ; kursor: pokazivač; border-bottom: 1px tačkasto zeleno; ) /* izgled teksta oznake kada je prekidač aktivan */ .hide: označeno + oznaka (boja: crvena; border-bottom: 0; ) /* kada je potvrdni okvir je aktivan, prikaži blokove sa sadržajem */ .hide:checked + label + div ( display: block; background: #efefef; -moz-box-shadow: inset 3px 3px 10px #7d8e8f; -webkit-box-shadow: inset 3px 3px 10px #7d8e8f; box-shadow: inset 3px 3px 10px #7d8e8f; padding: 10px; )
Ovo je sve, za jedan asketski primjer, sasvim dovoljan minimum. Ali nećemo uopće biti mi ako ne dodamo barem neke dobrote, a bolje je vizualno reći korisniku gdje da klikne.
U drugom primjeru sam dodao jednostavan simbol u obliku plusa koji jasno ukazuje da je ovdje skriveno nešto drugo; kada se pritisne, odmah se pretvara u minus, a skrivenim blokovima sa sadržajem sam dodao malo animacije kada pojavljuju se, a sve to isključivo uz pomoć magije CSS3.
2.CSS
/* sakrij potvrdne okvire i blokove sadržaja */. sakriti,. sakriti + label ~ div (prikaz: nema;) /* tip teksta oznake */. sakriti + oznaka ( margina: 0; padding: 0; boja: zelena; kursor: pokazivač; prikaz: inline-blok; ) /* izgled teksta oznake kada je prekidač aktivan */. sakriti: označeno + oznaka (boja: crvena; obrub-dolje: 0 ; ) /* kada je potvrdni okvir aktivan, prikaži blokove sa sadržajem */. hide: označeno + label + div ( display: block; background: #efefef; - moz- box- shadow: inset 3px 3px 10px #7d8e8f; - webkit- box- shadow: inset 3px 3px 10px #7d8e8f; box- shadow: inset 3px 3px 10px #7d8e8f;margin-left: 20px;padding: 10px; /* malo animacije pri pojavljivanju */- webkit- animacija: fade ease- za 0.5s; - moz- animacija: fade ease- za 0.5s; animacija: bledenje u 0.5s; ) /* animacija kada se pojave skriveni blokovi */@- moz- ključni kadrovi blijedi ( od ( neprozirnost: 0 ; ) do ( neprozirnost: 1 ) ) @- webkit- ključni kadrovi blijedi ( od ( neprozirnost: 0 ; ) do ( neprozirnost: 1 ) ) @ ključni kadrovi blijedi ( od ( neprozirnost: 0 ; ) do ( neprozirnost: 1 ) ) . sakriti + oznaka: prije ( boja pozadine: #1e90ff; boja: #fff; sadržaj: " \002 B"; displej: blok; float: lijevo; veličina fonta: 14px; font-weight: bold; visina: 16px; visina linije: 16px; margina: 3px 5px; poravnanje teksta: centar; širina: 16px; - webkit- granica- radijus: 50%; - moz- granica- radijus: 50%; radijus granice: 50%; ) . sakriti: označeno + oznaka: prije ( sadržaj: " \221 2" ; } |
/* sakriti potvrdne okvire i blokove sadržaja */ .hide, .hide + label ~ div (prikaz: nema; ) /* izgled teksta oznake */ .hide + label ( margina: 0; padding: 0; boja: zelena; kursor: pointer; display: inline-block; ) /* izgled teksta oznake kada je prekidač aktivan */ .hide:checked + label (boja: crvena; border-bottom: 0; ) /* kada je potvrdni okvir aktivan, prikaži blokovi sa sadržajem */ . hide:checked + label + div ( display: block; background: #efefef; -moz-box-shadow: inset 3px 3px 10px #7d8e8f; -webkit-box-shadow: inset 3px 3px 10px #7d8e8f ; box-shadow: inset 3px 3px 10px #7d8e8f; margin-left: 20px; padding: 10px; /* mala animacija kada se pojavi */ -webkit-animation:fade ease-in 0,5s; -moz-animation:fade ease -za 0,5s; animacija: fade ease-in 0,5s; ) /* animacija kada se pojave skriveni blokovi */ @-moz-keyframes blijedi (od (prozirnost: 0; ) do (prozirnost: 1)) @-webkit-keyframes fade ( od ( neprozirnost: 0 ; ) do ( neprozirnost: 1 ) ) @keyframes fade ( od ( neprozirnost: 0; ) do ( neprozirnost: 1 ) ) .hide + label:before ( boja pozadine: #1e90ff; boja: #fff; sadržaj: "\002B"; displej: blok; float: lijevo; veličina fonta: 14px; font-weight: bold; visina: 16px; visina linije: 16px; margina: 3px 5px; text-align: centar; širina: 16px; -webkit-border-radius: 50%; -moz-border-radius: 50%; radijus granice: 50%; ) .hide:checked + label:before (sadržaj: "\2212"; )
Po svemu sudeći, metoda je nesumnjivo dobra, ali kao i uvijek, i nimalo iznenađujuće, problemi nastaju sa vječnom kočnicom napretka, IE pretraživačem, pseudo-klasom provjereno podržavaju samo verzije 9 i novije ovog pretraživača. Za starije verzije IE-a sve ostaje isto, morat ćete koristiti javascript.
Koristeći skrivene potvrdne okvire, možete jednostavno implementirati stilizirane blokove, klizače, galerije i još mnogo toga.
Uz svo poštovanje, Andrew
Opis
HTML oznaka
Element
Širina padajućeg menija će biti određena najdužim tekstom navedenim u oznaci