Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Windows 7, XP
  • Zadani model prikaza za elemente obrasca. Čudno ponašanje unosa datoteka

Zadani model prikaza za elemente obrasca. Čudno ponašanje unosa datoteka

CSS je skraćenica od Cascading Style Sheets, što znači Cascading Style Sheets. Koristi se za ukrašavanje web stranica. Ako HTML sadrži sadržaj (što će preglednik prikazati), onda CSS određuje njegov izgled (kako će ga preglednik prikazati). Ljepota CSS-a je u tome što uz pomoć jednog stila možete dizajnirati sve elemente istog tipa stranice ili cijele stranice odjednom (sve veze, odlomci, liste odjednom). Sa CSS stilom, jednom definirate kako bi određeni element trebao izgledati, na primjer, slike, a oni odjednom mijenjaju svoj izgled u svim dokumentima. Da biste promijenili formatiranje teksta na cijeloj web stranici, trebate samo jednom promijeniti CSS kod.

Osnovni CSS elementi

Baš kao što se HTML sastoji od oznaka, atributa i vrijednosti, tako se i CSS sastoji od vlastitih vlastitih elemenata... Bit CSS konstrukcija može se objasniti na sljedeći način: "Navedite koji element stranice treba stilizirati i naznačiti kako ga stilizirati." Ovdje su sastavne CSS konstrukcije.

  • Selektor... Identifikator koji pregledniku govori na koji element na stranici treba primijeniti dizajn. Zahvaljujući njemu, preglednik "shvaća" da je stil namijenjen, na primjer, za ukrašavanje popisa ili tablica.
  • Blok deklaracije stila... Piše se iza selektora i nalazi se u vitičastim zagradama. Postavlja stil elementa (njegov dizajn). Blok deklaracije stila sastoji se od dva dijela.
  • Vlasništvo... Analog atributa u HTML-u. Određuje koje će se posebno svojstvo stila promijeniti.
  • Značenje... Postavlja se na svojstvo, odvojeno dvotočkom, i određuje kako će se točno svojstvo promijeniti.

U bloku deklaracije stila može biti nekoliko svojstava i vrijednosti, a u tom su slučaju navedene odvojene točkom i zarezom.

Vrste selektora

Postoje različite vrste selektora ovisno o svojstvima elemenata stranice koje definiraju.

  • Univerzalni... Postavlja pravila za sve elemente stranice za koje nisu postavljena druga pravila.
    Kod * (veličina fonta: 14px;) postavlja veličinu fonta na 14 piksela za sve elemente u dokumentu, za koje nisu navedena drugačija pravila pomoću drugih selektora.
  • Tega. Ova vrsta selektora specificira pravila oblikovanja za sadržaj određene HTML oznake. Ime selektora je isto kao i naziv deskriptora, samo što je napisano bez kutnih zagrada: str, h1, ul.
    Na primjer kod h2 (boja: crvena;) setovi zelene boje tekst za sve naslove druge razine, odnosno sadržaj oznaka

    .
  • Atributi... S ovom grupom selektora možete definirati stil sadržaja svih oznaka kojima je dodijeljen određeni atribut. Selektori se mogu preciznije odrediti navođenjem ne samo naziva atributa, već i vrijednosti koja mu je dodijeljena, kao i naziva oznake koja ga sadrži. Ovo se može koristiti za personalizaciju dizajna.
  • Razred... Svojevrsni selektori u slučaju da trebate stilizirati sadržaj tagova iste vrste na različite načine. Na primjer, želite linkove na dnu stranice učiniti crvenim, dok sve ostale trebaju ostati plave, kakve su bile. Da biste primijenili pravila klase na element web mjesta, morate navesti naziv klase u atributu razreda odgovarajuću oznaku.

Pretpostavimo da koristite klasu korak pojedinačni elementi trebate postaviti lijevo uvlačenje na 15 piksela.

CSS kod će biti ovakav:

Korak (margin-lijevo: 15px;)

HTML kôd koji će povezati element s pravilom bit će sljedeći:

Uvučeni tekst

  • iskaznica... Koristi se zajedno s atributom iskaznica HTML oznaka i koristi se kada je potrebno postaviti svojstva na jedan element. Za razliku od selektora klase, kojem prethodi točka, piše se kroz hash:

