HTML obrazac za povratne informacije s padajućim popisom. HTML obrasci. Grupiranje stavki popisa
U procesu izrade web stranice ili bloga i daljnjeg popunjavanja sadržajem, iz različitih razloga, ponekad postane potrebno sakriti dio teksta, opsežnije informacije smjestiti u zasad skriveni blok, ali ipak naznačiti korisniku ono što je dostupno nešto drugo i dajte mu priliku da vidi skriveni sadržaj bez prelaska na sljedeći redak ili stranicu.
Prethodno se za implementaciju takvog rješenja koristila hrpa javascripta, ali sada se sve to može učiniti vrlo jednostavno pomoću nevjerojatnih svojstava.
Danas ćemo pogledati najjednostavniji način stvaranja skrivenih blokova sadržaja na stranicama web mjesta iu pojedinačnim porukama koje se otvaraju kada kliknete na određeni element teksta, koristeći isključivo CSS3 svojstva. Prekidač može biti jedna riječ, istaknuti izraz, cijela rečenica ili informativna ikona.
Takvi se blokovi često koriste na stranicama s velikom količinom sadržaja, kako bi ga učinili strukturiranijim i kompaktnijim, sav sadržaj je podijeljen u takozvane grupe, u kojima su samo naslovi prikazani korisniku, sav tekst je prema zadanim postavkama skriven i može se vidjeti klikom na određeni element (vidi gore).
Pokušajmo učiniti bez nepotrebne vode, pogledajte cijeli ovaj jednostavan mehanizam na djelu, s jasnim primjerom, a možete i urediti nešto ako želite:
Primjer br. 1
Neoznačeni i neoznačeni tekst se koristi kao prekidači za padajuće blokove s dodatnim informacijama, s nedvosmislenim pozivom da kliknete na njega, što morate učiniti bez straha ili sumnje vidjeti)))
Kao što vidite, sve radi više nego savršeno, skriveni sadržaj se bez problema pojavljuje i nestaje laganim klikom miša, a pritom smo upotrijebili minimalno izvršnog koda, kako u html frameworku tako iu formaciji css stilova. Bez povezivanja dodatnih javascript biblioteka, uz vječitu brigu hoće li one biti onemogućene na strani korisnika.
Implementacija svih ovih radnji postala je moguća zahvaljujući CSS3 pseudo-klasi :provjereno, primijenjen na elemente sučelja kao što su radio gumbi (). Što smo zapravo napravili u oznaci Atributu tipa dodijelili smo potvrdni okvir vrijednosti, kao i identifikator id="hd-1" koji odgovara jedinstvenom identifikatoru za = "hd-1" trenutni blok prekidač. Potvrdne okvire ćemo temeljito i zauvijek sakriti postavljanjem svojstva display: none u klasi.hide.
Zapravo, ovdje se nema što posebno objašnjavati; cijeli mehanizam za uključivanje i isključivanje skrivenih blokova sastoji se od tri elementa:
- Potvrdni okvir - oznaka sa značenjem potvrdni okvir atribut tip i s određenim identifikatorom povezivanja
- Naslov (zamjena teksta) - oznaka s jedinstvenom vrijednošću identifikatora za atribut za, (identifikator mora biti isti kao identifikator oznake ulazni sa značenjem potvrdni okvir atribut tip).
- Blok sadržaja je div tag, koji će do boljih vremena, dok korisnik ne klikne, sadržavati razne skrivene sadržaje (tekst, slike, itd., itd.)
Nadam se da je iz mog kaotičnog objašnjenja postalo jasno u čemu je stvar. CSS primjenjuje nove stilove (pomoću pseudoklase provjereno) za prikaz bloka sadržaja koji je prethodno bio skriven samo kada korisnik klikne na element koji je jedinstvenim identifikatorom povezan s potvrdnim okvirom.
Iz svega ovoga proizlazi važna nota:
Kada koristite više skrivenih blokova na istoj stranici, svaki radio gumb mora imati jedinstveni ID koji će se razlikovati od ID-ova u drugim blokovima.
Dakle, riječima smo razvrstali što kamo ide i zašto, sada pogledajmo html okvir cijele strukture:
< input class = "hide" id= "hd-1" type= "checkbox" > < label for = "hd-1" >Kliknite ovdje za otvaranje! label> < div>Skriveni sadržaj..... div> < input class = "hide" id= "hd-2" type= "checkbox" > < label for = "hd-2" >Kliknite ovdje da biste pročitali više! label> < div>Skriveni sadržaj... div> |
Zatim prelazimo izravno na formiranje CSS stilova, bez kojih ovaj cijeli dizajn neće funkcionirati. Sasvim minimum koda, bez ikakvih ukrasa, samo je blago istaknutu pozadinu za padajući blok koji možete definirati i prikazati okvir skrivenog teksta. Možete dizajnirati blokove kako želite, dodati obrube, zaobljene kutove, istaknuti tekst ili .
1.CSS
. sakriti, . sakrij + oznaka ~ div ( prikaz: ništa; ) /* vrsta teksta oznake */. sakriti + oznaka, . sakrij: označeno + oznaka ( padding: 0; boja: zelena; pokazivač: pokazivač; obrub-dolje: 1px isprekidana zelena;) . 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; ispuna: 10px; ) |
/* sakrij potvrdne okvire i blokove sadržaja */ .hide, .hide + label ~ div ( display: none; ) /* izgled teksta oznake */ .hide + label, .hide:checked + label ( padding: 0; boja: zelena ; pokazivač: pokazivač; border-bottom: 1px isprekidano 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; okvir-sjena: umetnuti 3px 3px 10px #7d8e8f; ispuna: 10px; )
Sve je to, za asketski primjer, sasvim dovoljan minimum. Ali mi uopće nećemo biti mi ako ne dodamo barem neke dobrote, a bolje je vizualno reći korisniku gdje kliknuti.
U drugom primjeru dodao sam jednostavan simbol u obliku plusa koji jasno pokazuje da se ovdje krije još nešto, pritiskom istog trena prelazi u minus, a skrivenim blokovima sa sadržajem sam dodao malu animaciju kada pojavljuju se, a sve to isključivo uz pomoć magije CSS3.
2.CSS
/* sakrij potvrdne okvire i blokove sadržaja */. sakriti, . sakrij + oznaka ~ div ( prikaz: ništa; ) /* vrsta teksta oznake */. sakrij + oznaka ( margina: 0; padding: 0; boja: zelena; pokazivač: pokazivač; prikaz: inline- block; ) /* izgled teksta oznake kada je prekidač aktivan */. sakrij: označeno + oznaka ( boja: crvena; obrub- dno: 0 ; ) /* kada je potvrdni okvir 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;margin-left: 20px;padding: 10px; /* mala animacija prilikom pojavljivanja */- webkit- animacija: lakoća blijeđenja - za 0,5 s; - moz- animacija: fade ease- za 0,5s; animacija: lagano blijeđenje - za 0,5 s; ) /* animacija kada se pojave skriveni blokovi */@- moz- ključni okviri blijede (od ( neprozirnost: 0 ; ) do ( neprozirnost: 1 ) ) @- webkit- ključni okviri blijede ( od ( neprozirnost: 0 ; ) do ( neprozirnost: 1 ) ) @ ključni okviri blijede ( od ( neprozirnost: 0 ; ) do ( neprozirnost: 1 ) ). sakrij + oznaka: prije ( boja pozadine: #1e90ff; boja: #fff; sadržaj: " \002 B"; prikaz: blok; plovak: lijevo; veličina fonta: 14px; font-weight: bold; visina: 16px; line-height: 16px; margina: 3px 5px; poravnanje teksta: sredina; širina: 16px; - webkit- granica- radijus: 50%; - moz- granica- radijus: 50%; rubni radijus: 50%; ) . sakrij: označeno + oznaka: prije ( sadržaj: " \221 2" ; } |
/* sakrij potvrdne okvire i blokove sadržaja */ .hide, .hide + label ~ div ( display: none; ) /* 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 -in 0.5s; animacija: fade ease-in 0.5s; ) /* animacija kada se pojave skriveni blokovi */ @-moz-keyframes blijede ( od ( neprozirnost: 0; ) do ( neprozirnost: 1 ) ) @-webkit-keyframes fade ( from ( neprozirnost: 0 ; ) to ( neprozirnost: 1 ) ) @keyframes fade ( from ( neprozirnost: 0; ) to ( neprozirnost: 1 ) ) .hide + label:before ( background-color: #1e90ff; boja: #fff; sadržaj: "\002B"; prikaz: blok; plovak: lijevo; veličina fonta: 14px; font-weight: bold; visina: 16px; line-height: 16px; margina: 3px 5px; poravnanje teksta: središte; širina: 16px; -webkit-border-radius: 50%; -moz-border-radius: 50%; rubni radijus: 50%; ) .hide:checked + label:before ( sadržaj: "\2212"; )
Po svemu sudeći, metoda je nedvojbeno dobra, ali kao i uvijek, i nimalo iznenađujuće, problemi nastaju s vječnom kočnicom napretka, IE preglednikom, pseudoklasom provjereno podržava samo verzije 9 i novije ovog preglednika. 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.
Sa svim poštovanjem, Andrew
Opis
HTML oznaka
Element
Širina padajućeg izbornika bit će određena najdužim tekstom navedenim u oznaci