Seo folosind cadre în html. Iframe și Frame - ce sunt acestea și cum să folosiți cel mai bine cadrele în HTML
8.9K
Element
Rame
Ce face
Cum se inserează o pagină într-o pagină HTML? Pentru a face acest lucru, trebuie să utilizați
Afişa
Bloc de afișare.
Cod simplu
Puternic, dar ușor de utilizat
În vremurile proaste ale designului web, erau multe elemente care strică viața fiecărui dezvoltator. Aproape întotdeauna au fost o abordare proastă a designului. Din fericire, elementul a fost depreciat în HTML5. Dar
Asemănări și diferențe
Ambele elemente vă permit să creați un document HTML separat. Legătura către conținutul documentului la care face referire pagina web curentă este specificată în atributul src.
Principala diferență între
Videoclipul este în mod clar pe o pagină HTML, și nu pe unele panou separat... elementul a spart această paradigmă și a permis documentului să preia controlul asupra ferestrei browserului, împărțind-o în mai multe panouri mici (cadre), fiecare dintre ele afișând un document separat. Toate celelalte diferențe dintre și provin din această diferență de bază.
Nu refaceți machete bazate pe cadru cu iframe
Într-o zi, s-ar putea să vă confruntați cu sarcina de a actualiza un site vechi care a fost construit folosind cadre. Poate doriți să utilizați și un aspect cu lățime fixă pentru a recrea același coșmar de panouri și sub-ferestre independente. Dar nu veți putea folosi atributul target pentru a deschide linkul într-un cadru separat. Puteți începe să căutați soluții JavaScript. Te rog, nu face asta.
Utilizare reușită (și groaznică).
Există mai multe cazuri de utilizare valide pentru Creare HTML pagini:
încorporarea de conținut media terță parte;
încorporarea propriului conținut media printr-un document multiplatform;
exemple de cod de încorporare;
încorporarea de „applet-uri” terță parte ca forme de plată.
Iată câteva cazuri de utilizare îngrozitoare :
Galerie foto;
forum sau chat.
Dacă trebuie să încorporați documente HTML independente, preexistente în cel actual, utilizați ... Dacă construiți totul de la zero, nu există niciun motiv să vă împărțiți designul paginii în mai multe documente independente. Mai ales dacă nu sunt cu adevărat piese de conținut independente.
Atributele Iframe
Numele atributului
Sens
Descriere
cutie cu nisip
Permiteți de aceeași origine Permite navigarea de sus Permite formulare Allow-script-uri
Setează o serie de restricții asupra conținutului încărcat în cadru. Se da inainte cum se creează o pagină HTML.
defilare
da nu auto
Stabilește dacă se afișează sau nu sulurile într-un cadru. Depreciat în HTML5. Folosiți în schimb CSS.
Nume
titlu
Specifică numele cadrului.
Alinia
stânga dreapta sus jos mijlociu
Determină alinierea cadrului în raport cu elementele din jur. Este depreciat. Folosiți în schimb CSS.
chenarul cadru
da (sau 1) Nu
Folosit pentru a activa afișarea unui chenar în jurul cadrului. Depreciat în HTML5. Folosiți în schimb CSS.
longdesc
Url
Folosit pentru a specifica adresa URL a unei pagini care conține o descriere lungă a conținutului cadrului. Este depreciat. Folosiți în schimb CSS.
lățimea marginii
pixeli
Folosit pentru a controla cantitatea de umplutură de la conținut până la marginea cadrului. Este depreciat. Folosiți în schimb CSS.
src
Url
Specifică adresa URL a documentului de afișat în IFRAME.
vspace
pixeli
Setează umplutura verticală de la cadru la conținutul din jur. Este depreciat. Folosiți în schimb CSS.
Această publicație este o traducere a articolului „ „Pregătit de echipa prietenoasă de proiect
Cadrele sunt elemente HTML care vă permit să împărțiți o fereastră de browser web în mai multe ferestre independente, în fiecare dintre care puteți încărca un document HTML separat. Fiecare astfel de fereastră (cadru) poate avea propriile bare de defilare și poate funcționa independent de alte ferestre independente sau, dimpotrivă, poate controla conținutul acestora. Acestea pot fi folosite pentru a organiza un meniu care se află permanent într-o fereastră, în timp ce informația în sine se află într-o altă fereastră. Utilizatorii pot accesa meniul în orice moment, fără a fi nevoie să se întoarcă la pagina anterioară pentru a selecta un alt element de meniu. Folosirea cadrelor vă permite să „ancoați” imagini sau alte elemente ale interfeței dorite în fereastra browserului, în timp ce restul paginii se derulează în cadru. Cu toate acestea, merită remarcat faptul că cadrele sunt considerate în zilele noastre un instrument învechit, iar site-urile cu cadre sunt acum considerate neremarcabile, deoarece webmasterii profesioniști nu folosesc niciodată cadre în proiectele lor. Există o serie de probleme notorii asociate cu cadrele. Ei, de exemplu, încurcă motoarele de căutare deoarece paginile care conțin conținutul nu au link-uri către alte documente. Dacă doriți să primiți vizitatori de la motoare de căutare uita de rame. Este imposibil ca utilizatorul să plaseze o pagină care îi place în secțiunea de marcaje a browserului, deoarece cadrele ascund adresa paginii pe care se află și arată întotdeauna doar adresa site-ului web. Din acest motiv, creează probleme browserelor pentru a urmări istoricul și, totuși, nu sunt foarte adaptabili la diferite dimensiuni de ecran și dispozitive mobile. În ciuda faptului că proiectele cu rame se regăsesc în World Wide Web din ce în ce mai puțin, învățarea HTML ar fi incompletă fără a privi subiectul cadrelor. Alături de dezavantaje, ramele au câteva avantaje care nu ne permit să respingem această tehnologie ca fiind nepromițătoare.
Crearea cadrelor
Structura unui document HTML cu cadre arată foarte asemănătoare cu formatul unui document HTML obișnuit. Ca într-un document HTML normal, tot codul este plasat între etichetele asociate și , și în recipient rubricile sunt localizate. Principala diferență dintre un document cu cadre și un document HTML obișnuit este că un document cu cadre în loc de o etichetă se aplică eticheta asociată (din setul de cadre englezesc - un set de cadre). Următorul exemplu arată structura unui document HTML cu cadre:
Exemplu: Structura unui document HTML cu cadre
Incearca-l tu insuti "
frame_top
frame_left
frame_right
Document inramat
În exemplul prezentat, pagina conține trei regiuni, fiecare încarcă inițial documentele HTML frame_top.html, frame_left.html și frame_right.html. Pe lângă documentele HTML, un cadru poate conține și elemente grafice. Pentru a face acest lucru, trebuie să specificați adresa imaginii corespunzătoare în atribut src, De exemplu src = "imagine.gif"... Rețineți că elementul folosit fără etichetă finală. În interiorul recipientului poate conține doar etichete sau alt set de rame acoperite de etichete și
. Etichetă are urmatoarele atribute:
rânduri- descrie paginarea în rânduri:
cols- descrie paginarea în coloane:
Regiunile rezultate dintr-o astfel de împărțire a paginii vor fi cadrele. Absența acestor atribute definește un cadru care va ocupa întreaga fereastră a browserului.
În sensul atributelor rânduriși cols este necesar să se precizeze nu numărul de rânduri sau coloane, ci valoarea lățimii și înălțimii cadrelor. Toate valorile din listă sunt separate prin virgule. Dimensiunile pot fi specificate în unități absolute (pixeli) sau ca procent:
cols = "20%, 80%"- fereastra browserului este împărțită în două coloane folosind atributul cols, coloana din stânga ocupă 20% și cea din dreapta 80% din fereastra browserului.
rânduri = "100, *" fereastra browserului este împărțită în două ferestre orizontale folosind atributul rânduri, fereastra de sus ocupă 100 de pixeli, iar cea de jos ocupă spațiul rămas, dat prin simbol asteriscuri.
După cum se vede din acest exemplu, recipient cu atribut rânduri mai întâi creează două cadre orizontale și înlocuiește al doilea cadru cu încă unul care împarte cadrul orizontal de jos în două coloane folosind atributul cols, coloana din stânga ocupă 20%, iar cea din dreapta ocupă 80% din fereastra browserului. Dacă browserul nu acceptă cadre, atunci fereastra va afișa textul situat între etichete și ... Totul între etichete și , ignorat de browserele care acceptă cadre. Astfel, dezvoltatorul trebuie să scrie cod care să dubleze conținutul cadrelor prin alte mijloace și să plaseze acest cod într-un container. atunci toți utilizatorii vor putea vedea pagina sa web. După cum sa menționat deja, o etichetă neîmperecheată este utilizată pentru a insera un cadru separat în document ... Atribut src specifică documentul care urmează să fie afișat în cadrul dat, de exemplu: ... Dacă atributul src lipsește, este afișat un cadru gol.
Chenarele sau spațiul dintre cadre
În mod implicit, browserul afișează o linie gri și de obicei tridimensională între cadre, cu care vizitatorii pot ajusta dimensiunea cadrului. Chenarul cadrului poate fi manipulat ca orice alt element cadru. Există mai multe atribute ale elementelor pentru aceasta. permițându-vă să personalizați chenarele cadrului. Lățimea liniei de chenar este determinată de atribut frontieră... Grosimea implicită a marginii este de cinci. Pentru a ascunde chenarul cadrului, trebuie fie să specificați o valoare pentru lățimea chenarului de zero, fie să atribuiți o valoare „nu” sau „0” atributului chenarul cadru... Atribut chenarul cadru poate lua doar două valori opuse. Dacă valoarea atributului chenarul cadru este egal cu „da” sau „1”, atunci va fi afișat chenarul cadrelor, iar dacă „0” sau „nu”, atunci nu. Rețineți că valorile atributului chenarul cadru diferă pentru browsere diferite... Pentru a rezolva această problemă, utilizați de două ori atributul chenarul cadru, iar pentru unele browsere trebuie să adăugați și atributul spațierea cadrelor cu valoarea „0”:
În exemplul următor, eliminăm chenarul dintre cadre:
Exemplu: eliminarea chenarului dintre cadre
Incearca-l tu insuti "
frame_left
frame_right
Rame fără margini
Dacă eliminați chenarul dintre cadre, vizitatorii nu vor putea redimensiona cadrul în browser. De asemenea, puteți împiedica redimensionarea cadrului păstrând marginile folosind atributul noresize:
Folosind atributul culoarea chenarului puteți schimba culoarea chenarului cadrului, trebuie doar să specificați codul sau numele de culoare rezervată corespunzător. Mai jos este un exemplu de pagină html care conține atributele de control al chenarului cadru descrise mai sus: culoarea chenarului este roșie, cadrul superior nu poate fi redimensionat:
Exemplu: Controlul unui chenar de cadru
Incearca-l tu insuti "
frame_top
frame_left
frame_right
Controlul la frontieră a cadrului
Dacă doriți să poziționați pagina afișată în cadrul cadrului mai aproape de marginile acestuia sau, dimpotrivă, să o mutați mai departe, modificați atributele înălțimea marginiiși lățimea marginii etichetă ... Atribut înălțimea marginii definește indentarea dintre conținutul cadrului și marginile sale de sus și de jos. Sintaxă:
Atribut lățimea marginii definește indentarea dintre conținutul cadrului și marginile din dreapta și din stânga acestuia. Sintaxă:
Acest șir html de exemplu, poziționează pagina redată la culoare pe marginea unui cadru:
Dacă pagina afișează o bară de derulare pe care nu o doriți, puteți remedia problema specificând atributul defilare= „nu” în etichetă ... Totuși, rețineți că dacă cadrul nu este suficient de mare pentru a afișa întregul conținut al paginii, atunci vizitatorul nu va avea cum să deruleze pagina afișată.
Link-uri în cadre
Urmărirea unui link într-un document HTML obișnuit se efectuează după cum urmează: faceți clic pe link și documentul curent este înlocuit cu unul nou în fereastra curentă sau într-o nouă fereastră de browser. Când utilizați cadre, schema de încărcare a documentelor html diferă de cea obișnuită, iar principala diferență este capacitatea de a încărca un document html într-un cadru dintr-un alt cadru. Pentru a încărca un document într-un anumit cadru, utilizați atributul ţintă etichetă ... Ca valoare de atribut ţintă se folosește numele cadrului în care va fi încărcat documentul specificat de atribut Nume etichetă ... De asemenea, merită remarcat faptul că numele cadrului trebuie să înceapă fie cu o cifră, fie cu o literă latină. Următoarele nume sunt folosite ca rezervate:
Pentru linkurile externe, ar trebui să setați atributul target fie la _top, fie la _blank, astfel încât proiectele de la terți să nu fie afișate în cadrele dvs., ci să ocupe toată fereastra browserului.
Următorul exemplu arată un document HTML în cadrul din dreapta al căruia o pagină este încărcată dintr-un link din cadrul de sus. Link către documentul care se va deschide în cadrul din dreapta:
Pentru a încărca documentul în cadrul specificat, utilizați construcția target = „frame_right” așa cum se arată în exemplu:
Exemplu: Link către un alt cadru
Incearca-l tu insuti "
Link către un alt cadru
Browserul dvs. nu afișează cadre
Rame plutitoare
Element (o abreviere pentru termenul englezesc „floating frame”) vă permite să încorporați un document HTML separat sau altă resursă oriunde pe o pagină web. Conținutul cadrului plutitor (inline) poate fi orice pagină HTML, atât din resursa dvs., cât și de pe un alt site web. După cum ați înțeles deja, cadrele plutitoare sunt create folosind elementul care spre deosebire de etichetă nu este introdus între etichete și
, și între etichete și
. În element puteți folosi aceleași atribute ca și pentru un cadru cu excepţia atributului noresize- spre deosebire de cadrele obișnuite, cadrele încorporate nu pot fi redimensionate pe ecran:
Atribut
Descriere
src
folosit pentru a specifica url-adpeca paginii afișate în cadru
înălţime
setează înălțimea ferestrei cadru plutitor în pixeli sau%
lăţime
setează lățimea ferestrei cadru plutitor în pixeli sau%
Nume
numele cadrului prin care poate fi accesat în link-uri
chenarul cadru
setează chenarul pentru cadre, poate lua valorile 1 (există o chenar) sau 0 (fără chenar) ( Nu este acceptat în HTML5)
lățimea marginii
umplutură la stânga și la dreapta conținutului până la marginea cadrului ( Nu este acceptat în HTML5)
înălțimea marginii
umplutură de sus și de jos de la conținut la chenarul cadrului ( Nu este acceptat în HTML5)
defilare
definește aspectul barelor de derulare în cadru și ia valorile da (există bare), nu (nu există bare) și auto (barele apar când este necesar) ( Nu este acceptat în HTML5)
ecran complet permis
permite ca cadrul să fie pe ecran complet
hspace
Umplutura orizontală de la cadru la conținutul înconjurător
vspace
umplutură verticală de la cadru la conținutul înconjurător
alinia
determină alinierea cadrului
În exemplul următor, dimensiunile cadrului plutitor sunt în pixeli, dar le puteți specifica și în %:
Termenul „cadru” ne-a venit de la în limba engleză... Tradus, acest cuvânt înseamnă „cadru” și este o zonă separată a ferestrei. Prin structura sa, o astfel de secțiune este un document HTML complet complet.
Cadrele separate împart ferestrele browserului în secțiuni care sunt plasate una lângă alta. În același timp, în fiecare dintre cadre este încărcată propria pagină cu drepturi depline. Tehnologia cadrelor provoacă încă multe controverse, dar trebuie spus că vârful popularității sale a trecut deja. Această tehnologie este acum considerată învechită și cadrele obișnuite nu mai sunt acceptate în HTML5.
Istoria tehnologiei
Astăzi putem afirma că decizia de a nu lucra cu tehnologia cadrelor a fost luată în sfârșit. Site-ul https://www.w3.org/TR/html5-diff/#obsolete-elements afirmă clar că etichetele obișnuite pentru crearea unui astfel de frame de structură, set de cadre și noframes sunt depreciate. Ca argument, sunt prezentate date că utilizarea unei astfel de structuri are un impact negativ asupra gradului de utilizare a site-urilor și disponibilității acestora pe web.
Dar tehnologii moderne suportă elementul IFRAME. Utilizarea acestuia vă permite să inserați cadre în blocuri de text din pagini. Mai mult, astfel de elemente pot fi aliniate în raport cu textul în sine. Un punct important: Cadrele inline nu pot fi redimensionate în principiu. Nu au un atribut de redimensionare corespunzător.
În viitor, fără salturi și limite în tehnologie, utilizarea ulterioară a ramelor este puțin probabilă. Și merită să ne amintim că organizația principală de standardizare a tehnologiei Internet, W3C, a precizat că astfel de structuri nu ar trebui folosite de dezvoltatorii de site-uri.
Adică, cadrele, în principiu, nu ar trebui folosite pentru structura paginii atunci când se creează noi resurse. Dar, cu sprijinul și rafinarea site-urilor existente, cunoașterea caracteristicilor tehnologiei și utilizarea lor va fi foarte utilă și productivă.
Beneficiile ramelor
Printre avantajele tehnologiei ramelor se numără ușurința în utilizare, viteza mare de lucru, capacitatea de a poziționa cu precizie informațiile în anumite locuri ale ferestrei.
Utilizarea cadrelor oferă economii la volumul de trafic transmis în procesul de lucru cu site-ul. Într-adevăr, atunci când te referi la o altă secțiune de informații, doar o secțiune a paginii este de obicei actualizată și nu tot codul acesteia.
Această structură oferă oportunități interesante de navigare prin conținutul resurselor. Într-adevăr, în interiorul ferestrei browserului în cadre adiacente, puteți vizualiza diverse blocuri de informații. Este important ca utilizatorii să știe că căutarea într-un cadru echivalează cu efectuarea unei astfel de operațiuni pe o pagină separată.
În procesul de lucru cu site-ul, puteți modifica dinamic dimensiunea unei zone separate, care este dificil de implementat folosind alte soluții tehnologice.
Posibile dezavantaje
Problemele cu site-urile care utilizează cadre s-au acumulat treptat, dar astăzi au atins o valoare-prag. Printre principalele dezavantaje se numără:
Utilizabilitate slabă. Astăzi, ponderea utilizatorilor de dispozitive mobile și tablete cu rezoluții mici de ecran este în creștere și deja depășește numărul celor care vizitează site-uri cu calculatoare staţionare si laptopuri. Și aici, utilizarea cadrelor creează probleme serioase cu capacitatea de răspuns a paginilor atunci când sunt afișate diferite dispozitive... Această problemă nu are o soluție practică astăzi.
Deteriorarea accesibilității site-ului pentru diverse programe. Creșterea numărului programe suplimentare(de exemplu, cititoarele de ecran) prezintă o lizibilitate mult mai slabă a informațiilor.
Afișare incorectă a paginilor. Adesea, aspectul paginilor cu o astfel de structură pare incorect în browsere din punct de vedere al designului. Și acest lucru se datorează particularităților tehnologiei. Din punct de vedere SEO, utilizarea cadrelor în aspectul paginii html este extrem de nedorită.
Prezența unei singure adrese pentru întreaga structură. Ca urmare, paginile interne ale unui astfel de site nu pot fi marcate. Acest lucru duce la inconveniente în experiența utilizatorului.
Indexare incorectă de către motoarele de căutare. Prezența mai multor documente cu drepturi depline pe site, din care se formează o pagină, complică semnificativ munca motoarelor de căutare. Acest lucru duce la erori semnificative de indexare. Ca rezultat - definirea incorectă a subiectelor și a adreselor paginilor, pierderea conținutului critic din indexare.
Lipsa de respect. Acesta este un dezavantaj destul de neobișnuit pentru resursele online. Și totuși trebuie spus că faptul că aspectul site-urilor pe cadre este depășit duce la faptul că autorii și proprietarii unor astfel de resurse sunt considerați retrogradi. Dar există câteva excepții. Chiar și site-urile moderne care găzduiesc camere de chat folosesc de obicei cadre.
Indexarea cadrelor de către motoarele de căutare
Informațiile care provin de la motoarele de căutare ne arată clar că site-urile cu cadre sunt indexate considerabil mai lent. În același timp, apar adesea erori asociate cu structura în sine. La urma urmei, în fiecare dintre cadre este afișată o pagină web cu drepturi depline. Și doar o astfel de parte a site-ului poate intra în baza de date de indexare.
Aspectul negativ al unei astfel de indexări este că atunci când navighează în partea interioară a paginii, utilizatorul de obicei nu vede meniul și alte mecanisme de navigare. Și acest lucru nu este surprinzător. Trebuie să înțelegeți că actualizarea cadrului nu este o soluție la problema în acest caz. La urma urmei, toate mecanismele de navigare sunt situate într-un alt container.
O altă problemă este că adesea pagina principală a structurii containerului conține doar titlul, descrierea meta-etichetelor și eticheta FRAMESET. Și acest lucru pare să fie logic - la urma urmei, conținutul semnificativ este plasat în documente separate. Acestea sunt pe care vizitatorul site-ului le va vedea pe pagină în cadrul cadrului.
Dar aici robot de căutare o astfel de pagină nu este aproape niciodată indexată. El nu găsește conținut care să fie util vizitatorilor. Boții de căutare sunt configurați în așa fel încât să încerce să obțină și să indexeze informațiile plasate în interiorul etichetei body. Acolo are loc căutarea conținutului util utilizatorului. Dar nu există o astfel de etichetă pe pagina cadru, este înlocuită cu FRAMESET.
Această problemă poate fi parțial rezolvată folosind NOFRAMES. Dar pe multe site-uri, la accesarea acestuia, se oferă doar informații că browserul nu acceptă cadre. Și trebuie să utilizați un alt program pentru a vizualiza pagina.
Astfel de cazuri creează o mulțime de probleme utilizatorilor care, atunci când merg pe site, nu văd meniul și alte informații care ar trebui afișate. Daca pe site sunt plasate cadre, parametrii acestuia din punct de vedere SEO sunt redusi. În același timp, statisticile comportamentului utilizatorilor sugerează că autoritatea resursei cu motoarele de căutare scade. Acest lucru afectează negativ traficul site-ului web.
Este deosebit de dificil pentru motoarele de căutare și roboții de indexare să gestioneze structurile de personal imbricate și multiple. Faptul că fiecare container are toate caracteristicile unui document separat, dar nu conține navigație completă și alte informații, complică și mai mult situația.
Este posibilă facilitarea muncii motoarelor de căutare aplicând link-ul corect pe pagini. În acest caz, este necesar să duplicați toate linkurile de meniu, astfel încât acestea să poată fi găsite în fiecare parte separată a paginii. Dar acest lucru complică și încetinește semnificativ munca de optimizare a site-ului și de actualizare a informațiilor de pe acesta.
Experiența multor SEO și webmasteri sugerează, de asemenea, că paginile încadrate nu obțin clasamente înalte rezultatele cautarii... Acest lucru se întâmplă chiar dacă ajung în baza de date de indexare.
Caracteristici ale promovării site-ului web în cadre
Unele motoare de căutare indexează incorect sau foarte incorect fișierele structurate în cadru. Ca urmare, baza de index este umplută nu cu adresele resurselor părinte (cum ar fi trebuit să fie), ci cu link-uri către sub-site-uri.
Pentru a minimiza problemele de indexare a site-urilor pe bază de cadre, în descrierile acestora sunt utilizate etichete și parametri speciali. Elementul principal al structurii containerului este setul de cadre. El este cel care îl înlocuiește cod sursa corp standard; Fiecare container individual din structură este descris de un cadru. Valoarea acestuia în codul paginii corespunde numărului de secțiuni individuale afișate în fereastra browserului atunci când sunt vizualizate.
Etichetele specificate ar trebui să fie localizate pe pagina principala site-ul și apoi duplicați conținutul din fiecare dintre ele.
După cum știm, într-o fereastră de vizualizare a browserului, nu putem încărca două documente HTML în același timp. Astfel, dacă avem același meniu de navigare pe toate paginile, atunci utilizatorul va descărca exact aceeași bucată de cod de fiecare dată când trece de la o pagină Web a site-ului la alta. Chiar dacă meniul în sine este mic, aceasta nu este cea mai convenabilă opțiune, deoarece canalele de comunicare pe care le au utilizatorii ruși nu sunt prea mari, iar încărcarea meniului poate dura cel puțin câteva secunde. Ne putem asigura că elementele imuabile ale site-ului rămân întotdeauna în fereastra de vizualizare a utilizatorului fără a fi reîncărcate? Poate sa.
Putem crea un document care va împărți o fereastră de vizualizare în mai multe regiuni dreptunghiulare, fiecare dintre acestea va afișa un document HTML. Aceste zone dreptunghiulare, fiecare dintre acestea fiind în esență o fereastră de vizualizare separată, sunt numite rame.
Astfel, putem lăsa permanent meniul de navigare din stânga și/sau de sus în fereastra de vizualizare și reîncărcăm doar partea de site care este necesară.
Ca orice fereastră de vizualizare, cadrele pot avea bare de defilare care permit utilizatorului să vadă întregul conținut al cadrului dacă nu se încadrează în întregime în zona vizibilă. Această caracteristică a cadrelor este cea care provoacă dispute constante între webmasteri. Cineva susține că astfel de comenzi nu ar trebui să fie amplasate în spațiul interior al ferestrei principale, deoarece ocupă spațiu neprețuit și distrage atenția utilizatorului. Unii susțin că aceste deficiențe nu reprezintă un preț prea mare de plătit pentru a face paginile web mai ușor de reîncărcat pe link-uri lente. Într-un fel sau altul, fiecare ar trebui să decidă singur cu privire la posibilitatea de a folosi rame.
Există două tipuri de cadre în HTML: cadre obișnuite și așa-numitele cadre „floating”. Dacă folosim cadre obișnuite, atunci este creat un document care împarte întregul viewport în cadre, iar acestea sau acele documente HTML sunt deja afișate în ele. Dacă folosim un cadru flotant, atunci acesta poate fi inclus într-un document HTML obișnuit fără modificări speciale. Vom vedea diferența dintre aceste două tipuri de rame cu un exemplu.
Un document încadrat este creat folosind eticheta și geamănul său de acoperire ... În interiorul acestor două etichete se află constructele pentru declararea cadrelor individuale și informațiile afișate în fereastra de vizualizare a browserului dacă browserul nu recunoaște cadrele. Cadrele individuale sunt create folosind o pereche de etichete și ... Iar informațiile afișate atunci când browserul nu acceptă cadre sunt încorporate în documentul HTML folosind eticheta ... Dar totul este în ordine.
Baza etichetei este să împărțiți fereastra în mai multe părți. Pentru a face acest lucru, eticheta are doi parametri principali: rânduri și coloane, care indică numărul și dimensiunea cadrelor pe verticală și pe orizontală. Aceasta creează o structură de masă dreptunghiulară. Dacă trebuie să facem o împărțire mai detaliată, de exemplu, un cadru pe partea stângă a ferestrei pe verticală și două cadre separate unul de celălalt printr-un chenar orizontal în partea dreaptă a ferestrei, atunci putem crea două etichete , unul în celălalt. Dar totuși, luați în considerare parametrii etichetei in detaliu.
Parametru cols este destinat să specifice numărul și dimensiunea cadrelor pe orizontală în fereastra de vizualizare. Valoarea parametrului este o listă de dimensiuni separate prin virgulă. Ca de obicei, putem folosi valori absolute, multipli și procente pentru a indica dimensiunea. Valoarea implicită este 100%, ceea ce înseamnă că fereastra principală nu este împărțită vertical.
Parametru rânduri vă permite să specificați numărul și dimensiunea cadrelor pe verticală în fereastra de vizualizare. Specificațiile de specificare a valorilor sunt exact aceleași cu parametrul cols.
Dar să luăm un exemplu despre cum ar arăta crearea de documente HTML cu o structură de cadru. Să presupunem că vrem să selectăm un cadru din stânga pentru meniul de navigare și să folosim spațiul rămas pentru a afișa informații din paginile principale ale site-ului Web. În acest caz, vom împărți fereastra în două. Pentru meniu, vom selecta un cadru care are o lățime de o sută cincizeci de pixeli, iar spațiul rămas ar trebui să fie ocupat de un al doilea cadru. O structură similară pentru o pagină Web este implementată folosind codul din Lista 1.31.
Lista 1.31
. 0peuMbi
Din păcate, browserul dumneavoastră nu acceptă cadre. Vă rugăm să utilizați o versiune de software mai recentăр>
Să aruncăm o privire mai atentă la codul documentului HTML și la modul în care acest document a fost afișat de browser. În primul rând, trebuie să rețineți că nu există etichete în listă. și</ corp>... Aceste etichete indică faptul că tot ceea ce este între este cod afișabil și eticheta
semnalează browserului că acest document conține doar structura defalcării ferestrei de vizualizare.
În etichetă
am folosit un singur parametru cols. Semnificația sa era o listă cu două desemnări de mărime. Din listare puteți vedea că primul cadru, adică cadrul din stânga, are o lățime de o sută cincizeci de pixeli. Pentru al doilea cadru, setăm lățimea ca multiplu. Deoarece nu am indicat ce număr va fi multiplu această lățime, cadrul a ocupat tot spațiul liber, ceea ce ne-am dorit.
Orez. 1.30. Fereastra browserului care arată rezultatul afișării fișierului în Lista 1.31
Între etichetele de început și de sfârșit am pus două etichete .
O discuție detaliată și detaliată despre ele este încă în față, dar deocamdată ne vom limita la observația că aceste etichete declară fiecare cadru separat și își stabilesc proprietățile. În cazul nostru, am folosit un singur parametru obligatoriu src, a cărui valoare este adresa URL a documentului HTML care va fi afișat în acest cadru.
Am folosit și eticheta ... Între el și perechea lui de acoperire este codul HTML al mesajului, care va fi afișat în fereastra de vizualizare a browserului dacă nu acceptă tehnologia frame. Acum, bineînțeles, este extrem de dificil să găsești un astfel de browser, eticheta a rămas în specificația HTML încă din cele mai vechi timpuri ale browserelor de text, dar încă merită să-l folosești cel puțin din motive de curtoazie față de utilizatori.
În ilustrație (Figura 1.30), puteți vedea că fereastra de vizualizare a fost într-adevăr împărțită în două părți și fiecare dintre ele a afișat unul dintre fișierele HTML pe care le-am creat mai devreme. În acest caz, utilizatorul poate schimba în mod independent dimensiunea cadrelor, deoarece granița dintre ele, numită și despicator, este mobil. Utilizatorul trebuie doar să mute cursorul mouse-ului peste el, să apese butonul principal al mouse-ului și, fără a-l elibera, să mute chenarul în locul dorit.
Singura limitare a plasării cadrelor este structura tabulară bine definită a setului de cadre. Dar dacă vrem ca meniul din a noua parte a ferestrei de vizualizare să fie el însuși împărțit în două cadre? Abordarea clasică nu permite acest lucru. Prin urmare, puteți utiliza structuri imbricate.
Pentru a crea o defalcare a ferestrei principale de vizualizare în trei cadre, dintre care două sunt situate în aceeași coloană, unul sub celălalt, iar al treilea ocupă restul spațiului liber, ar trebui să utilizați următorul fragment de cod:
Acest exemplu arată cum un bloc o înglobăm în interiorul altuia din același bloc. Și, desigur, ar trebui să folosiți etichete ... Apropo, încă nu le-am luat în considerare în detaliu. E timpul să o faci.
Etichetă este destinat stabilirii proprietăților unui cadru individual. Deoarece lățimea și înălțimea cadrului sunt stabilite în structură , trebuie doar să setăm restul proprietăților.
Parametru Nume vă permite să setați un nume unic pentru cadru. Nu trebuie confundat cu parametrul id. Numele pe care îl setăm folosind parametrul name este folosit în etichetele de hyperlink atunci când este necesar să încărcați documentul nu în cadrul părinte, ci în altul.
Parametru src, după cum am văzut deja din lista anterioară, este folosit pentru a specifica adresa URL a documentului HTML care ar trebui să fie afișat în cadrul necesar.
Parametru chenarul cadru este folosit pentru a indica dacă chenarul unui cadru dat este afișat sau nu. Ideea este că crearea unei granițe vizibile este departe de a fi necesară. Fie zero, fie unul este folosit ca valoare pentru acest parametru. Valoarea implicită de 1 indică faptul că acest cadru va avea un chenar vizibil. Dacă utilizați o valoare zero, chenarul cadrului va fi invizibil.
Parametru lățimea marginii vă permite să setați lățimea marginilor acestui cadru în pixeli,
Parametrul marginheght este utilizat pentru a seta dimensiunea marginii verticale în pixeli pentru acest cadru.
Parametru noresize ar trebui să fie folosit dacă utilizatorul nu ar trebui să poată muta marginile cadrului prin redimensionarea acestuia în acest mod. Dacă îl includem în etichetă , atunci utilizatorul nu va putea redimensiona acest cadru. Parametrul este utilizat fără valori.
Parametru defilare Permite utilizatorului unei pagini Web să controleze afișarea barelor de defilare pentru un anumit cadru. Unul dintre cele trei cuvinte cheie predefinite este folosit ca valoare. Valoarea automată implicită înseamnă că barele de defilare de pe un cadru vor apărea numai dacă conținutul acestui cadru nu se încadrează complet în zona afișată. O valoare de yes îi spune browserului să afișeze bare de defilare în orice moment pentru un anumit cadru, indiferent cât de mare este aria sa de afișare sau cât de exact „încadează” conținutul cadrului în el. O valoare nu obligă browserul să afișeze cadrul fără bare de defilare. În ciuda faptului că barele de defilare sunt cea mai enervantă componentă pentru utilizator, nu ar trebui să utilizați o astfel de valoare fără un motiv anume. Încă o dată, repet că nu știm dinainte ce rezoluție a monitorului este setată pentru utilizatorul care a încărcat pagina noastră și care este dimensiunea ferestrei de vizualizare a browserului. Și dacă nu există suficient spațiu pentru a afișa întregul conținut al cadrului și nu există bare de defilare, utilizatorul nu va putea vedea deloc informațiile ascunse.
Acum că am acoperit parametrii etichetei , ar trebui făcută o mică adăugare pentru a explica o limitare minoră a parametrului src strâns legat de eticheta suplimentară ... Ideea este că între această etichetă și dublul său final plasam ceva continut care va fi afisat in cazul in care browserul utilizatorului nu suporta afisarea cadrelor. Acest conținut poate fi, desigur, structurat și folosind etichete HTML. Prin urmare, pot fi folosite hyperlinkuri și marcaje, numite și „ancore”. Deci, dacă creăm un astfel de marcaj în acest fragment, atunci nu putem face adresa URL a acestui marcaj pentru niciunul dintre cadre după valoarea parametrului src.
De asemenea, putem specifica cadrul în care va fi încărcat implicit documentul HTML. După cum știm, eticheta hyperlink <а>
are un parametru țintă, a cărui valoare este numele cadrului, unde va fi afișat conținutul documentului HTML indicat de hyperlink. Dar dacă folosim acest parametru în etichetă , plasate, după cum ne amintim, în capul documentului HTML, apoi toate hyperlinkurile cu un URL incomplet în parametru href, vor plasa exact în cadru documentele către care indică, al cărui nume este indicat în etichetă .
Până acum, nu am luat în considerare eticheta separat. ... Dar adevărul este că această etichetă nu are parametri unici, cu excepția celor obișnuiți, iar mecanismul aplicării sale l-am putut vedea în exemplele anterioare. Prin urmare, nu ne vom opri mult timp asupra ei.
Până acum, ne-am uitat la cadre obișnuite, care despart complet fereastra de vizualizare a browserului în regiuni separate și care necesită documente specializate pentru a fi utilizate. Dar există un alt tip de cadre pe care le puteți introduce pur și simplu într-un document HTML obișnuit ca obiect standard. Cel mai mult, acest lucru este similar cu inserarea unei imagini grafice. Pentru a insera un cadru inline similar, utilizați eticheta Dar, spre deosebire de procedura de inserare a graficelor și a altor obiecte, pentru cadrele inline trebuie să utilizați și eticheta de închidere Iată un exemplu de includere a unui cadru inline într-un document HTML obișnuit și vedeți cum arată acel document atunci când este vizualizat într-un browser.
Lista 1.32
„http://www.w3.org/TR/html4/strict.dtd”>
<р>Text cu inline cadruр>
După cum puteți vedea din lista și următoarea ilustrație (Figura 1.31), procedura de utilizare a cadrelor inline nu este deloc dificilă. Dar în listă, noi, ca întotdeauna, am folosit cea mai simplă opțiune implicită și, la urma urmei, un cadru, chiar și încorporat, ar trebui să aibă în mod natural o listă destul de extinsă de proprietăți de afișare, care sunt reglementate folosind parametri. Acum le vom lua în considerare.
Parametru Nume vă permite să specificați numele acestui cadru inline. Valoarea parametrului este un șir de text simplu. După aceea, puteți indica acest cadru în hyperlinkuri. Astfel, obținem capacitatea de a schimba dinamic conținutul cadrului inline.
Parametru src este pentru setarea conținutului unui cadru inline. Valoarea parametrului este adresa URL a documentului HTML care va fi încărcat în acest cadru inline.
Parametru chenar cadru,împreună cu mulți alți parametri, este în mod clar moștenit din cadrele obișnuite. La fel ca acolo, îi spune browserului dacă să afișeze sau nu un chenar pe cadru. Zero și unu sunt folosite ca valori. Valoarea implicită de 1 indică faptul că trebuie afișat chenarul cadrului în linie. Valoarea zero face granița invizibilă.
Parametrii marginwidhși înălțimea marginii setați lățimea și, respectiv, înălțimea marginilor cadrului inline. Valorile parametrilor sunt numere care exprimă dimensiunile în pixeli.
Orez. 1.31. Fereastra browserului care arată rezultatul afișării fișierului în Lista 1.32
Parametru defilare controlează afișarea barelor de defilare ale unui cadru inline. Unul dintre cele trei cuvinte cheie predefinite este folosit ca valoare. Valoarea automată implicită înseamnă că barele de defilare vor apărea numai atunci când conținutul cadrului este mai mare decât cadrul în sine. Valoarea da forțează oricum barele de defilare să fie afișate, iar valoarea nu împiedică browserul să afișeze aceste bare de defilare pentru acest cadru.
Parametru alinia ne permite să aliniem cadrul inline vertical sau orizontal cu restul conținutului paginii web. Valorile posibile sunt exact aceleași ca și pentru parametrul etichetei cu același nume. deci nu le mai repeta. Și rezultatul acțiunii acestor valori a fost luat în considerare și de noi mai devreme.
Parametru înălţime are scopul de a dimensiona în mod explicit un cadru inline pe verticală. Orice desemnare a mărimii poate fi utilizată ca valoare pentru acest parametru.
Parametru lăţime vă permite să setați lățimea cadrului inline. Valoarea poate fi specificată în pixeli, multipli sau procente.
Și aici încheiem revizuirea cadrelor. Știm despre ele tot ceea ce trebuie să știm pentru a folosi cadrele în mod eficient.
Salutare dragi cititori ai site-ului blogului. Astăzi vom vorbi despre cadre în limbajul HTML. Este clar că vom începe de la început și anume cu ce fel de fiară este. Să vorbim și despre prezentul (Frame) și viitorul (Iframe) acestor elemente în limbajul de marcare hipertext al versiunii curente și în noul standard Html 5 cu.
La sfârșitul articolului, după o descriere detaliată a procesului de creare a cadrelor inline și a structurii lor clasice în cod HTML (deja rar folosit), vom atinge relevanța construirii unui site pe acestea, precum și vom discuta posibile modalități de a le folosi în perioada curentă folosind exemplul blogului meu.
Ce este și cum este diferit Iframe de Frame
Ce este? Se dovedește că acestea pot fi utilizate nu numai pe site-uri, ci și în orice aplicații pentru programe, dar diferă prin faptul că fereastra unei pagini web sau a unei aplicații va fi împărțită în mai multe zone, în fiecare dintre acestea fiind încărcat un document separat. Mai mult, aceste zone de cadre se comportă independent unele de altele.
Probabil cel mai viu exemplu de utilizare a acestora, pe care aproape toți l-ați întâlnit, sunt așa-numitele fișiere de ajutor (fișiere de ajutor) care sunt disponibile pentru multe programe instalate pe computer.
Fișierul cu meniul de ajutor este încărcat în fereastra din stânga, iar documentul corespunzător elementului de meniu selectat este afișat în fereastra din dreapta. Este de remarcat faptul că o astfel de structură face posibilă nu încărcarea fișierului cu meniul din nou în fereastra din stânga la deschiderea unui document nou în cel din dreapta. Acesta este exact ceea ce este principalul avantaj al folosirii ramelorîn HTML.
De fapt, chiar numele acestor elemente ar trebui interpretat tocmai ca o fereastră independentă. Cu ajutorul cadrelor, avem posibilitatea de a împărți o fereastră mare în mai multe fragmente, care la rândul lor pot servi drept receptori pentru documente separate, independente unele de altele (pagini, texte, imagini, videoclipuri etc.).
Cum se creează o structură de cadru în limbajul de marcare hipertext? Dacă vorbim despre standardul Html 4.01 (conform clasificării), care este principalul la momentul actual, atunci sunt folosite trei elemente pentru aceasta - Frame, Frameset și Noframes.
Iframe - cadru inline în standardul html 5
Dacă vorbim despre standardul Html 5 (viitorul nostru, dintre care unele elemente sunt deja suportate de multe browsere), atunci acolo etichetele Frame, Frameset și Noframes, precum și structura clasică de cadre, nu vor mai fi acolo, în loc de ei există o singură etichetă Iframe (inline frame) , despre care vom vorbi la început, iar apoi ne vom îndrepta atenția către circuitul clasic din versiunea 4.01, care, de fapt, este acum folosit.
Iframe, spre deosebire de clasicele discutate mai jos, nu necesită înlocuirea etichetei Body cu etichete Frameset. Acestea. această etichetă poate fi inserată în pagini obișnuite, de exemplu, în interiorul unui paragraf sau oriunde altundeva. În esență, acest element este foarte asemănător cu eticheta Img pe care am luat-o în considerare deja.
Este un element inline cu conținut înlocuibil, deoarece se comportă exact ca un element inline, dar este afișat în interiorul acestuia. conținut extern străin... Există doar patru astfel de elemente în limbajul HTML - Img, Iframe, Object și Embed. Prin urmare, eroul nostru presupune prezența unui fișier extern care va fi încărcat în zonă, a cărui dimensiune este setată folosind atributele acestei etichete.
Acea. Un iframe este un element colector în care este încărcat un obiect extern (cum ar fi un videoclip). Și pentru a indica calea către acest fișier, care ar trebui să fie încărcat pe pagină, se folosește un atribut special Src. Dar, spre deosebire de Img, elementul Iframe este împerecheat, adică. există și o etichetă de închidere:
Acest exemplu arată rezultatul pe o pagină video Youtube folosind un Iframe. Pentru a limita zona cadrului (ferestrei) în care va fi încărcat fișierul extern, sunt furnizate atributele Latime si inaltime, ale căror valori sunt setate în pixeli:
Acestea. această etichetă creează o zonă în care este încărcat un obiect extern (nu contează dacă de pe site-ul tău sau dintr-o altă resursă). Lățimea și înălțimea regiunii sunt specificate folosind Width and Height, iar atributul Src specifică calea către acest obiect.
Elementul Iframe a moștenit toate aceste atribute de la etichete similare inline cu conținut înlocuit (cum ar fi Img deja menționat mai sus). Ei bine, a luat și atribute din poze. Hspace și Vspace, care vă permit să setați indentările de la marginile cadrului la textul care curge în jurul acestuia.
De asemenea, este semnificativ faptul că alinierea cadrului inline se realizează exact în același mod în care am putut-o vedea când studiem imaginile în Html -. Încă același Alinia, dar pentru eticheta Iframe cu posibile valori Bottom, Top, Middle, Left and Right.
Dar acest element a preluat și câteva atribute de la eticheta Frame din structura clasică a cadrului, despre care vom vorbi în detaliu mai jos în text. Aceste atribute includ Nume, a cărui valoare poate fi folosită ca valoare, astfel încât documentul de care aveți nevoie să se deschidă în fereastra acestui cadru atunci când faceți clic pe link (vezi detaliile de mai jos).
De asemenea, în Iframe, atributul Frameborder a migrat din eticheta Frame, care are doar două valori - fie 0 (cadru din jurul cadrului nu este afișat), fie 1 (cadru este vizibil). Valoarea implicită este Frameborder = 1, așa că pentru a-l elimina trebuie să setați Frameborder = "0":
Atributul Scrolling, care are o valoare implicită Auto, s-a mutat și de la Frame la acest element - barele de defilare din cadru vor apărea după cum este necesar atunci când conținutul este mai mare în dimensiunea ferestrei destinate afișării acestuia.
Ei bine, atributele Marginwidth și Marginheight sunt de asemenea transferate din elementul Frame. Ele vor fi discutate în detaliu mai jos în text, dar pe scurt - vă permit să setați marginea în lățime și înălțime de la marginile cadrului până la conținutul care este plasat în acesta.
După cum am menționat, un exemplu bun de utilizare a Iframe este:
Prin inserarea unui Iframe direct într-o pagină web, veți primi rezultatul video de pe YouTube. Concluzionăm că acest element este o încrucișare între elementele inline cu conținut înlocuit și, de fapt, cadrele clasice, despre care vom discuta acum.
Cadre bazate pe etichetele Frame și Frameset - structura lor
Deci, crearea unei structuri clasice de cadru începe cu faptul că scrieți în codul HTML în locul etichetelor Body de deschidere și închidere, care de obicei ar trebui să fie prezente în orice document, înlocuindu-și containerul pe baza elementelor. Setul de cadru.
Punctul fundamental este că elementul Body în acest caz nu poate fi utilizat - nici Body (pentru un document obișnuit), fie Frameset (când se creează structura de cadru a unui document):
Fiecare cadru pe care îl formăm în interiorul celui principal este creat folosind un element separat Cadru... Această etichetă este unică și în ea setăm calea către documentul care ar trebui să fie încărcat în această fereastră.
Al treilea element la care nu ne-am atins încă este Fără cadre... Este împerecheat și vă permite să scrieți un text în interiorul său, care va fi procesat de browser și afișat pe pagina web numai dacă acest browser (sau alt dispozitiv de afișare) nu acceptă cadre. Acest lucru se poate întâmpla, de exemplu, când utilizați un browser pentru dispozitive mobile.
De obicei, în Noframes adaugă nu numai informații despre situația actuală cu imposibilitatea procesării structurii cadrului, dar adaugă și posibilitatea de a merge la alte pagini, unde va fi posibil să se lucreze în continuare fără a le folosi. Este greu să mai spunem ceva despre el, așa că vom continua.
Se pare că elementul Frameset, folosit în locul etichetei Body, ocupă tot spațiul alocat pentru vizualizare, iar cadrele vor fi create în această zonă folosind elemente Frame separate. În acest sens, se pune întrebarea - cum să împărțiți zona de vizualizare între ferestre separate sau, cu alte cuvinte, cum să setați dimensiunea fiecăreia dintre ele.
Acest lucru se face prin adăugarea atributelor corespunzătoare la elementul Frameset. Sunt doi dintre ei - Cols și Rânduri... Cols setează împărțirea unei ferestre mari în cadre sau coloane verticale, iar Rows vă permite să o împărțiți în ferestre ori rânduri orizontale.
Crearea unei structuri bazate pe un set de cadre și pe atributele lui Cols și Rows
Valorile pentru Cols și Rows Html ale etichetei Frameset sunt numere separate prin virgule (fără spații). Aceste numere stabilesc proporțiile acelor ferestre pe care dorim să le obținem ca rezultat. În consecință, câte numere vor fi scrise separate prin virgule în Cols sau în Rânduri, numărul de cadre pe care îl avem și ar trebui să fie rezultatul.
De exemplu, cu ajutorul unei astfel de înregistrări, obținem trei coloane verticale, care în lățime vor corespunde proporțiilor de 2: 5: 3.
Deoarece am setat proporțiile pentru trei cadre, atunci va trebui să adăugăm trei elemente Frame între etichetele Frameset de deschidere și de închidere, cel puțin fără a specifica atribute suplimentare:
Ca rezultat, structura noastră de cadru, constând din trei ferestre goale, va arăta astfel:
În acest exemplu, setăm dimensiunea ferestrelor (Frame) folosind procente, care sunt luate din lățimea ferestrei (aceasta este în cazul utilizării Cols) sau din înălțimea acestuia (Rânduri). Când schimbați fereastra de vizualizare, procentul de dimensiuni ale cadrelor va fi menținut. Dar în loc de procente, puteți folosi doar numere care vor însemna. Și aici cred că nu ar trebui să apară dificultăți de înțelegere.
Dar există și o opțiune destul de neobișnuită în desemnările de dimensiune care arată asterisc „*”... Mai mult, poate fi fie doar „*”, fie un asterisc cu un număr în față, de exemplu, „3 *”. Un lucru complicat, foarte asemănător cu procentele, ceea ce înseamnă că împărțim spațiul pentru Frame în mod proporțional.
Să vedem un exemplu. Acum să alegem să împărțim fereastra în rânduri orizontale folosind Rows:
Ce înseamnă această intrare? Întreaga fereastră de vizualizare accesibilă pe verticală nouă va fi împărțită în trei linii. Înălțimea primei va fi luată la 200 de pixeli, a doua la 500, dar a treia linie va ocupa tot spațiul de înălțime rămas, deoarece „*” a fost folosit ca dimensiune.
În mod remarcabil, valoarea „*” și „1 *” înseamnă același lucru - împărțim tot spațiul rămas într-unul singur și dăm această parte acestui cadru (ei bine, adică tot spațiul rămas).
Dar vezi ce se întâmplă dacă folosești valoarea „*” cu un număr pentru împărțirea proporțională:
Care crezi că ar trebui să fie dimensiunile Cadrei în acest caz? Este clar că a doua linie va avea o înălțime unică de 100 de pixeli. Dar cum împărțiți spațiul rămas în înălțime între a treia și prima linie?
Este destul de ușor de numărat - doar adăugați patru (4 *) la doi (2 *) și împărțiți la acest numitor (amintiți-vă fracțiile din programa școlară) doi și patru. Acestea. obținem că prima coloană cu un cadru va ocupa o treime din spațiul rămas în înălțime, iar a treia coloană va ocupa două treimi. Sau, cu alte cuvinte, al treilea va fi de două ori mai mare decât primul:
Puteți utiliza toate cele trei moduri de dimensionare a ferestrelor cadru într-un singur atribut, de exemplu:
Ca urmare, vom obține prima coloană Frame cu o lățime de zece procente din întreaga suprafață disponibilă, a doua - 100 de pixeli, iar cele trei rămase vor avea o lățime de patru, trei și două nouă zeci din spațiul rămas. în lățime. Așa este totul simplu și clar.
Dacă doriți să împărțiți fereastra principală nu numai în cadre orizontale și verticale, ci, de exemplu, în combinațiile acestora, atunci puteți utiliza structura imbricată a elementelor Frameset separat pentru coloane și separat pentru rânduri. De exemplu, pentru a obține structura afișată în captura de ecran de mai jos, este suficient să utilizați următoarea construcție:
Acestea. mai întâi împărțim cu "frameset cols =" 20%, 80% "" tot spațiul disponibil în două coloane vertical și setăm conținutul coloanei din dreapta cu eticheta "frame", dar în loc să adăugăm un element "cadru" pentru coloana din stânga, deschidem un nou „rânduri de set de cadre =“ 10%, * ””.
Și cu ajutorul acesteia împărțim coloana din dreapta în două linii cu cadre, al căror conținut este setat folosind două etichete „cadru”, după care închidem ambele containere „cadru”. Totul este simplu și logic.
Specificarea căii în atributul Src al elementului Frame
Dar am vorbit cu toții despre elementul Frameset și despre atributele sale Cols și Rows, cu ajutorul cărora formăm structura și le stabilim dimensiunile. Acum să ne dăm seama cum să afișam documentele necesare în cadrele necesare și cum să configurați interacțiunea dintre ferestrele lor.
Deci, cum controlăm aspectul ferestrelor pe care le creăm? Toate acestea se află în atributele etichetei Frame. Primul care merită menționat este Sr... L-am văzut deja în eticheta Img când ne-am gândit să inserăm imagini în codul HTML. Esența sa nu s-a schimbat și încă vă permite să specificați calea către documentul care ar trebui să fie încărcat în cadru.
Calea către document în Src poate fi specificată ca. Căile relative sunt de obicei folosite pentru un document care se află pe propria resursă, dar veți avea nevoie de căi absolute atunci când doriți să încărcați un document de pe alt site în fereastra cadru.
Dacă nu este specificat atributul Src cu calea către documentul necesar, atunci va fi încărcat în fereastră un document gol. Personal, am făcut odată un lucru similar pentru blogul meu (ca element suplimentar de navigare) și, în același timp, am creat un folder separat pentru acesta pe serverul de găzduire și am plasat acolo nu doar un fișier HTML cu o structură de cadru (pe care l-am numit index). .html), dar și toate documentele încărcate în diferite ferestre, precum și fișierele de imagine care au fost folosite ca fundal.
Prin urmare, mi-a fost cel mai ușor să folosesc exact linkurile relative din atributul Src al etichetei Frame:
Ce este remarcabil, dacă înlocuiți toate linkurile date în acest cod de la relativ la absolut (cum ar fi https: //site/navigator/joomla.html) și deschideți acest fișier într-un browser, atunci documentele specificate în Frame vor fi încărcate din serverul meu și veți vedea o imagine similară în browser. Și nu contează unde va fi localizat fișierul tău cu structura de cadru (index.html) - pe computer sau pe o găzduire.
În exemplul prezentat în figură, o pagină cu un anumit meniu este încărcată în fereastra cadru din stânga, care este una normală. Dar nu este important modul în care este format meniul, dar este important ce se întâmplă după ce faceți clic pe oricare dintre linkurile acestuia.
Dacă faceți acest lucru, atunci totul se va întâmpla exact așa cum ar trebui - documentul se va deschide în fereastra din dreapta jos. Dar pentru asta a trebuit să aplic un mic truc, pentru că în versiunea implicită documentul se deschidea la dimensiunea completă a ferestrei, înlocuind structura cadrului, de care nu aveam deloc nevoie, deoarece meniul de navigare din cadrele din stânga și de sus a dispărut.
Cum se deschide documente dintr-un link într-un cadru
Deci, când am vorbit despre hyperlinkuri, am menționat un astfel de atribut al etichetei „A” ca Target = _blank. Îți amintești pentru ce este? Corect pentru a deschide documentul legat într-o fereastră nouă. În mod implicit, ar trebui să se deschidă în aceeași fereastră, ceea ce este echivalent cu target = "_ self".
Dar aceste oportunități Ţintă nu sunt limitate. Se pare că îi poți adăuga o valoare ca nume de cadru, care este specificat anterior în atributul special Name al etichetei Frame. Apoi documentul care urmează acest link nu se va deschide în aceeași fereastră, ocupând tot spațiul său, ci în Cadrul pe care l-ați specificat. Clar? Dacă nu în totalitate, acum va fi clar când se analizează exemplul.
Deci, să revenim la exemplul nostru prezentat în imaginea de mai sus. Trebuie să deschidem paginile prin link-uri din fereastra din stânga în cadrul din dreapta jos (mare). Prin urmare, mai întâi trebuie să dați un nume acestei ferestre mari folosind atributul Name din eticheta Frame.
A făcut și l-a numit „ktona”. Acum puteți deschide în siguranță fișierul care este încărcat ca meniu în fereastra din stânga și adăugați atributul Target = "ktona" la toate etichetele A din el:
Istoria apariției Joomla și a componentei VirtueMart
Desigur, utilizarea instrumentului de căutare și înlocuire pentru a-l pune jos pentru toate hyperlinkurile nu va fi dificilă, dar de ce să descărcați codul inutil atunci când avem o oportunitate grozavă de a folosi etichetă specială de bază, despre care am menționat deja în același articol despre hyperlink-uri când am vorbit despre utilizarea Target blank.
Este suficient doar să puneți elementul de bază target = "ktona" între etichetele Head de deschidere și de închidere și toate linkurile din codul HTML al acestui document vor deschide pagini noi în cadrul specificat numit "ktona":
Apropo, dacă luăm în considerare instrumentul meu odată existent ca exemplu, atunci trebuie totuși să ne asigurăm că toate linkurile din fereastra orizontală de sus își vor deschide paginile exact în cadrul vertical din stânga, care servește drept meniu din stânga. Ce trebuie făcut pentru asta?
Ei bine, mai întâi, trebuie să dați un nume cadrului vertical din stânga:
Și în fișierul care este încărcat în fereastra de sus (gor.html), trebuie să adăugați elementul de bază target = "gor":
Totul, acum am făcut totul bine. Toate documentele prin link-uri din cadrul de sus se deschid în fereastra din stânga, iar toate linkurile din acesta vor deschide documentele în cadrul central și cel mai mare. După părerea mea, totul este simplu și logic.
Atributele etichetei cadru pentru personalizarea aspectului ferestrelor
Să vedem acum ce atribute în afară de Src și Name pot fi folosite în eticheta Frame pentru a personaliza aspectul cadrelor. Sa incepem cu Defilare... Cu acesta, putem personaliza afișarea barelor de defilare pentru fiecare fereastră din structura de cadru separat.
Defilarea este setată la Auto în mod implicit - browserul va decide automat, în funcție de dimensiunea documentului încărcat în cadru, dacă va afișa sau nu bara de defilare. Dacă documentul nu se încadrează complet în fereastră, va apărea o bară de defilare, care vă va permite să vedeți totul până la sfârșit.
De asemenea, ca valori pentru Defilare, puteți folosi valorile Da (barele de defilare din fereastră vor fi întotdeauna afișate, chiar dacă documentul se încadrează complet în el) și Nu (barele de defilare nu vor apărea deloc, chiar dacă o parte a documentului nu se potrivește).
În instrumentul meu existent, am folosit automat implicit și barele de defilare în cadre au apărut după cum era necesar:
Următorul atribut al etichetei Frame este - Noresize- este singur (nu are valori). După ce l-ați înregistrat, interziceți astfel redimensionarea acestuia, care se realizează în mod implicit prin simpla glisare a marginii cadrelor cu mouse-ul.
Când mutați cursorul mouse-ului la margine, veți vedea că cursorul se transformă într-o săgeată cu două capete și acum, apăsând butonul stâng al mouse-ului, puteți muta chenarul după cum doriți. Noresize impune o interdicție asupra acestei voințe proprii (când mutați cursorul mouse-ului la marginea ferestrelor, nu veți mai vedea săgeata cu două capete).
Un alt atribut vizual este Frameborder... Cu acesta, puteți specifica dacă să desenați un cadru (chenar) între cadre sau nu să desenați. Frameborder poate avea doar două valori posibile - fie 0 (nu desenați cadrul) fie 1 (afișați chenarul). Valoarea implicită, desigur, este 1.
Există o subtilitate. Dacă doriți să eliminați chenarul vizibil, atunci va trebui să adăugați Frameborder = 0 la toate etichetele Frame ale acelor cadre, marginile vizibile între care doriți să le eliminați.
Ei bine, mai trebuie să luăm în considerare câteva atribute ale etichetei Frame - Marginwidth și Marginheight, care setează marginile de lățime (dreapta și stânga) și înălțimea (sus și jos) de la marginile ferestrei până la conținutul încărcat în ea (numărul înseamnă numărul de pixeli ai marginii):
De ce este imposibil să faci un site pe cadre?
Să vedem care este dezavantajul fundamental al structurilor clasice, care de fapt pune capăt utilizării lor la crearea unui site web. Constă în faptul că pentru această structură cadru este imposibil de urmărit starea ei.
Structurile complexe pot avea mii de stări diferite (variante de documente deschise în ferestre cadru diferite), dar adresa URL a acestei structuri nu se schimbă. Din această cauză, va exista este imposibil să utilizați marcajele browserului sau trimiteți link-uri către paginile care vă plac altor utilizatori. De ce?
Pentru că adresa rămâne neschimbată, iar când o deschideți dintr-un marcaj de browser, sau dintr-un e-mail, veți primi o pagină cu starea de pornire a structurii cadrelor, și nu starea pe care doriți să o salvați.
Deși, desigur, această problemă poate fi rezolvată, dar nu prin intermediul Html, ci folosind programarea pe partea serverului (de exemplu, Php) sau în limbaje client (JavaScript), iar aceste soluții nu vor fi funcționale de unul singur. sută la sută. Astfel de soluții, de fapt, permit adăugarea de date suplimentare despre starea sa actuală la adresa URL a structurii cadrului, dar acest lucru nu este ușor, iar fiabilitatea nu va fi absolută.
Acesta este primul dezavantaj al folosirii cadrelor pentru a crea site-uri web și este foarte semnificativ, dar există un alt dezavantaj uriaș. Motoarele de căutare, desigur, au învățat de mult să le indexeze și să extragă din ele adresele acelor documente care sunt încărcate în ferestrele lor. Problema este alta.
Când un utilizator navighează de la rezultatele căutării Yandex sau Google la site-ul dvs. construit pe baza unei structuri de cadru, se va deschide doar documentul care a fost încărcat într-unul dintre cadre, și nu întreaga structură. Înțelegi despre ce vorbesc?
Utilizatorul va vedea documentul și nu va vedea navigarea pe site-ul dvs, deoarece va fi cusut în alte ferestre, iar acestea sunt încărcate doar ca parte a întregii structuri.
Ca rezultat, un site construit pe cadre devine pur și simplu inutilizabil. Deși, din nou, există soluții la această problemă bazate pe scripturi de server, atunci când se va efectua o redirecționare de la adresele documentelor individuale către o structură de cadru care se află în starea dorită, acest lucru este din nou foarte dificil și nu întotdeauna de încredere.
În general, concluzia poate fi făcută fără ambiguitate - nu trebuie să creați site-uri pe cadre... Dar, pe de altă parte, ele sunt folosite în mod constant pentru a crea ajutor pentru diverse aplicații, ei bine, și în alte părți pot fi utile pentru lucruri mărunte.
De exemplu, am creat o structură de cadru, pe care am numit-o „Navigator” (acum a fost eliminată temporar) și care a devenit un fel de meniu extern extins pentru blogul meu, care, după cum mi se pare, ar trebui să simplifice lucrul cu resurse și, prin urmare, să îmbunătățească, care sunt acum " nu buldozer ", foarte, foarte puternic de promovare a site-ului.
Dar, totuși, pentru a evita orice probleme cu motoarele de căutare, am închis din ea toată această structură de cadre și am adăugat și metaeticheta Rodots la toate fișierele sale HTML, pentru orice eventualitate, cu interzicerea indexării lor:
JOOMLA
Dar toate aceste restricții se aplică numai structurilor de pe etichetele Frame și Frameset și cadre inline pe etichetele iframe nu au defecte vizibile și este destul de posibil și chiar necesar să le folosești în proiectele tale, cel puțin pentru inserarea videoclipurilor de pe YouTube.
Multă baftă! Ne vedem curând pe paginile site-ului blogului
S-ar putea să fiți interesat
Directive de comentariu și Doctype în codul HTML, precum și conceptul de elemente bloc și inline (etichete) Embed and object - Etichete HTML pentru afișarea conținutului media (video, flash, audio) pe paginile web Img - Etichetă HTML pentru inserarea unei imagini (Src), alinierea și împachetarea acesteia cu text (alinierea), precum și setarea unui fundal (fundal) Ce este limbajul de marcare hipertext HTML și cum să vizualizați o listă cu toate etichetele în validatorul W3CSelectare, Opțiune, Zona de text, Etichetă, Set de câmpuri, Legendă - Etichete HTML ale formularului derulant și casetă de text Liste în cod HTML - etichete UL, OL, LI și DL Font (față, dimensiune și culoare), etichete Blockquote și pre sunt formatări de text vechi în HTML pur (fără CSS) Cum sunt setate culorile în codul Html și CSS, selecția nuanțelor RGB în tabele, Yandex și alte programe
Nu ai găsit un răspuns la întrebarea ta? Uita-te aici