#exclusive (boja: narančasta;)

  • Kontekstualno... U HTML-u se neke oznake često nalaze unutar drugih, a kontekstualni selektori pomažu vam definirati pravila za upravo takav slučaj. Koristeći ih, na primjer, možete oblikovati stavke unutar numeriranih popisa ili kurziv tekst unutar pasusa:

P i (fint-familija: Century;)

Ostale grupe selektora temelje se na kombinaciji navedenih tipova, kao i na principu nasljeđivanja, kada podređeni element preuzima svojstva roditelja.

Kombiniranje i grupiranje selektora korisno je u mnogim situacijama. Na primjer, za definiranje pravila klase korak samo za veze, morate navesti oba selektora odvojena točkom (prvo oznaku, zatim klasu):

A.korak (margin-lijevo: 15px;)

Kako spojiti CSS na HTML stranicu?

Postoji nekoliko načina na koje možete natjerati alate za izradu web stranice da međusobno komuniciraju. Stilovi su podijeljeni u sljedeće kategorije na temelju načina dodavanja.

Umetnuti stilovi

Postavljaju se u dokumentu izravno unutar HTML oznake pomoću atributa stil... Imajte najviši prioritet. To znači da ako je za isti element zadan drugačiji dizajn, tada će prednost imati pravilo koje je napisano unutar oznake. Selektor za inline stil nije potreban, budući da je odnos između stila i oznake očigledan - u njemu je postavljen dizajn oznake.

Sljedeći kod postavlja veličinu i boju fonta za tekst unutar oznake.

Tekst unutarnjeg stila.

Globalni stilovi

Definirano oznakom

Povezani stilovi

Najprikladniji, jer uz njihovu pomoć možete jednostavno dogovoriti ujednačenog stila cijelo mjesto. Povezani stil pretpostavlja da se sav CSS stil nalazi u zasebnoj datoteci s ekstenzijom .css.

Ovaj pristup je prikladan i po tome što odvaja pravila izgleda stranica od njihovog sadržaja, CSS kod se može lako mijenjati bez ometanja HTML datoteka, a princip odvajanja koda je vrlo važan, posebno u velikim projektima.

Da biste povezali pravila iz CSS datoteke s HTML stranicom, koristite oznaku dodano u spremnik , i njegove atribute.

Ovdje je red koji povezuje pravila iz datoteke mystyle.css sa HTML stranicom:

rel = "tablica stilova" specificira da se oznaka odnosi na datoteku stilova, href = "mysyle.css" postavlja svoju adresu. Pravila oslovljavanja su ista kao za redovite veze- put može biti apsolutan, relativan itd.

Uvezeni stilovi

Korištenje naredbe @uvoz možete dodati stilove iz CSS datoteke u trenutnu tablicu. To može biti potrebno, na primjer, ako želite nadopuniti izgled pojedinačnog dokumenta, naveden korištenjem globalnih stilova, s univerzalnim pravilima iz zasebna datoteka... Metoda se ne može koristiti s inline stilovima.

Kod u nastavku će uvesti tablicu datoteka u dokument bilo.css, koji se nalazi u mapi s HTML dokumentom koji se uređuje:

@import url (bilo koji.css);

Naredba je napisana u retku ispod početne oznake

CSS (Cascading Style Sheets) ili Cascading Style Sheets koriste se za opisivanje izgled dokument napisan u jeziku za označavanje. Obično se CSS stilovi koriste za stvaranje i modificiranje stila elemenata web stranice i korisničkih sučelja napisanih HTML jezici i XHTML, ali se također može primijeniti na bilo koju vrstu XML dokumenta, uključujući XML, SVG i XUL.

Kaskadni listovi stilova opisuju pravila za oblikovanje elemenata pomoću svojstava i prihvatljive vrijednosti ova svojstva. Za svaki element možete koristiti ograničeni skup svojstava, ostala svojstva neće imati nikakav utjecaj na njega.

Deklaracija stila sastoji se od dva dijela: element web stranice - selektor, a naredbe za oblikovanje su - oglasni blok... Selektor govori pregledniku koji element treba formatirati i u oglasnom bloku (kod u kovrčave zagrade) navodi naredbe za oblikovanje - svojstva i njihove vrijednosti.


Riža. 1. Struktura deklaracije u CSS stilu

Vrste kaskadnih stilskih tablica i njihove specifičnosti

1. Vrste stilskih tablica

1.1. Vanjski stilski list

Vanjski stilski list predstavlja tekstualnu datoteku css proširenje, koje sadrži skup elemenata u CSS stilu. Datoteka se kreira u uređivaču koda, baš kao i HTML stranica. Datoteka može sadržavati samo stilove, bez HTML oznake. Vanjski stilski list povezan je s web-stranicom pomoću oznake nalazi unutar odjeljka ... Ovi stilovi funkcioniraju za sve stranice na web mjestu.

Više stilskih tablica može se priložiti svakoj web stranici dodavanjem više oznaka u nizu određivanjem svrhe ovog stilskog lista u atributu medijske oznake. rel = "stylesheet" označava vrstu veze (veza stilskog lista).

Atribut type = "text / css" nije obavezan u HTML5 standardu i može se izostaviti. Ako je atribut odsutan, zadana vrijednost je type = "text / css".

1.2. Interni stilovi

Interni stilovi ugrađen u odjeljak HTML dokument i definirani su unutar oznake... Unutarnji stilovi imaju prednost nad vanjskim stilovima, ali su inferiorni u odnosu na inline stilove (navedene pomoću atributa stila).

...

1.3. Umetnuti stilovi

Kad pišemo umetnuti stilovi, pišemo CSS kod u HTML datoteku, izravno unutar oznake elementa pomoću atributa style:

Obratite pažnju na ovaj tekst.

Ovi stilovi utječu samo na element za koji su specificirani.

1.4. @Pravilo uvoza

@Pravilo uvoza omogućuje učitavanje vanjskih stilova. Da bi direktiva @import funkcionirala, mora se pojaviti u tablici stilova (vanjski ili interni) prije svih ostalih pravila:

Pravilo @import također se koristi za uključivanje web fontova:

@import url (https://fonts.googleapis.com/css?family=Open+Sans&subset=latin,cyrillic);

2. Vrste selektora

Selektori predstavljaju strukturu web stranice. Koriste se za stvaranje pravila za oblikovanje elemenata web stranice. Selektori mogu biti elementi, njihove klase i identifikatori, kao i pseudoklase i pseudoelementi.

2.1. Univerzalni selektor

Odgovara bilo kojem HTML elementu. Na primjer, * (margina: 0;) poništit će margine za sve elemente web mjesta. Također, selektor se može koristiti u kombinaciji s pseudo-klasom ili pseudo-elementom: *: poslije (CSS stilovi), *: označeno (CSS stilovi).

2.2. Birač elemenata

Selektori elemenata omogućuju formatiranje svih elemenata ovog tipa na svim stranicama stranice. Na primjer, h1 (familija fontova: Jastog, cursive;) će postaviti opći stil oblikovanja za sve naslove h1.

2.3. Selektor razreda

Selektori klasa omogućuju vam stiliziranje jednog ili više elemenata isto ime razred postavljen na različita mjesta na stranici ili na različite stranice mjesto. Na primjer, da biste stvorili naslov s klasom naslova, dodajte atribut klase s naslovom vrijednosti u početnu oznaku

i postaviti stil za navedenu klasu. Stilovi stvoreni klasom mogu se primijeniti na druge elemente, ne nužno ovog tipa.

Upute za korištenje osobno računalo

.headline (transformacija teksta: velika slova; boja: svijetloplava;)

2.4. Selektor identifikatora

ID birač omogućuje formatiranje jedan specifična stavka. ID mora biti jedinstven i može se pojaviti samo jednom na jednoj stranici.

#sidebar (širina: 300px; float: lijevo;)

2.5. Selektor potomaka

Selektori potomaka primjenjuju stilove na elemente unutar elementa spremnika. Na primjer, ul li (transformacija teksta: velika slova;) će odabrati sve li elemente koji su potomci svih ul elemenata.

Ako želite formatirati potomke određenog elementa, morate postaviti klasu stila za taj element:

p.prvi a (boja: zelena;) - zadanog stila primjenjivat će se na sve veze koje su potomci odlomka s prvom klasom;

p .first a (boja: zelena;) - ako dodate razmak, onda će veze koje se nalaze unutar bilo koje oznake klase .first, koja je dijete elementa, biti stilizirane

Prvo a (boja: zelena;) - ovaj stil će se primijeniti na bilo koju vezu koja se nalazi unutar drugog elementa označenog od strane .first class.

2.6. Selektor djece

Podređeni element je izravno dijete elementa koji ga sadrži. Jedan element može imati nekoliko dječji elementi, a svaki element može imati samo jedan roditeljski element. Podređeni selektor omogućuje vam primjenu stilova samo ako podređeni element odmah slijedi roditeljski element i između njih nema drugih elemenata, odnosno dijete više nije ugniježđeno ni u čemu.
Na primjer, p> strong će odabrati sve jake elemente koji su podređeni elementu p.

2.7. Sestra selektorica

Sestrinski odnos nastaje između elemenata sa zajedničkim roditeljem. Selektori braće i sestara omogućuju vam odabir stavki iz grupe braće i sestara.

h1 + p - će odabrati sve prve odlomke odmah nakon bilo koje oznake

bez utjecaja na ostale odlomke;

h1 ~ p - odabire sve paragrafe koji su braća i sestre bilo kojem h1 naslovu i odmah nakon njega.

2.8. Selektor atributa

Selektori atributa odabiru elemente na temelju naziva atributa ili vrijednosti atributa:

[attribute] - svi elementi koji sadrže navedeni atribut - svi elementi za koje je postavljen alt atribut;

selector [attribute] - elementi ovog tipa koji sadrže navedeni atribut, img - samo slike za koje je postavljen alt atribut;

selektor [attribute = "value"] - elementi ovog tipa koji sadrže navedeni atribut s određenom vrijednošću, img - sve slike čiji nazivi sadrže riječ cvijet;

selektor [attribute ~ = "vrijednost"] - elementi koji djelomično sadrže zadanu vrijednost, na primjer, ako je nekoliko klasa navedeno za element odvojen razmakom, p - odlomci, čiji naziv klase sadrži značajku;

selektor [attribute | = "value"] - elementi čiji popis vrijednosti atributa počinje navedenom riječju, p - odlomci čiji je naziv klase značajka ili počinje značajkom;

selektor [attribute ^ = "value"] - elementi čija vrijednost atributa počinje navedenom vrijednošću, a - sve veze koje počinju s http: //;

selektor [attribute $ = "value"] - elementi čija vrijednost atributa završava navedenu vrijednost, img - sve slike u png formatu;

selektor [attribute * = "value"] - elementi čija vrijednost atributa sadrži navedenu riječ bilo gdje, a - sve veze čiji naziv sadrži knjigu.

2.9. Pseudo selektor klase

Pseudo-klase su klase koje zapravo nisu vezane uz HTML oznake. Omogućuju vam primjenu CSS pravila na elemente na događaju ili submissive određeno pravilo... Pseudo-klase karakteriziraju elemente sa sljedećim svojstvima:

: lebdjeti - bilo koji element iznad kojeg lebdi kursor miša;

: fokus - interaktivni element do kojeg je navigirano pomoću tipkovnice ili aktiviran pomoću miša;

: active - element koji je aktivirao korisnik;

: valid - polja obrasca čiji je sadržaj provjeren u pregledniku na usklađenost s navedenom vrstom podataka;

: invalid - polja obrasca čiji sadržaj ne odgovara navedenoj vrsti podataka;

: omogućeno - sva aktivna polja obrasca;

: disabled - onemogućena polja obrasca, tj. u neaktivnom stanju;

: u rasponu - polja obrasca čije su vrijednosti u navedenom rasponu;

: izvan raspona - polja oblika čije vrijednosti nisu uključene u navedeni raspon;

: lang () - elementi s tekstom na navedenom jeziku;

: not (selektor) - elementi koji ne sadrže navedeni selektor - klasu, identifikator, naziv ili tip polja obrasca -: not ();

: cilj - element sa simbolom # koji se referencira u dokumentu;

: označeno - odabrani (odabrano od strane korisnika) elementi obrasca.

2.10. Strukturni selektor pseudoklasa

Strukturne pseudoklase odabiru djecu prema parametru navedenom u zagradama:

: nth-child (odd) - neparna djeca;

: nth-dijete (parno) - parna djeca;

: nth-child (3n) - svaki treći element među djecom;

: nth-child (3n + 2) - odabire svaki treći element počevši od drugog djeteta (+2);

: nth-child (n + 2) - odabire sve elemente počevši od drugog;

: nth-child (3) - odabire treće dijete;

: nth-last-child () - na popisu djece odabire element s navedeno mjesto, slično: nth-child (), ali počevši od posljednjeg u suprotnom smjeru;

: first-child - omogućuje vam stiliziranje samo prvog djeteta oznake;

: last-child - omogućuje formatiranje posljednjeg podređenog elementa oznake;

: only-child - odabire element koji je jedino dijete;

: prazno - odabire elemente koji nemaju djece;

: root - odabire element koji je korijen dokumenta - html element.

2.11. Selektor pseudoklasa strukturnog tipa

Označava određenu vrstu podređene oznake:

: nth-of-type () - odabire elemente po analogiji s: nth-child (), uzimajući u obzir samo tip elementa;

: first-of-type - odabire prvo dijete zadanog tipa;

: last-of-type - odabire posljednji element ovog tipa;

: nth-last-of-type () - odabire element dati tip u popisu stavki prema navedenom mjestu, počevši od kraja;

: only-of-type - Odabire jedini element navedene vrste među djecom roditeljskog elementa.

2.12. Pseudo selektor elemenata

Pseudoelementi se koriste za dodavanje sadržaja koji se generira pomoću svojstva sadržaja:

: prvo slovo - odabire prvo slovo svakog odlomka, odnosi se samo na blok elemente;

: first-line - odabire prvi redak teksta elementa, odnosi se samo na blok elemente;

: before - umeće generirani sadržaj prije elementa;

: poslije - dodaje generirani sadržaj nakon elementa.

3. Kombinacija selektora

Za precizniji odabir elemenata za oblikovanje možete koristiti kombinacije selektora:

img: nth-of-type (paran) - odabire sve parne slike, alternativni tekst koji sadrži riječ css.

4. Grupiranje selektora

Isti stil se može primijeniti na više elemenata u isto vrijeme. Da biste to učinili, na lijevoj strani deklaracije navedite potrebne selektore odvojene zarezima:

H1, h2, p, raspon (boja: rajčica; pozadina: bijela;)

5. Nasljeđivanje i kaskada

Nasljeđivanje i kaskada dva su temeljna koncepta u CSS-u koji su usko povezani. Nasljeđivanje znači da elementi nasljeđuju svojstva od svog roditelja (elementa koji ih sadrži). Kaskada se očituje u načinu različiti tipovi stilski listovi se primjenjuju na dokument i kako sukobljena pravila nadjačavaju jedno drugo.

5.1. Nasljedstvo

Nasljedstvo je mehanizam kojim se određena svojstva prenose s pretka na njegove potomke. CSS specifikacija osigurava nasljeđivanje svojstava vezanih uz tekstualni sadržaj stranice, kao što su boja, font, razmak između slova, visina reda, stil liste, poravnanje teksta, uvlaka teksta, transformacija teksta, vidljivost, bijela -razmak i razmak riječi. To je zgodno u mnogim slučajevima jer ne morate postavljati veličinu fonta i obitelj fontova za svaki element na web stranici.

Svojstva oblikovanja bloka se ne nasljeđuju. To su pozadina, obrub, prikaz, plutajući i čisti, visina i širina, margina, min-max-visina i -širina, obris, preljev, padding, položaj, dekoracija teksta, okomito poravnavanje i z-indeks.

Prisilno nasljeđivanje

Preko ključna riječ naslijediti Možete prisiliti element da naslijedi bilo koju vrijednost svojstva od nadređenog elementa. Ovo čak funkcionira i za svojstva koja se prema zadanim postavkama ne nasljeđuju.

Kako su CSS stilovi postavljeni i funkcioniraju

1) Stilovi se mogu naslijediti od roditeljskog elementa (naslijeđena svojstva ili korištenjem naslijeđene vrijednosti);

2) Stilovi koji se nalaze u donjoj tablici stilova nadjačavaju stilove koji se nalaze u gornjoj tablici;

3) Jedan element se može stilizirati različiti izvori... Možete provjeriti koji se stilovi primjenjuju u modu razvojnog programera preglednika. Da biste to učinili, kliknite iznad elementa. desni klik miša i odaberite "View Code" (ili nešto slično). Desni stupac će navesti sva svojstva koja su postavljena za ovaj element ili naslijeđena od nadređenog elementa, kao i stilske datoteke u kojima su navedena, i serijski broj linije koda.


Riža. 2. Način rada za razvojne programere u Google preglednik Krom

4) Prilikom definiranja stila možete koristiti bilo koju kombinaciju selektora - selektor elementa, pseudo-klasa elementa, klasa ili identifikator elementa.

div (bord: 1px solid #eee;) #wrap (width: 500px;) .box (float: left;) .clear (clear: oboje;)

5.2. Kaskada

Kaskadno Je mehanizam koji kontrolira krajnji rezultat kada se različita CSS pravila primjenjuju na isti element. Postoje tri kriterija koji određuju redoslijed primjene svojstava - važno pravilo, specifičnost i redoslijed u kojem su stilski listovi uključeni.

Važno pravilo

Težina pravila može se postaviti pomoću ključne riječi! Važno, koja se dodaje odmah iza vrijednosti svojstva, na primjer, raspon (težina fonta: podebljano! Važno;). Pravilo se mora staviti na kraj deklaracije, prije završne zagrade, bez razmaka. Takva objava imat će prednost nad svim ostalim pravilima. Ovo pravilo vam omogućuje da poništite vrijednost svojstva i postavite novu za element iz grupe elemenata u slučaju kada nema Direktni pristup u datoteku sa stilovima.

Specifičnost

Za svako pravilo, preglednik izračunava specifičnost selektora a ako element ima proturječne deklaracije svojstva, uzima se u obzir pravilo s najvećom specifičnošću. Vrijednost specifičnosti ima četiri dijela: 0, 0, 0, 0. Specifičnost selektora određena je na sljedeći način:

za id dodajte 0, 1, 0, 0;
0, 0, 1, 0 se dodaje za klasu;
0, 0, 0, 1 dodaje se za svaki element i pseudoelement;
za inline stil dodan izravno elementu - 1, 0, 0, 0;
univerzalni selektor nema specifičnosti.

H1 (boja: svijetloplava;) / * specifičnost 0, 0, 0, 1 * / em (boja: srebrna;) / * specifičnost 0, 0, 0, 1 * / h1 em (boja: zlatna;) / * specifičnost: 0, 0, 0, 1 + 0, 0, 0, 1 = 0, 0, 0, 2 * / div # glavna stranica (boja: plava;) / * specifičnost: 0, 0, 0, 1 + 0 , 1, 0, 0 + 0, 0, 0, 1 + 0, 0, 1, 0 = 0, 1, 1, 2 * / .bočna traka (boja: siva;) / * specifičnost 0, 0, 1, 0 * / #bočna traka (boja: narančasta;) / * specifičnost 0, 1, 0, 0 * / li # bočna traka (boja: aqua;) / * specifičnost: 0, 0, 0, 1 + 0, 1, 0, 0 = 0, 1, 0, 1 * /

Kao rezultat toga, ta će se pravila primijeniti na element čija je specifičnost veća. Na primjer, ako stavka ima dvije specifičnosti s vrijednostima 0, 0, 0, 2 i 0, 1, 0, 1, onda drugo pravilo pobjeđuje.

Redoslijed priloženih tablica

Možete stvoriti više vanjskih listova stilova i povezati ih na jednu web stranicu. Ako u različite tabliceću upoznati različita značenja svojstva jednog elementa, tada će se kao rezultat na element primijeniti pravilo koje se nalazi u stilskoj tablici na popisu ispod.

Čak i prije 1998., kada se pojavila specifikacija CSS razine 2, elementi obrasca su već bili široko podržani u svim glavnim preglednicima. CSS 2 specifikacija tek treba odgovoriti na pitanje kako se elementi obrasca trebaju predstaviti korisnicima. Budući da su elementi forme dio korisničko sučelje u svakom web dokumentu, autori specifikacije su odlučili otići vizualna prezentacija html elementi obrasca prema zadanim postavkama za svaki preglednik.

Tijekom godina, nedostatak detalja u specifikaciji u vezi s elementima obrasca prisilio je programere na stvaranje veliki broj testove i primjere, čija je glavna zadaća bila dovesti vizualne komponente svih elemenata oblika u jedan cross-browser izgled. U ovom članku ćemo pogledati neke CSS predlošci koji će vam omogućiti da elemente oblika dovedete u jedan zajednički nazivnik.

Testovi Rogera Johanssona za oblikovanje elemenata oblika

Još 2004., a zatim 2007., Roger Johansson kreirao je prilagođene testne pakete za elemente obrasca i CSS. Iz ovih testova proizašao je jedan zaključak koji je uznemirio Rogera:

Dakle, što je eksperiment pokazao? Kao što sam već napomenuo, testovi su pokazali da s koristeći CSS nije moguće kontrolirati stilove obrazaca kako bi se elementi obrasca prikazali istim na svim preglednicima i platformama. Testovi su također pokazali da većina preglednika zanemaruje mnoga CSS svojstva kada se primjenjuju na elemente obrasca stila.

Unatoč nepobitnoj istinitosti ovih nalaza, web programeri nastavljaju eksperimentirati CSS elementi forme u potrazi za Svetim gralom, ili barem razumnim kompromisom između zadanog prikaza preglednika i izvornog stila.

Zadani model prikaza za elemente obrasca

Prema zadanim postavkama, specifikacija CSS 2.1 za HTML4 postavlja način prikaza umetnutih blokova za elemente obrasca kao što su polje teksta, unos i odabir:

Područje teksta, unos, odabir (prikaz: inline-block;)

Obrnuto, elementi obrasca i skupa polja imaju način prikaza blokova:

Skup polja, obrazac (prikaz: blok;)

Model CSS specifikacije za stiliziranje elemenata u obrascima završava u ovom koraku. Svi ostali aspekti vizualnog prikaza elemenata obrasca ovise o zadanoj tablici stilova preglednika. Međutim, gornja pravila znače sljedeće:

  • Elementi umetnutih blokova mogu se stilizirati korištenjem konteksta umetnutog oblikovanja. Iz čega slijedi koristeći CSS svojstva kao što su line-height i vertical-align za kontrolu visine elementa i vertikalnog poravnanja. Svojstva paddinga i margine također se mogu primijeniti za kontrolu internih i vanjski padding za elemente oblika. Vrijedi napomenuti da se inline-blok elementi također mogu kontrolirati pomoću širine i visine, njihovo ponašanje u tom pogledu ne razlikuje se od običnih blok elemenata.
  • Elementi bloka mogu se stilizirati na standardan način korištenjem normalnog konteksta oblikovanja bloka. Međutim, postoje problemi s elementima obrasca skupa polja i legende jer se oni u potpunosti oslanjaju na stilove samog preglednika.

Postavlja se pitanje kako programeri rješavaju te probleme?

Rješavanje problema s veličinom elemenata forme

Web programeri su ubrzo vidjeli da preglednici rukuju inline-blok elementima na prilično čudan način kada je u pitanju njihova veličina. Određivanje visine često dovodi do neočekivanih rezultata:

Unos, odabir (širina: 120px; visina: 32px;)

Programeri su pokušali riješiti ovaj problem pomoću inline-bloka:

Unos, odabir (širina: 120px; visina: 32px; zaslon: blok;)

Rezultati su još uvijek loši s izuzetkom elementa textarea. Da biste riješili ovaj problem, prvo morate normalizirati font i veličinu fonta za elemente obrasca:

Unos, odabir (širina: 120px; font: 1em Arial, sans-serif;)

Nakon što je font instaliran, možete dodati uvlačenje:

Unos, odabir (širina: 120px; font: 1em Arial, sans-serif; padding: 3px 6px;)

Elementima unosa i textarea također se može dati obrub, što će utjecati na njihove dimenzije prema modelu okvira:

Input, input, textarea (rub: 1px solid #ccc;)

Ulazni elementi tipke tipke i submit preglednik može dodati dodatni padding. Uobičajena praksa je njihova normalizacija:

Unos, unos (ispun: 2px;)

Problem s ovim pristupom je što preglednici često primjenjuju prefikse dobavljača na svojstva elementa, tako da nije uvijek moguće normalizirati padding. Na primjer, za web-kit, možete normalizirati ovako:

Input, input, input, input :: - webkit-file-upload-button, button (-webkit-box-align: center; text-align: center; kursor: default; color: buttontext; padding: 2px 6px 3px; obrub : 2px početni gumb; obrubna slika: početna; boja pozadine: lice gumba; veličina okvira: rubna kutija;) ulaz, unos, unos (-webkit-appearance: pritisni gumb; razmak: pre;)

Padding također radi na elementima skupa polja i legende, ali s različitim rezultatima:

  • Postavljanje dopuna skupa polja na 0 vraća zadani padding samo u nekim preglednicima (ne u IE)
  • Postavljanje dopuna legende na 0 uzrokuje smanjenje tog elementa

Odaberite, potvrdni okvir, radio elementi mogu se normalizirati s dobrim rezultatima samo za nekoliko svojstava:

  • Obitelj fontova
  • Veličina fonta
  • Širina (za odabir)
  • Podstava

Primjena drugih svojstava na ove elemente oblika daje nedosljedne rezultate.

Poravnavanje stavki u obrascima

Elementi obrasca mogu se poravnati okomito i vodoravno. Mogu se nalaziti na istoj liniji ili u grupi. Da biste ih poravnali na istoj liniji, možete koristiti float ili standardni inline-blok kontekst.

Kada koristite plutajuće elemente, elementi se automatski pakiraju u okvir. To znači da sada postoji još devet pravila okvirnog modela koja kontroliraju ove elemente.

S plutajućim elementima, glavni zadatak je postići dobro okomito poravnanje na trenutna linija... U ovom slučaju uobičajena je praksa koristiti okomite margine ili padding:

Unos, odabir (širina: 120px; float: lijevo; margin-top: 0,4em;)

Ovaj pristup funkcionira kada ne trebate poravnavati blokove s tekstom, kao što je element oznake. U ovom slučaju možete koristiti relativno pozicioniranje, odsječak ili marginu na elementu koji sadrži samo tekst:

Drugi problem se javlja s gumbima. U ovom slučaju, kada imate gumb koji je veći od ostalih elemenata, možete ga postaviti vertikalno poravnanje korištenjem relativnog pozicioniranja:

Unos (float: lijevo; širina: 90px; položaj: relativan; vrh: 0,4em;)

Ovaj pristup relativnog pozicioniranja također funkcionira za potvrdne okvire i radio gumbe. Relativno pozicioniranje može se čak koristiti za normalizaciju lijevog dopuna legende u skupu polja.

Ako koristite elemente u kontekstu inline oblikovanja, tada možete koristiti svojstvo vertical-align za okomito poravnanje:

Oznaka, unos (okomito poravnanje: sredina; margina-desno: 1em;)

Lijepi rezultati može se postići kombiniranjem ovog svojstva sa svojstvom visine linije. Međutim, ovo svojstvo mora biti postavljeno na roditeljski element. Ako ga postavite izravno na sam element obrasca, koristit će se visina elementa:

Redak obrasca (visina reda: 1,4;)

Korištenje deklaracije visine roditeljskog elementa uparene s istom visinom retka također je dobra praksa:

Redak obrasca (visina reda: 1,8; visina: 1,8em;)

U kontekstu inline formatiranja, možete koristiti svojstvo poravnanja teksta da roditeljski element poravna sadržaj elementa obrasca ulijevo, u sredinu ili udesno.

Čudno ponašanje unosa datoteka

Element vrsta unosa datoteka je Posebna prigoda... Takav element bi iz sigurnosnih razloga uvijek trebao biti vidljiv i prepoznatljiv u sučelju preglednika. To znači da preglednici namjerno zanemaruju neka pravila stila (kao što su ona koja se odnose na vidljivost) i nastoje primijeniti vlastite algoritme kako je definirano njihovom zadanom tablicom stilova.

Također, neki preglednici prikazuju samo jedan gumb, dok drugi i dalje dodaju poluza put datoteke.

Međutim, web programeri pronašli su načine kako zaobići ovo ograničenje. Prvo omotaju spremnik oko elementa.

Vrhunski povezani članci