Iframe og Frame - hva de er og hvordan man best kan bruke rammer i Html. Bruke rammer i HTML Hvordan åpne dokumenter ved hjelp av en lenke i en ramme
Begrepet "ramme" kom til oss fra på engelsk. Oversatt betyr dette ordet "ramme" og representerer et eget område av vinduet. I sin struktur er en slik seksjon et helt ferdig HTML-dokument.
Individuelle rammer deler nettleservinduer inn i seksjoner som er plassert side om side. I dette tilfellet er hver ramme lastet med sin egen helside. Rammeteknologi forårsaker fortsatt mye kontrovers, men det må sies at toppen av populariteten allerede har passert. I dette øyeblikket denne teknologien er utdatert og vanlige rammer støttes ikke lenger i HTML5.
Teknologihistorie
I dag kan vi slå fast at beslutningen om å gå bort fra å jobbe med rammeteknologi er endelig tatt. Nettstedet https://www.w3.org/TR/html5-diff/#obsolete-elements sier tydelig at de vanlige frame-, frameset- og noframes-taggene for å lage en slik struktur er utdatert. Som et argument gis det data om at bruken av en slik struktur negativt påvirker brukervennligheten til nettsteder og deres tilgjengelighet på Internett.
Men moderne teknologier støtter IFRAME-elementet. Bruken lar deg sette inn rammer i tekstblokker på sider. Dessuten kan slike elementer justeres i forhold til selve teksten. Et viktig poeng: du kan ikke endre størrelsen på innebygde rammer i prinsippet. De har ikke en tilsvarende attributt for å endre størrelse.
I fremtiden, uten sprang i teknologi, er ytterligere bruk av rammer usannsynlig. Og det er verdt å huske at den ledende organisasjonen for standardisering av Internett-teknologier - W3C - klart har indikert at slike strukturer ikke skal brukes av nettstedsutviklere.
Det vil si at rammer i prinsippet ikke skal brukes til å strukturere sider ved opprettelse av nye ressurser. Men med støtte og forbedring av eksisterende nettsteder, vil kunnskap om funksjonene til teknologien og deres bruk være svært nyttig og produktiv.
Fordeler med rammer
Blant fordelene med rammeteknologi er brukervennlighet, høy hastighet og muligheten til å nøyaktig posisjonere informasjon i visse områder av vinduet.
Bruken av rammer gir besparelser på volumet av overført trafikk mens du arbeider med nettstedet. Når alt kommer til alt, når du får tilgang til en annen del med informasjon, oppdateres vanligvis bare én del av siden, og ikke hele koden.
Denne strukturen gir interessante navigasjonsalternativer gjennom ressursinnhold. Tross alt, inne i nettleservinduet i tilstøtende rammer kan du se ulike informasjonsblokker. Det er viktig for brukere å vite at søk innenfor en ramme tilsvarer å utføre en slik operasjon på en egen side.
Mens du jobber med nettstedet, kan du dynamisk endre størrelsen på en egen seksjon, noe som er vanskelig å implementere ved å bruke andre teknologiske løsninger.
Mulige ulemper
Problemer med nettsider som bruker rammer akkumulerte gradvis, men i dag har de nådd et terskelnivå. Blant de viktigste ulempene er:
Utilfredsstillende brukervennlighet. I dag vokser andelen brukere av mobile enheter og nettbrett med liten skjermoppløsning og overgår allerede antallet som besøker nettsteder fra stasjonære datamaskiner og bærbare datamaskiner. Og her skaper bruken av rammer alvorlige problemer med sidenes tilpasningsevne når de vises på ulike enheter. Dette problemet har ingen praktisk løsning i dag.
Forringelse av områdets tilgjengelighet for ulike programmer. En økning i antall tilleggsprogrammer (for eksempel skjermlesere) avslører mye dårligere tilgjengelighet for informasjon for lesing.
Sidene vises ikke riktig. Ofte ser utformingen av sider med en slik struktur feil ut i nettlesere fra et designsynspunkt. Og dette er på grunn av funksjonene til teknologi. Fra et SEO-synspunkt er bruk av rammer i HTML-oppsettet på en side svært uønsket.
Tilgjengelighet av en enkelt adresse for hele strukturen. Som et resultat kan de interne sidene til et slikt nettsted ikke bokmerkes. Dette fører til ulemper for brukerne.
Feil indeksering av søkemotorer. Tilstedeværelsen på et nettsted av flere fullverdige dokumenter, hvorfra en side er dannet, kompliserer arbeidet til søkemotorer betydelig. Dette fører til betydelige feil under indeksering. Som et resultat fører feil definisjon av emner og sideadresser til tap av kritisk innhold fra indeksering.
Respektløshet. Dette er en ganske uvanlig feil for ressurser på nettverket. Og likevel må det sies at det faktum at utformingen av nettsteder på rammer blir foreldet fører til at forfatterne og eierne av slike ressurser anses som retrograde. Men det er noen unntak. Selv moderne nettsteder som er vert for chatterom bruker vanligvis rammer.
Indeksering av rammer av søkemotorer
Informasjonen som kommer fra søkemotorer forteller oss tydelig at nettsteder med rammer indekseres merkbart tregere. I dette tilfellet oppstår det ofte feil knyttet til selve strukturen. Tross alt viser hver ramme en fullverdig Internett-side. Og nettopp en slik del av nettstedet kan være inkludert i indekseringsdatabasen.
Det negative med slik indeksering er at når brukeren går til innsiden av siden, ser brukeren vanligvis ikke menyer og andre navigasjonsmekanismer. Og dette er ikke overraskende. Du må forstå at oppdatering av rammen ikke er en løsning på problemet i dette tilfellet. Tross alt er alle navigasjonsmekanismer plassert i en annen beholder.
Et annet problem er at hovedsiden til en beholderstruktur ofte bare inneholder en tittel, metabeskrivelseskoder og en FRAMESET-tag. Og dette virker logisk - meningsfullt innhold ligger tross alt i separate dokumenter. Det er disse som den besøkende vil se på siden i rammer.
Men en søkerobot indekserer nesten aldri en slik side. Han finner ikke noe innhold på den som er nyttig for besøkende. Søkeroboter er konfigurert på en slik måte at de prøver å hente og indeksere informasjon plassert inne i body-taggen. Det er her søket etter nyttig innhold for brukeren skjer. Men på rammesiden er det ingen slik tag; den erstattes av FRAMESET.
Dette problemet kan delvis løses ved å bruke NOFRAMES. Men på mange nettsteder, når du får tilgang til den, gis det bare informasjon om at nettleseren ikke støtter rammer. Og for å se siden må du bruke et annet program.
Slike tilfeller skaper mange problemer for brukere som ved besøk på et nettsted ikke ser menyen og annen informasjon som skal vises. Hvis rammer plasseres på et nettsted, reduseres parametrene fra et SEO-synspunkt. Samtidig indikerer brukeratferdsstatistikk at ressursens autoritet blant søkemotorer faller. Dette har definitivt en negativ innvirkning på nettstedtrafikken.
Det er spesielt vanskelig for søkemotorer og indekseringsroboter å behandle nestede og flere personellstrukturer. Det faktum at hver beholder har alle funksjonene til et separat dokument, men ikke inneholder full navigasjon og annen informasjon, kompliserer situasjonen ytterligere.
Du kan gjøre arbeidet til søkemotorer enklere ved å bruke riktig kobling på sider. I dette tilfellet må du duplisere alle menykoblingene slik at de kan finnes innenfor hver enkelt del av siden. Men dette kompliserer og bremser arbeidet med å optimalisere nettstedet og oppdatere informasjon på det betydelig.
Erfaringen til mange optimister og webmastere tyder også på at sider på rammer ikke får høye rangeringer i søkeresultatene. Dette skjer selv om de er inkludert i indekseringsdatabasen.
Funksjoner ved nettstedpromotering i rammer
Noen søkemotorer indekserer innrammede filer feil eller svært feil. Som et resultat er indeksdatabasen ikke fylt med adressene til overordnede ressurser (som den burde være), men med lenker til underordnede nettsteder.
For å minimere problemene med å indeksere nettsteder basert på rammer, brukes spesielle tagger og parametere når de beskriver dem. Hovedelementet i beholderstrukturen er rammesettet. Det er han som erstatter standardkroppen; i kildekoden. Hver enkelt beholder i strukturen er beskrevet med en ramme. Antallet i sidekoden tilsvarer antallet individuelle seksjoner som vises i nettleservinduet når de vises.
Disse taggene bør plasseres på hjemmeside nettsted, og duplisere deretter innholdet i hver av dem.
Bruksområder for rammer
Utviklere av HTML-dokumenter har et ganske bredt utvalg av skjemaer for å vise informasjon på sider. Tekst og grafisk informasjon kan ordnes og organiseres ved hjelp av lister, tabeller, eller ganske enkelt ved å bruke justeringsalternativer, sette horisontale linjer og dele inn i avsnitt. Noen ganger er ikke disse funksjonene nok, og da må du dele nettleservinduet i separate områder eller rammer. I en rekke russiskspråklige beskrivelser av HTML-språket brukes begrepet rammer i stedet for begrepet rammer. Hyppigheten av bruk av begge begrepene er omtrent den samme.
Valget av en rammestruktur for visning av informasjon på WWW er berettiget i følgende tilfeller:
om nødvendig, administrer lasting av dokumenter til et av underområdene i nettleserens visningsvindu mens du arbeider i et annet underområde;
å lokalisere informasjon på et bestemt sted i visningsvinduet som alltid må være på skjermen, uavhengig av innholdet i andre underområder på skjermen;
å presentere informasjon som er hensiktsmessig arrangert i flere tilstøtende underområder av vinduet, som hver kan sees uavhengig.
Den gitte listen uttømmer ikke alle mulige tilfeller der rammer kan påføres, men er av anbefalende karakter.
La oss først vurdere typisk bruk av rammer ved å bruke eksempler på virkelige HTML-dokumenter, og deretter gå til reglene for utvikling av dokumenter som inneholder rammer.
I fig. Figur 5.1 viser en av HTML-sidene til Finmarket-byrået, som spesialiserer seg på å gi informasjon fra finans- og aksjemarkedene i Russland.
Ris. 5.1. Et typisk webdokument med en rammestruktur
Denne siden deler nettleservinduet i tre rammer. Nedre del vinduet opptar 20 % av høyden på hele vinduet og inneholder permanent informasjon, som i dette tilfellet er en grafisk meny som lar deg få tilgang til de viktigste delene til enhver tid. Denne rammen kan ikke endre størrelsen basert på brukerkommandoer og har ikke rullefelt. Øverste del vindu (80 % av høyden) er delt horisontalt i to rammer. Den venstre rammen inneholder innholdsfortegnelsen til dokumenter som kan ses av brukeren. Den høyre rammen, som opptar det meste av visningsvinduet, er ment å vise selve dokumentene. Når de først ble lastet, deler disse to rammene nettleservinduet horisontalt med et forhold på 15 % til 85 %. Dette forholdet kan endres av brukeren under visning, noe som lar deg velge de optimale rammestørrelsene under hensyntagen til innholdet i de lastede dokumentene. Hver av disse rammene har sin egen rullefelt, slik at du kan se hele innholdet i rammen, uavhengig av størrelsen på selve rammen, hele nettleservinduet eller skriftene som brukes. Når du velger en kobling i venstre ramme, vil det tilsvarende dokumentet lastes inn i høyre ramme. Denne strukturen lar deg se både innholdsfortegnelsen til dokumenter og innholdet i det valgte dokumentet på skjermen.
Her, uten forklaring, er et fragment av HTML-koden som brukes til å bygge et dokument med denne strukturen:
Dette eksemplet viser den mest typiske bruken av rammestrukturer, der en ramme fungerer som en innholdsfortegnelse for dokumenter og en annen brukes til å laste inn innholdet. Å løse et slikt problem uten å bruke rammer gjøres vanligvis som følger. På en av sidene er det en innholdsfortegnelse, bestående av lenker til andre dokumenter eller deres individuelle fragmenter. Når du klikker på en slik lenke, forsvinner innholdsfortegnelsen, og det nødvendige dokumentet lastes inn på plass, etter å ha lest som du vanligvis trenger å gå tilbake til innholdsfortegnelsen. Ved bruk av rammer blir denne returen unødvendig, siden innholdsfortegnelsen alltid ligger på en del av skjermen.
Du finner den på Internett
nettsiden til den elektroniske utgaven av den populære adresse- og telefonkatalogen "All Petersburg" i St. Petersburg.
Den elektroniske versjonen av katalogen er tilgjengelig på http://www.allpetersburg.ru og lar deg finne nødvendig informasjon basert på brukerforespørsler. Denne dokumentsiden har også en rammestruktur og består av to rammer, hvorav den første er 100 piksler bred, og den andre tar opp hele den gjenværende bredden av visningsporten. Rammen på venstre side brukes til en grafisk meny som hele tiden er tilstede på skjermen, og inneholder også Nevalink firmalogo. Den andre rammen inneholder dokumentet, som i dette tilfellet er et brukerforespørselsskjema. Strukturen til denne siden er definert av følgende HTML-kode:
Rammer ligner veldig på tabeller - de deler begge opp nettleservinduet i rektangulære områder der noe informasjon er plassert. Ved hjelp av rammer kan du imidlertid løse ikke bare problemet med formatering av dokumentsider, men også organisere samspillet mellom dem. Den grunnleggende forskjellen mellom rammer og tabeller er at hver ramme må ha sitt eget separate HTML-dokument, men innholdet i alle tabellceller er alltid en del av det samme dokumentet. I tillegg kan siden som vises i rammen rulle når den vises uavhengig av de andre. Hver ramme er egentlig en egen "mininettleser". I motsetning til rammer, hvis hele strukturen alltid vises på skjermen, kan det hende at tabeller ikke passer helt inn i vinduet og kan bare sees i deler. Det følger at hvis det totale antallet celler i HTML-tabeller er praktisk talt ubegrenset og kan nå flere hundre, så overstiger vanligvis ikke antall rammer i et dokument flere enheter.
Råd
Hvis du bare trenger å formatere et dokument, er det nok å begrense deg til å bruke tabeller. Hvis du trenger å løse mer komplekse problemer, for eksempel organisere interaksjon mellom vindusdelområder eller lage delområder som er permanent plassert på skjermen, er det praktisk å bruke rammer.
Til syvende og sist avhenger valget av dokumentstruktur - tabellform eller ramme - av mange faktorer og kan ikke entydig forhåndsbestemmes.
Det er ogsåsider som ser ut til å være bygget på samme måte som de forrige. For eksempel kan du ta side med en veldig populær verdensomspennende samling av programvareprodukter designet primært for arbeid med Internett. Server adresse http://www.tucows.com. Merk at navnet på serveren ble bestemt av en forkortelse avledet fra forkortelsen av det fulle navnet på samlingen - The Ultimate Collection of Winsock Software. Siden forkortelsen tucows viste seg å stemme overens med uttrykket to cows (to cows), er bilder av kuer ofte funnet på serversidene, og vurderingen av programvareprodukter er estimert i antall mooings ("Moo") og er grafisk avbildet som en rad med tilsvarende antall kyr. De fleste serversidene er bygget på samme måte - på venstre side av vinduet er det en liste over tilgjengelige seksjoner, og på høyre side er det en liste over programvareprodukter for den valgte delen. Ved første øyekast bør strukturen til dokumentet se omtrent den samme ut som i de foregående eksemplene. Dette dokumentet bruker imidlertid ikke rammer! Denne siden er bygget ved hjelp av en tabell som består av bare én rad med to celler. Tabellen har ingen ramme og tjener kun formålet med å formatere siden. Inntrykket av en vertikalt delt skjerm skapes ved å bruke en bakgrunnsgrafikk som inneholder vertikal linje, og ikke et tabellnett i det hele tatt. Du kan bekrefte dette ved å se på siden uten å laste inn bilder. Bruken av en tabell her skyldes tilsynelatende hensyn til større tilgjengelighet av dokumenter, siden rammer ikke tillater visning i alle nettlesere.
Ulempen med denne tilnærmingen i dette tilfellet er behovet for å gjenta hele listen over seksjoner (venstre side av siden) i hvert dokument, noe som øker filstørrelsen litt.
En sammenligning av eksemplene ovenfor viser at bruken av tabeller og rammer noen ganger kan være utskiftbare og bestemmes av utviklernes ønsker. Merk at når du ser på en side med et dokument vist på den, er det ofte umulig å fastslå hvordan den er bygget opp. Sluttbrukeren trenger ikke å kjenne den interne strukturen til dokumentet, men når han utvikler sine egne websider, vil det være svært nyttig å gjøre seg kjent med kildekoden til eksisterende dokumenter. I det første eksemplet (se fig. 5.1) er rammestrukturen til dokumentet umiddelbart synlig - tilstedeværelsen av to vertikale rullefelt bestemmer allerede tilstedeværelsen av individuelle rammer. De følgende to eksemplene er veldig like i utseende, og det er umulig å fastslå at den første av dem er bygget ved hjelp av rammer, og den andre - ved hjelp av tabeller. Forskjeller vil bare vises når du arbeider med dem. I eksemplet med en telefonkatalog, når du ruller et dokument, vil venstre del av vinduet forbli på plass, noe som bare er mulig hvis det er en rammestruktur. I det følgende eksempelet (en samling programvareprodukter), vil rulling flytte hele innholdet i vinduet.
Du kan se dokumentstrukturen når du arbeider med Netscape-nettleseren ved å bruke Side Info-elementet (i versjon 3.x av Netscape-nettleseren ble dette menyelementet kalt Document Info) i Vis-menyen (fig. 5.2).
Ris. 5. 2
.
Netscape-nettleservisningsmeny
I tillegg kan du alltid se HTML-kildekoden til hele dokumentet ved å bruke Sidekilde-elementet i Vis-menyen (eller View Frame Source-elementet på høyreklikk-kontekstmenyen for å se HTML-koden til dokumentet som er lastet inn i valgt ramme).
Råd
Du bør ikke misbruke bruken av rammer unødvendig, og antallet bør ikke overstige tre eller fire.
Ofte på ekte sider på Internett kan du se følgende tilfeller av bruk av rammer:to tilstøtende rammer brukes til å laste inn dokumenter som er praktiske å se samtidig og sammenligne med hverandre. Hvert av de to dokumentene som er lastet inn i rammer bruker en tabellform for å presentere informasjon. Som et resultat av denne organiseringen av data kan hver av de to tabellene sees (eller skrives ut) separat, eller studeres i sammenligning med den andre.
Alle eksemplene gitt i denne delen er hentet fra sidene til populære WWW-servere og kan kanskje tjene som eksempler på bruk av rammer i HTML-dokumenter.
Etterfølgende deler av dette kapittelet dekker regler for å skrive dokumenter som inneholder rammer.
Regler for beskrivelse av rammer
La oss nå gå videre til å vurdere reglene for å skrive tagger som brukes for dokumenter med rammestrukturer.
La oss først se på den komplette HTML-koden som lager et dokument med rammer med middels kompleksitet:
Dette eksemplet lager den innrammede siden vist i figuren. 5.3. Som du kan se, definerer denne HTML-koden fire rammer. Den øverste rammen spenner over hele sidens bredde og inneholder overskriften. Neste er to sentrale rammer, hvorav den ene er plassert på venstre side og tar opp 25 prosent av skjermbredden, og den andre tar opp den resterende plassen. Den siste, fjerde rammen opptar den nedre fjerdedelen av skjermen. Et separat HTML-dokument lastes inn i hver ramme, hvis navn bestemmes av SRC-parameteren.
Som det fremgår av eksempelet, brukes tagger for å beskrive strukturen til rammer
, Og . La oss se på formålet med disse kodene.
Ris. 5. 3
.
Resultatet av at Netscape-nettleseren viser HTML-dokumentet med rammer vist i eksempelet
stikkord
Rammer er definert i en struktur kalt FRAMESET, som brukes for sider som inneholder rammer i stedet for en BODY-seksjon vanlig dokument. Nettsider som består av rammer kan ikke inneholde en BODY-seksjon i HTML-koden. På sin side kan sider med BODY-seksjon ikke bruke rammer.
Råd
Siden innrammede sider ikke har en BODY-seksjon, er det ingen måte å angi et bakgrunnsbilde og bakgrunnsfarge for hele siden. Husk at disse innstillingene bestemmes av BACKGROUND- og BGCOLOR-parametrene skrevet i BODY-taggen. Dette hindrer deg imidlertid ikke i å laste inn dokumenter med sine egne bakgrunnsinnstillinger i hver ramme.
Beholder med tagger
Og rammer hver rammedefinisjonsblokk. Inne i beholderen kan bare inneholde tagger og nestede tagger .
stikkord
har to parametere: ROWS (rader) og COLS (kolonner) og er skrevet som følger:
.
Merk
Noen nettlesere tillater ekstra tag-parametere
Du kan definere verdier for ROWS eller COLS, eller begge deler. Det er nødvendig å definere minst to verdier for minst én av disse parameterne. Hvis en annen parameter utelates, antas verdien å være 100 %.
Råd
Hvis i en tag Hvis bare én verdi er definert for ROWS og COLS, vil denne taggen anses som ugyldig og nettleseren vil ignorere den. Det er med andre ord umulig å fastslå , bestående av kun én ramme.
Liste over tag ROWS og COLS parameterverdier
er en kommadelt liste over verdier som kan spesifiseres i piksler, prosenter eller relative enheter. Antall rader eller kolonner bestemmes av antall verdier i den tilsvarende listen. For eksempel, ta opp
definerer et sett med tre rammer. Disse verdiene er absolutte pikselverdier. Med andre ord, den første rammen (første rad) er 100 piksler høy, den andre er 240 piksler, og den siste er 140 piksler høy.
Å angi verdier for rammestørrelse i piksler er ikke veldig praktisk. Dette tar ikke hensyn til at nettlesere kjører på forskjellige operativsystemer og med forskjellige skjermoppløsninger. Samtidig er det mulig å definere absolutte størrelsesverdier for noen tilfeller, for eksempel for å vise et lite bilde med kjente dimensjoner. Det beste alternativet ville være å angi verdiene i prosenter eller relative enheter, for eksempel:
.
Dette eksemplet lager tre rammer som er plassert som rader over hele skjermens bredde. Den øverste raden vil ta opp 25 prosent av tilgjengelig skjermhøyde, den midterste raden vil ta opp 50 prosent, og den nederste raden vil ta opp 25 prosent. Hvis summen av de spesifiserte prosentene ikke tilsvarer 100%, vil verdiene skaleres proporsjonalt slik at resultatet blir nøyaktig 100%.
Verdiene i relative enheter er som følger:
.
En stjerne (*) brukes til å dele mellomrom proporsjonalt. Hver stjerne representerer en del av helheten. Ved å legge sammen alle verdiene til tallene ved siden av stjernene (hvis et tall er utelatt, antas ett), får vi nevneren til brøken. I dette eksemplet vil den første kolonnen ta opp 1/6 av den totale bredden av vinduet, den andre kolonnen vil ta opp 2/6 (eller 1/3), og den siste vil ta opp 3/6 (eller 1/ 2).
Husk at en numerisk verdi uten tegn spesifiserer det absolutte antallet piksler for en rad eller kolonne. En verdi med et prosenttegn (%) angir andelen av den totale bredden (for COLS) eller høyden (for RADER) til visningsporten, og en verdi med en stjerne (*) angir den proporsjonale fordelingen av gjenværende plass.
Her er et eksempel som bruker alle tre alternativene for å angi verdier:
.
I dette eksemplet vil den første kolonnen være 100 piksler bred. Den andre kolonnen vil ta opp 25 prosent av hele visningsportens bredde, den tredje kolonnen vil ta opp 1/3 av den gjenværende plassen, og til slutt vil den siste kolonnen ta opp 2/3. Det anbefales å tilordne absolutte verdier først i rekkefølge fra venstre mot høyre. De blir fulgt prosentverdier av plassens totale størrelse. Til slutt registreres verdier som bestemmer den proporsjonale deling av gjenværende plass.
Råd
Hvis du bruker absolutte COLS- eller ROWS-verdier, hold dem små slik at de kan passe inn i et hvilket som helst nettleservindu, og fyll dem etter behov. i det minste, en enkelt verdi, spesifisert i prosent eller relativ form, for å fylle den gjenværende plassen.
Hvis taggen brukes
, der både COLS- og ROWS-verdier er spesifisert, vil et rutenett med rammer opprettes. For eksempel:
Denne linjen med HTML-kode lager et rammenett med tre rader og to kolonner. Den første og siste linjen tar opp 1/4 av høyden hver, og den midterste linjen tar opp halvparten. Den første kolonnen tar opp 2/3 av bredden, og den andre - 1/3.
Container
kan nestes inne i en annen lignende beholder, som vist i det første eksemplet. La oss vurdere bruken av taggen ytterligere .
Merk
Noen kilder på HTML-språket indikerer at COLS- og ROWS-parametrene til taggen utelukker hverandre. Både Netscape og Microsoft Internet Explorer tillater imidlertid at de brukes sammen.
stikkord
stikkord definerer en enkelt ramme. Den må være plassert inne i et par tagger
Og. For eksempel:
Vær oppmerksom på at taggen er ikke en beholder og ulik
har ikke sluttmerke. Hele definisjonen av en enkelt ramme gjøres med én linje med HTML-kode.
Det er så mange tagger å ta opp hvor mange individuelle rammer som er definert når du spesifiserer taggen
. I det forrige eksemplet, taggen to strenger ble gitt, så to tagger måtte skrives . Imidlertid er dette eksemplet i hovedsak ubrukelig, siden ingen av rammene har noe innhold!
stikkord har seks parametere: SRC, NAME, MARGINWIDTH, MARGINHEIGHT, SCROLLING og NORESIZE.
Merk
Noen nettlesere lar deg bruke en rekke ekstra kodeparametere . En oversikt over funksjonene til nettleserne Netscape og Microsoft Internet Explorer er gitt på slutten av kapittelet.
I praksis i taggen Sjelden brukes alle parametere samtidig.
Mest viktig parameter- SRC (forkortelse for kilde). Ganske ofte i taggen en enkelt SRC-parameter er spesifisert. For eksempel:
.
Verdien til SRC-parameteren bestemmer URL-en til dokumentet som først skal lastes inn i denne rammen. Vanligvis er denne adressen navnet på en HTML-fil som ligger i samme katalog som hoveddokumentet. Da vil rammedefinisjonslinjen se for eksempel slik ut:
.
Merk at enhver HTML-fil spesifisert i rammedefinisjonen må være et komplett HTML-dokument, ikke et fragment. Dette betyr at dokumentet må ha HTML, HEAD, BODY osv.-tagger.
Selvfølgelig kan SRC-verdien være en hvilken som helst gyldig URL. Hvis for eksempel rammen brukes til å vise et GIF-bilde som ligger på serveren til utgiveren av denne boken, bør du skrive:
.
Råd
Ikke ta med noe innhold i dokumentet som beskriver rammestrukturen.
Ren tekst, overskrifter, grafikk og andre elementer kan ikke brukes direkte i et dokument som beskriver en rammestruktur. Alt innhold i rammer må defineres i separate HTML-filer, hvis navn er spesifisert av SRC-parameteren til taggen .
NAME-parameteren spesifiserer et rammenavn som kan brukes til å referere til denne rammen. Vanligvis settes koblingen fra en annen ramme som ligger på samme side. For eksempel:
.
Denne oppføringen oppretter en ramme kalt "Frame_1" som kan refereres til. For eksempel:
Klikk her for å laste ned
dokument other.htm inn i en ramme kalt Frame_1.
Legg merke til TARGET-parameteren, som refererer til rammenavnet. Hvis en ramme ikke får et navn, vil en ikke navngitt ramme bli opprettet og det vil ikke være mulig å referere til den fra en annen ramme. Rammenavn må begynne med et alfanumerisk tegn.
Parameterne MARGINWIDTH og MARGINHEIGHT lar deg angi bredden på rammemarginene. Dette er skrevet som følger:
MARGINWIDTH="verdi",
der "verdi" er den absolutte verdien i piksler. For eksempel:
Denne rammen har marger øverst og nederst på 5 piksler, og til venstre og høyre - 7 piksler. Husk at vi snakker om marginer her, ikke grenser. Parameterne MARGINWIDTH og MARGINHEIGHT definerer rommet innenfor rammen der ingen informasjon vil bli plassert. Minste akseptable verdi for disse parameterne er én.
Rammer vil automatisk opprette og vise rullefelt hvis innholdet i rammen ikke passer helt innenfor den tildelte plassen. Noen ganger bryter dette utformingen av siden, så det ville være nyttig å kunne kontrollere visningen av rullefelt. SCROLLING-parameteren brukes til disse formålene. Opptaksformat:
.
RULLING-parameteren kan ha tre verdier: YES, NO eller AUTO. AUTO-verdien har samme effekt som om det ikke var noen RULLING-parameter. Verdien JA gjør at rullefelt vises uavhengig av om de er nødvendige, og NEI hindrer dem i å vises. For eksempel:
.
Vanligvis kan brukeren endre størrelsen på rammer mens de ser på siden. Hvis du plasserer musepekeren på rammen, vil markøren få en form som indikerer muligheten for å endre størrelse og tillate deg å flytte rammen til ønsket plassering. Dette bryter noen ganger strukturen til vakkert designede rammer. For å forhindre at brukeren endrer størrelsen på rammer, bruk NORESIZE-parameteren:
.
Denne parameteren krever ingen verdier. Naturligvis, når NORESIZE-parameteren er satt for en av rammene, kan heller ikke størrelsen på noen av de tilstøtende rammene endres. Noen ganger, avhengig av utformingen av rammene, vil bruk av NORESIZE-parameteren på en av rammene være nok til å forhindre at noen av dem endres på skjermen.
stikkord
Muligheten til å jobbe med rammer var ikke inkludert i hverken HTML 3.0- eller HTML 3.2-standarden. Her var det inntil nylig en ganske typisk situasjon når faktisk brukte funksjoner brukes aktivt på mange WWW-sider, men ikke er en del av standarden. Dette betydde at nettlesere legitimt kunne ignorere rammer. Med bruken av HTML 4.0-standarden har situasjonen endret seg - nå er støtte for rammestrukturer nedfelt i standarden. Vær oppmerksom på at de fleste moderne nettlesere gjenkjente rammer allerede før bruken av HTML 4.O. Det er imidlertid nødvendig å gi informasjon til brukere som bruker nettlesere som ikke støtter rammer. For slike nettlesere er det mulig å gi alternativ informasjon som er skrevet mellom et par tagger Og. Det ser slik ut:
hele HTML-dokumentet
Alt plassert mellom tagger Og, vil vises av nettlesere som ikke har rammestøttefunksjoner. Rammebevisste nettlesere vil ignorere all informasjon mellom disse taggene.
Merk at i det virkelige liv bruker HTML-sideutviklere ofte ikke kodens funksjoner å lage sider uten rammestrukturer, men ganske enkelt lage to versjoner av HTML-dokumentene sine. For dette alternativet hjemmeside Vanligvis tilbys du valget mellom å laste et dokument med eller uten rammestruktur. Deretter, avhengig av brukerens valg, lastes bare én versjon av dokumentet.
Funksjoner ved å beskrive rammestrukturer
En av de viktigste taggene som brukes når man beskriver rammestrukturer, er taggen . En tag har en rekke parametere, hvorav ingen er påkrevd eller avhengig av de andre, men det er en rekke ting du bør vurdere når du skriver dem.
Det viser seg at hvis du trenger å lage en ramme som et dokument senere kan lastes inn i, for eksempel ved kommando fra en annen ramme, bør du bruke taggen skriv SRC-parameteren. Hvis dette
parameteren er utelatt, rammen vil ikke bli opprettet, selv om det blir igjen plass til den. For eksempel en plate som er ganske logisk og kan definere en ramme kalt "B" som ikke noe dokument først lastes inn i. Men på grunn av fraværet av SRC-parameteren, vil en ramme med det navnet ikke eksistere, så ytterligere forsøk på å laste et dokument inn i den vil forbli mislykket, og plassen i vinduet som er tildelt for denne rammen, vil være tom. Dessuten vil noen nettlesere (for eksempel Microsoft Internet Explorer versjon 3 for Windows Z.xx) vise en feilmelding og avslutte når de prøver å laste et dokument inn i en slik ramme.
Kravet til å sette SRC-parameteren kan ikke forklares logisk, så det er best å bare legge merke til dette faktum. Deretter, selv om det ikke er noe dokument som må lastes inn i denne rammen helt fra begynnelsen, bør du spesifisere navnet på en fil i SRC-parameteren. For eksempel kan en slik fil kalles empty.htm (tom), hvis innhold vil være et minimum mulig korrekt HTML-dokument, nemlig:
Du kan redusere dette dokumentet til to koder: , som også vil være et gyldig HTML-dokument. Ved å følge banen for å maksimalt redusere størrelsen på et "tomt" dokument, kan du begrense deg til en fil hvis størrelse er lik én byte, som lagrer mellomromstegnet (eller et hvilket som helst annet tegn som ikke kan vises). Denne filen vil ikke være et gyldig HTML-dokument, men vil ikke forårsake problemer med de fleste nettlesere. Ytterligere å redusere størrelsen på en slik fil til null er ikke berettiget, siden når den lastes inn av Netscape-nettleseren, vil den vise en advarsel (fig. 5.4) om at dokumentet ikke inneholder data.
Ris. 5. 4
.
Advarselsmelding ved opplasting av en null-lengde fil
Samtidig, på Denne meldingen du må reagere ved å trykke på en tast eller museknapp. Hver gang dokumentet lastes inn på nytt eller nettleservinduet endres, vil meldingen vises igjen.
Du kan også spesifisere navnet på en ikke-eksisterende fil, men i dette tilfellet vil Netscape-nettleseren vise en advarselsmelding (fig. 5.5), som ikke vil forhindre videre arbeid, men vil føre til lignende ulemper.
Ris. 5. 5
.
Advarsel når du prøver å laste ned en ikke-eksisterende fil
Råd
Lag en fil kalt empty.htm som er én byte stor og inneholder et mellomrom. Gjør det til en regel når du skriver en tag spesifiser alltid SRC=empty.htm hvis det er umulig å umiddelbart spesifisere navnet på en spesifikk fil.
Eksempler på rammer
Denne delen gir noen typiske eksempler på rammedefinisjoner.
La oss gå tilbake til eksemplet gitt i begynnelsen av denne delen (fig. 5.3). Dette eksemplet bruker en nestet struktur
. Ekstern tag oppretter tre rader med høyde, henholdsvis 25, 50 og 25 prosent av den totale høyden til visningsporten:
.
Innenfor dette definisjonsomfanget er den første og siste linjen enkle rammer:
Hver av disse linjene fyller hele bredden av skjermen. Den første linjen øverst på skjermen tar opp 25 prosent av høyden, og den tredje linjen nederst tar også opp 25 prosent av høyden. Mellom dem er det imidlertid en nestet tag
:
Denne taggen definerer to kolonner som den midterste raden på skjermen er delt inn i. Raden som inneholder disse to kolonnene tar opp 50 prosent av skjermhøyden, som definert i den ytre taggen
. Den venstre kolonnen bruker 25 prosent av skjermbredden, mens den høyre kolonnen tar opp de resterende 75 prosentene av bredden.
Rammene for disse kolonnene er definert i et nestet par med tagger
Og, mens definisjonen av rammer for den første og siste linjen er skrevet utenfor dette paret, men innenfor den ytre i riktig rekkefølge.
Poststrukturen er lett å forstå hvis du tenker på den som en nestet blokk
som et eget element . I vårt eksempel, den ytre taggen definerer tre linjer. Hver av dem må fullføres. I dette tilfellet fylles de først med et eget element , deretter - som en nestet blokk to kolonner brede og deretter et annet element .
Nå kan spørsmålet oppstå om verdien av SRC-tag-parameteren kan være angi navnet på filen, som igjen inneholder en beskrivelse av rammestrukturen. Ja, dette er akseptabelt. I dette tilfellet taggen vil bli brukt til å peke på et HTML-dokument som er en rammestruktur og brukes som en egen ramme.
La oss gå tilbake til eksemplet og erstatte det nestede
til en separat . Naturligvis trenger du to HTML-filer i stedet for én, siden nestet vil nå ligge i et eget dokument. Her er innholdet i den første (eksterne) filen:
Nettleseren din kan ikke vise rammer
Den andre filen, kalt frameset.htm, inneholder følgende kode:
I dette tilfellet oppfører topp- og bunnlinjen seg likt. Men den andre linjen er nå en enkel ramme som de andre. Frameset.htm-filen som SRC-parameteren peker på, definerer imidlertid sin egen rammestruktur. Som et resultat vil skjermen vise nøyaktig det samme som i det originale eksemplet.
Merk
Det er i prinsippet mulig å lage nestede strukturer , ved å bruke tagger , som refererer til den samme filen som beskriver rammestrukturen, men dette bør ikke gjøres. Denne situasjonen vil føre til endeløs rekursjon og vil ikke tillate videre arbeid. Noen nettlesere kontrollerer denne situasjonen og forhindrer muligheten for feil. Hvis adressen skrevet til SRC samsvarer med en av de tidligere adressene i rammehierarkiet, ignoreres den, som om SRC-parameteren ikke var til stede i det hele tatt.
Råd
Bruke nestede strukturer i ulike kombinasjoner er det mulig å lage nesten hvilket som helst rammenett du kan tenke deg. Husk imidlertid å lage et brukervennlig grensesnitt og ikke bare demonstrere din evne til å jobbe med rammer.
Her er et eksempel på hvordan du lager et vanlig rektangulært rutenett med rammer:
Dette eksemplet lager et rammenett med to rader og tre kolonner (Figur 5.6). Siden et sett med seks rammer er definert, er det også nødvendig å definere seks individuelle rammer . Vær oppmerksom på at rammedefinisjoner er gitt linje for linje. Det vil si den første taggen definerer innholdet i den første kolonnen i den første raden, den andre definerer innholdet i den andre kolonnen, og den tredje definerer dataene for den siste kolonnen i den første raden. De tre siste rammene fyller deretter kolonnene i den andre raden.
Ris. 5. 6
.
2 x 3 rammer rutenett
Merk også at summen av prosentverdiene i COLS-parameteren ikke er 100, men bare 90 prosent. Det er ingenting galt med dette, siden nettleseren automatisk vil proporsjonalt endre bredden på kolonnene for å eliminere denne motsetningen.
Funksjoner ved navigering ved bruk av rammer
Arbeid med dokumenter som har en rammestruktur har noen funksjoner du trenger å kjenne til. Disse funksjonene til JB er hovedsakelig manifestert i navigasjon når du laster dokumenter. Betydelige forskjeller i navigasjon er karakteristiske ikke bare for forskjellige nettlesere, men også forskjellige versjoner samme nettleser.
Netscape-nettleserversjonene 3.x og 4.x, når du klikker på Tilbake-knappen, returnerer dokumentet tilbake til rammen som sist ble utført. De samme handlingene vil bli utført hvis Tilbake-elementet er valgt når du kaller opp kontekstmenyen i noen av rammene. La oss minne deg på at kontekstmenyen hentes frem ved å klikke med høyre museknapp. Dermed, uavhengig av hvilken ramme kontekstmenyen ble kalt inn, vil et trykk på Tilbake-knappen avbryte den siste operasjonen, selv om den ble utført i en annen ramme.
Netscape 2.x-nettleseren fungerte helt annerledes. Kontekstmenyen inneholder kommandoen Tilbake i ramme, som returnerer dokumentet til gjeldende ramme i stedet for å angre den siste operasjonen.
I enhver versjon av Netscape kan du bokmerke et dokument i en valgt ramme. For å gjøre dette, må du velge Legg til bokmerke-modus fra kontekstmenyen nevnt ovenfor. Hvis du ganske enkelt velger Legg til bokmerke-modus fra hovedmenyen til nettleseren, vil det lages et bokmerke på dokumentet med en beskrivelse av rammestrukturen
, som ikke vil peke nøyaktig til en bestemt ramme. Muligheten til å lage et bokmerke på et dokument med en separat ramme betyr ikke at den samme rammestrukturen vil oppstå når du fortsetter å bruke dette bokmerket. Dokumentet peker på av bokmerket vil bli lastet inn i et fullt vindu utenfor rammestrukturen.
Interaksjon mellom rammer
Den enkleste formen for visning av informasjon på WWW består av å lese sider og følge lenker, der gjeldende dokument i nettleservinduet erstattes av et annet dokument. Når du arbeider med rammer, kan du organisere et mer brukervennlig opplegg for dokumentlasting.
Interaksjon mellom rammer er muligheten til å laste dokumenter inn i den valgte rammen ved hjelp av kommandoer fra en annen ramme. Til dette formålet brukes TARGET-tag-parameteren<А>. Denne parameteren spesifiserer navnet på rammen eller nettleservinduet som dokumentet som denne koblingen peker til, skal lastes inn. Som standard, hvis det ikke er noen TARGET-parameter, lastes dokumentet inn i gjeldende ramme (eller vindu). Denne standarden kan overstyres ved å spesifisere en tag med ønsket verdi av TARGET-parameteren. Det er veldig nyttig å spesifisere navnet på standardrammen som skal lastes inn når et stort antall lenker må dirigere dokumenter til en bestemt ramme. En typisk situasjon med en innholdsfortegnelse i én ramme, lenker som laster tilsvarende dokumenter inn i en tilstøtende ramme, ble vist i begynnelsen av dette kapittelet (Figur 5.1). For dette eksemplet i seksjonen
fil med navnet LIST.htm, er det tilrådelig å skrive følgende linje: . Ellers må du spesifisere en TARGET-parameter for hver lenke.
Rammenavn må begynne med en latinsk bokstav eller tall. Navnet kan være navnet på et eksisterende vindu eller en ramme, eller et nytt navn kan angis som et nytt vindu vil bli åpnet under. Det er fire reserverte navn som utfører spesielle handlinger når de er spesifisert. Disse navnene begynner med en understreking (_): "_blank", "_selv", "_foreldre" og "_top". Ethvert annet navn som begynner med en understrek er ikke gyldig.
TARGET="_blank" - sørger for at dokumentet lastes inn i et nytt vindu. Dette vinduet vil ikke ha et navn, og det vil derfor ikke være mulig å laste inn et annet dokument i det.
TARGET="_selv" - dokumentet vil bli lastet inn i gjeldende ramme (eller vindu). Denne oppføringen skal brukes til å omgå standarden spesifisert av taggen .
TARGET="_top" - fører til at dokumentet lastes inn i hele vinduet. Hvis dokumentet allerede er i et fullt vindu, har denne verdien samme effekt som"_selv".
TARGET="_foreldre" - fører til at dokumentet lastes inn i området som er okkupert av den overordnede rammen til gjeldende ramme. Hvis det ikke er noen overordnet ramme, har denne parameterverdien samme effekt som"_top" .
Merk
Noen HTML-kilder oppgir feilaktig at hvis en ramme ikke har noen overordnet, er verdien "_parent" ekvivalent med "_self". Denne uttalelsen er ikke alltid riktig.
Advarsel
De reserverte rammenavnene "_blank", "_self", "_parent" og "_top" må skrives med små latinske bokstaver. Legg merke til at en slik nøyaktighet er unik for Netscape. Microsoft Internet Explorer gjenkjenner i alle fall reserverte navn som er skrevet.
Her er eksempler på interaksjon mellom rammer og individuelle nettleservinduer. Tenk på følgende HTML-kode:
Bruk av rammer
Dette HTML-dokumentet beskriver en struktur som består av tre rammer kalt "A", "B" og "C". Rammenavn vil være nødvendig senere for å organisere koblinger mellom rammer. Merk at rammen kalt "A" i i dette eksemplet det vil ikke være noen referanser, så det kunne ha stått uten navn i det hele tatt. Når du laster dokumentet ovenfor i en nettleser, vil rammene vise informasjonen i filene identifisert av SRC-parameteren. Ramme "A" vil motta innholdet i frame_a.htm-filen, og de to andre rammene vil motta data fra den tomme.htm-filen, som ikke har noen data å vise. La oss minne deg nok en gang om at HTML-dokumentet som beskriver strukturen til rammer ikke har en del
Dette dokumentet er et komplett HTML-dokument med seksjoner
Og og har på sin side lenker til en fil kalt test.htm, som ligger i samme katalog som filen frame_a.htm.
Teksten til test.htm-filen er ekstremt enkel:
Testdokument
Testdokumenttekst
Filen frame_a.htm, hvis innhold ble lastet inn i ramme "A", har seks lenker til samme fil test.htm med forskjellige verdier for TARGET-parameteren.
La oss vurdere handlingene som vil skje når du implementerer disse koblingene. Den første lenken med verdien TARGET="B" vil laste filen test.htm inn i en ramme kalt "in". Merk at etter å ha implementert noen av de seks lenkene, vil Netscape-nettleseren automatisk farge alle seks i en annen farge, siden de peker til den samme filen. Microsoft Internet Explorer merker kun koblinger som faktisk er implementert.
Den andre lenken vil gjøre det samme for ramme "C". Til å begynne med er det ingenting i rammene "B" og "C" (mer presist, innholdet i den tomme filen empty.htm lastes inn). Implementeringen av den første og andre lenken vil fylle disse rammene.
Den tredje lenken med verdien TARGET=MD" vil føre til dannelsen av et nytt nettleservindu med navnet "D" og laste test.htm-filen inn i den. Merk at formen for å skrive denne lenken ikke er forskjellig fra den første to. Forskjellen er at i den første I to tilfeller ble det gitt referanser til eksisterende rammer, hvis navn ble definert i filen med rammestrukturen, og i dette tilfellet ble referansen gitt til et ikke-eksisterende objekt. denne referansen gjøres minst én gang, deretter opprettes et vindu med navnet "D" og gjentatt klikk på lenken vil kun laste inn dataene på nytt inn i det nå eksisterende vinduet "D". Selvfølgelig kan brukeren lukke det når som helst tid og lag den på nytt ved å velge denne lenken Figur 5.7 viser situasjonen etter at de tre første lenkene er implementert Husk at plasseringen og størrelsene på vinduene på skjermen bestemmes av brukeren.
Ris. 5. 7
.
Situasjonen oppnådd etter sekvensiell implementering av de tre første koblingene tilgjengelig i venstre ramme
Den femte lenken med verdien TARGET="_top" vil laste dokumentet i hele vinduet i stedet for hele rammestrukturen. Med denne verdien av TARGET-parameteren opprettes ikke et nytt vindu. Gå tilbake til rammestrukturen er mulig ved å klikke på Tilbake-knappen.
Merk
Navnene på rammer eller nettleservinduer må ikke forveksles med navnene på nedlastede dokumenter. Navnene på rammene er ikke synlige noe sted når de vises; de kreves bare for å organisere interaksjon og er derfor skjult for brukeren. Du kan bare se dem når du ser på kildeteksten til HTML-filer.
Råd
La oss minne deg på at navnene på nedlastede dokumenter er spesifisert av taggen . Hvis et dokument er lastet inn i et fullt vindu, vises navnet øverst i nettleservinduet. Hvis et dokument er lastet inn i en ramme, vises ikke navnet hvor som helst, og tittelen på dokumentet som inneholder en beskrivelse av dokumentets rammestruktur vil fortsatt være plassert i den øvre delen av vinduet. Derfor er ikke navnene på dokumenter som skal vises i rammer, veldig viktige. For eksempel, i fig. 5.7 det samme dokumentet lastes inn i rammene "B" og "C", samt i et eget vindu kalt "D", mens navnet på dokumentet kun er synlig i vindu "D". Det anbefales imidlertid neppe å utelate navnene på dokumenter som er lastet inn i rammer, da de for eksempel kan vises i bokmerkelisten når du oppretter et bokmerke for et dokument som ligger i en ramme eller liste over viste dokumenter.
La oss se på et annet interessant eksempel på organisering av interaksjon mellom rammer og nettleservinduer. La det være teksten til det hovedlastede HTML-dokumentet:
Bruker vindusnavn
Et dokument med en rammestruktur inn i et nytt vinduА>
Bruk av rammer
Vær oppmerksom på at hvis hoveddokumentet er et standard HTML-dokument, så inneholder frame.htm-filen som er lastet fra en lenke fra hoveddokumentet rammestrukturen og i sin tur lenker til den tomme.htm-filen.
Etter å ha lastet inn hoveddokumentet, vil nettleservinduet se ut som vist i fig. 5.8 (venstre vindu). Hele dokumentet består av to lenker. La oss følge den første lenken. Et nytt vindu vil bli opprettet med navnet "D", der teksten til test.htm-filen vil vises (fig. 5.8, høyre vindu). Å gjenta denne koblingen vil bare laste inn dataene i vindu "D".
Ris. 5.8. Eksempel på samvirkende rammevinduer
La oss følge den andre lenken. Et nytt vindu vil bli dannet uten navn, der frame.htm-filen vil bli lastet inn, som definerer to rammer med navnene "C" og "D" (Fig. 5.8, nederste vindu). Det er ingenting i begge rammer (mer presist, et tomt dokument tomt.htm er lastet inn). Legg merke til at det nå er et åpent vindu kalt "D" og et vindu med rammer, hvorav ett også heter "D". La oss følge den første lenken igjen. I motsetning til det første tilfellet, vil data ikke lastes inn i vindu "D", men i en ramme kalt "D". Resultatet av alle de beskrevne handlingene er vist i fig. 5.8.
Merk
Utseendet til åpne vinduer og deres innhold kan noen ganger til og med avhenge av rekkefølgen på brukerhandlinger. Arbeid med dokumenter hvis oppførsel er vanskelig å forutsi forårsaker vanligvis berettiget irritasjon for brukeren og indikerer mangel på omtenksomhet i datastrukturen hos utviklerne.
Hvis du endrer rekkefølgen på handlinger, dvs. først utfører den andre lenken, og deretter den første, vil vinduet med navnet "D" ikke vises i det hele tatt! Dette vil skje fordi etter implementering av den andre lenken, vil en ramme kalt "D" bli opprettet og det vil ikke være nødvendig å åpne et nytt vindu for den første lenken.
Dette eksemplet er ikke et forbilde i det hele tatt, men viser bare den mulige kompleksiteten ved å organisere samhandling. Tvert imot, du bør prøve å ikke unødvendig komplisere organiseringen av data, langt mindre skape situasjoner der resultatet endres avhengig av rekkefølgen på brukerens handlinger.
Råd
Unngå kollisjoner i ramme- og vindusnavn. Selv om det ikke er formelt forbudt å ha rammer med samme navn, kan det føre til forvirring.
Advarsel
Ramme- og vindusnavn sammenlignes på en måte som skiller mellom store og små bokstaver. Så, for eksempel, rammer kalt "frame_1" og "Frame_1" vil være forskjellige.
Eksempler på mer komplekse interaksjoner mellom rammer
Ganske enkle typiske eksempler på interaksjon mellom rammer ble diskutert ovenfor. Oppgavene med å lage nye vinduer, erstatte innholdet i individuelle rammer, samt vise et dokument i et fullt vindu med ødeleggelse av hele rammestrukturen ble vurdert. Det er gitt eksempler på bruk av egendefinerte rammenavn, samt de reserverte navnene "_blank", "_selv" og "_top". Å bruke det siste reserverte navnet "_parent" er mer komplekst og vil bli beskrevet nedenfor.
Denne delen vil se på mer komplekse alternativer for interaksjon mellom rammer. Spesielt vil utskifting av innholdet i flere tilstøtende rammer gjennomføres.
En av de vanligste bruken av rammer, som allerede er nevnt i dette kapittelet, er tilfellet med to rammer, hvorav den ene inneholder en liste med lenker, og den andre inneholder selve dokumentene (fig. 5.1).
La oss prøve å utvide formuleringen av problemet. Anta at du vil vise innholdet i et ganske stort dokument som består av kapitler delt inn i seksjoner på skjermen. Et typisk eksempel er teknisk litteratur om et bestemt emne. La oss beskrive ønsket presentasjon av et slikt dokument på skjermen. La oss dele skjermen inn i tre rammer, hvorav den ene vil inneholde en liste over bokkapitler, den andre - en liste over deler av det valgte kapittelet, og den tredje - teksten til den valgte delen. Når du velger en kobling i den andre rammen, bør innholdet i den tredje rammen endres. Implementeringen av dette kravet er triviell. Når du velger en kobling i den første rammen, bør innholdet i både den andre og tredje rammen endres samtidig. Ved første øyekast er det umulig å implementere denne oppgaven i HTML (uten å bruke programmering i JavaScript eller andre), siden når en kobling utføres, lastes bare ett dokument, og ikke to eller flere. Likevel er det fullt mulig å løse dette problemet.
La oss vise en mulig løsning på et slikt problem ved å bruke et enkelt eksempel. Anta at du vil vise tre rammer på skjermen og laste inn noen dokumenter i dem. La oss sette oppgaven med å lage lenker i hver av disse rammene, hvor implementeringen for eksempel byttet ut innholdet i to rammer. La den første rammen ta opp 50 % av vinduets bredde og 100 % av høyden og plasser den på venstre side av vinduet. Høyre halvdel av vinduet er også delt horisontalt i to og inneholder to andre rammer. Denne strukturen er beskrevet av følgende kode:
Ved å bruke denne HTML-koden vil den nødvendige strukturen bli opprettet, men å løse problemet er umulig. Det er nødvendig å fjerne den nestede strukturen
inn i en egen fil, og i denne HTML-koden beskrive en ramme som refererer til den opprettede filen. Da vil teksten i kildedokumentet se slik ut:
Eksempel på interaksjon mellom rammer
Laget fil med nestet struktur
har navnet 1_2.htm og inneholder følgende kode:
1-2
Ved første øyekast har ingenting endret seg. I begge tilfeller er det tre rammer som dokumentene left.htm, 1.htm og 2.htm lastes inn i. Men når rammene samhandler, vil forskjellen vises. Hvis i det første tilfellet ingen av rammene har en overordnet ramme, vil overordnet i det andre tilfellet for to rammer være en ramme kalt "Two_Frames". Derfor, hvis du i noen av to rammer bruker en kobling med en TARGET-parameterverdi lik "_parent", vil resultatet være forskjellig for det første og andre tilfellet. For det første tilfellet vil implementering av en slik kobling laste dokumentet inn i et fullt vindu, og erstatte den eksisterende rammestrukturen. Det er her "_parent"-verdiegenskapen kommer inn i bildet, som fungerer som "_top" i fravær av en overordnet ramme. I det andre tilfellet vil en ramme kalt "Two_Frames" erstattes, som opptar høyre halvdel av skjermen og i hovedsak består av to rammer.
Det andre tilfellet skiller seg formelt fra det første også ved tilstedeværelsen av en ramme kalt "Two_Frames" som det kan refereres til. Det er nettopp denne funksjonen som vil tillate oss å løse problemet.
Her er innholdet i left.htm-filen, som først lastes inn i den første av rammene som vurderes:
Venstre ramme
dokumenter i to rammer plassert på høyre side av vinduet.
Vær oppmerksom på at teksten til filene 1_2.htm og 2_1.htm bare er forskjellige i rekkefølgen på lenker til filene 1.htm og 2.htm.
La oss nå vurdere konstruksjonen av et dokument som er lastet inn i venstre ramme. Den inneholder to lenker med parameteren TARGET="Two_Frames". Implementeringen av en av disse koblingene skaper to rammer på stedet for "Two_Frames"-rammen (dette er høyre halvdel av skjermen), og laster inn dokumenter 1.htm og 2.htm i en eller annen rekkefølge. Når du velger alternativ 1-2, blir dokument 1.htm lastet inn i øvre høyre ramme, og 2.htm i nedre høyre ramme. Når du velger alternativ 2-1, endres rekkefølgen på dokumentene. Som et resultat skaper det vekslende utvalget av alternativer et inntrykk av at dokumentene i de to rammene bytter plass. Det er akkurat denne effekten vi søkte å oppnå (fig. 5.9).
Innholdet i dokumentene 1.htm og 2.htm har ingen betydning for det beskrevne eksemplet. Men for eksempel, i stedet for trivielle dokumenter, vil vi lage dokumenter med lenker som implementerer de samme handlingene.
Tekst til fil 1.htm:
Dokument 1
Dokument 1
Alternativ 1 -2
Alternativ 2-1
Fil 2.htm skiller seg fra 1.htm bare i overskriften.
Det er to lenker med verdien TARGET="_parent" som peker til den overordnede rammen. Disse koblingene kan også skrives med et eksplisitt navn på den overordnede rammen, dvs. TARGET="Two_Frames", men å bruke et implisitt navn er vanligvis mer praktisk. For eksempel, hvis du ekskluderer koblinger fra venstre ramme (dokument left.htm), kan du utelate rammenavnet "Two_Frames" spesifisert når du beskriver hovedrammestrukturen. Dette vil skape en ramme uten navn, men koblingene fra dokumentene 1.htm og 2.htm med TARGET="_parent" vil fortsatt fungere korrekt.
Råd
Når det er mulig, bruk implisitt rammenavn. For eksempel "foreldre", "topp", "selv" i stedet for å spesifisere spesifikke navn.
Ris. 5.9. Samvirkende rammevinduer med effekten av å endre innlastede dokumenter
Forskjellen mellom rammer og nettleservinduer
Når du arbeider med rammer, oppstår spørsmålet om den grunnleggende forskjellen mellom å organisere rammestrukturen til et nettleservindu og å lage flere vinduer. Ved første øyekast kan det virke som om du kan klare deg med muligheten til å lage flere vinduer, siden arbeid med vinduer og rammer er veldig likt. Hver ramme krever at et separat dokument lastes inn, har muligheten til å rulle innhold uavhengig, og kan endres med kommandoer fra andre rammer. Disse egenskapene til rammer er lik egenskapene til nettleservinduer. Med en tabellbasert organisering av data er det umulig å oppnå en slik handlefrihet.
Det er imidlertid en betydelig forskjell mellom rammer og vinduer. Med rammeorganisering utføres inndelingen av visningsområdet i rammer av selve HTML-dokumentet, som indikerer dimensjonene og deres plassering. Ved visning kan brukeren endre størrelsen på rammer, med mindre dette er forbudt i beskrivelsen av deres struktur. Arrangementet av vinduer bestemmes av de generelle reglene for å jobbe med Windows-systemet - brukeren kan utvide et hvilket som helst vindu til full skjerm, minimere det til et ikon eller vilkårlig angi størrelse og plassering. Vinduer, i motsetning til rammer, kan overlappe hverandre. Denne rikdommen av valg har sin ulempe - du må manuelt plassere vinduer på skjermen hver gang og endre størrelsen på dem for å oppnå det optimale visningsalternativet. Når det gjelder rammer er det optimale størrelsesforholdet vanligvis spesifisert av utvikleren i beskrivelsen av rammestrukturen og trenger ofte ikke endres.
Råd
Selv om rammer ikke kan gi alle mulighetene for å jobbe med individuelle vinduer, vil deres rasjonelle organisering skape maksimal bekvemmelighet for brukeren.
Arbeid med vinduer har også andre ulemper. Å lage hvert vindu krever mye minne. I Netscape er hvert vindu egentlig en annen kopi av nettleseren, komplett med et komplett sett med knapper og menyer. Den samme situasjonen er typisk for Microsoft Internet Explorer.
Merk at organiseringen av individuelle vinduer i nettlesere gjøres annerledes. Å lage et nytt vindu med et dokument resulterer i at det vises en egen oppgave i Windows-systemet, som du kan se når du ser på listen over kjørende oppgaver. Derfor kan bytte mellom vinduer gjøres på samme måte som å bytte mellom ulike oppgaver, for eksempel ved å trykke på en hurtigtast +.
Mange populære Windows-applikasjoner har konseptet med et dokumentvindu. Eksempler inkluderer Microsoft Word-tekstbehandleren eller grafikkprogrammet Paint Shop Pro og mange andre. Hver av disse applikasjonene tillater samtidig bruk av flere vinduer med data, og som regel er det en Vindu-meny som gir en liste over vinduer og gir muligheten til å bytte mellom dem. Opprettelsen av et nytt vindu i slike applikasjoner skjer vanligvis når du åpner en eksisterende fil eller oppretter en ny. Men i disse programmene, når et nytt vindu opprettes, opprettes ikke en ny kjørende oppgave.
Netscape har også en Vindu-meny som viser eksisterende vinduer. (I Netscape 4.x-versjoner leveres denne funksjonen av Vindu-elementet på Communicator-menyen.) La oss gå tilbake til Fig. 5.8. I dette eksemplet er tre vinduer åpne samtidig, som hver i hovedsak er en separat nettleser. Men for brukeren er de alle vinduer i samme nettleser som kan samhandle med hverandre. I hvilket som helst av disse vinduene kan du åpne Vindu-menyen og se en liste over tre vinduer. I fig. Figur 5.10 viser situasjonen når dette er gjort for det nederste vinduet.
Ris. 5.10.Åpne Frame Windows i Netscape-nettleseren
Hvert vindu kan lukkes separat (ved å bruke Lukk-kommandoen fra Fil-menyen). For å fullføre arbeidet med nettleseren i et hvilket som helst vindu, kan du åpne Fil-menyen og velge Avslutt (Fig. 5.11).
Hvis flere vinduer var åpne, vil alle lukkes, men før dette vises en varselmelding (Fig. 5.12).
Hvert nettleservindu kan ha sine egne innstillinger (men ikke alle). Se på fig. 5.11. To vinduer er åpne, hvorav det ene er delt i tre rammer. Det samme dokumentet er lastet i to av de tre rammene, samt i et eget vindu. Muligheten til å konfigurere parameterne for hvert vindu uavhengig lar deg vise det samme dokumentet annerledes. I eksemplet ovenfor er skriftstørrelsen på dokumentet i det ene vinduet større enn i det andre. Denne effekten oppnås ved å angi forskjellige kodinger for hvert vindu (dokumentkoding-elementet i Options-menyen eller Character Set-elementet i View-menyen for versjon 4.x), med begge kodingene som bruker samme font, men av forskjellige størrelser. Å endre et hvilket som helst element i menyen Generelle innstillinger påvirker alle vinduer.
Ris. 5.11. Avslutte Netscape-nettleseren
Ris. 5.12. Advarsel om lukking av vinduer i Netscape-nettleseren
Ytterligere nettleserfunksjoner
Alle de ovennevnte rammebeskrivelsestaggene med de tilsvarende parameterne implementeres nesten identisk i Netscape- og Microsoft Internet Explorer-nettleserne, men hver av disse nettleserne lar deg i tillegg bruke sine egne unike koder eller parametere.
Netscape-nettleserfunksjoner
Netscape-nettleseren, som starter med versjon 3.0, tillater tre tilleggsalternativer: BORDER, RAMEBORDER og BORDERCOLOR. BORDER-parameteren gjelder bare for taggen
. Verdien til BORDER-parameteren bestemmer tykkelsen på grensene mellom rammer i piksler.
Parameteren FRAMEBORDER kan brukes både i taggen
, og i taggen og bestemmer tilstedeværelsen av en ramme mellom rammer. Denne parameteren kan være Ja eller NEI. Hvis parameteren er skrevet i taggen , så gjelder effekten for alle rammer i denne gruppen. For en individuell ramme kan verdien overstyres. Standardverdien er Ja.
Legg merke til at BORDER- og FRAMEBORDER-parameterne fungerer uavhengig av hverandre. For eksempel, hvis RAMEBORDER er satt til NO og BORDER er satt til en annen verdi enn null, vil ikke grensen mellom rammene bli tegnet, men plassen spesifisert av BORDER-parameterverdien vil fortsatt bli tildelt den.
BORDERCOLOR-parameteren kan brukes som i taggen
, og i taggen og definerer kantfargen, som kan spesifiseres av fargenavnet eller dens heksadesimale representasjon.
Her er et eksempel:
Den første linjen i denne HTML-koden spesifiserer tre rammer, med mellomrom mellom dem for en 10-piksler tykk ramme (Figur 5.13).
Ris. 5.13. Tegne grenser mellom rammer i Netscape-nettleseren
Mellom rammevinduene "A" og "B" tegnes ingen ramme på grunn av NO-verdien til RAMEBORDER-parameteren, men fargen rød er definert for rammen. For den siste rammen "c" settes RAMEBORDER-verdien til Ja og overstyrer verdien satt på den første linjen. Derfor, mellom rammene kalt "B" og "C", vil en rød ramme med en tykkelse på 10 piksler fortsatt tegnes.
Merk
Hvis grenser mellom rammer ikke er tegnet, vil ikke Netscape-nettleseren tillate størrelsen på rammer ved å dra dem med musen, selv uten NORESIZE-parameteren. For Microsoft Internet Explorer er situasjonen annerledes.
Merk at rammer uten rammer ikke brukes veldig sjelden. Det bør huskes at fraværet av rammer ikke forhindrer utseendet på rullefelt (fig. 5.14).
Ris. 5.14. Rullefelt i ramme uten rammer
Microsoft Internet Explorer-nettleserfunksjoner
Microsoft Internet Explorer-nettleseren lar deg bruke parameteren FRAMEBORDER til samme formål som beskrevet ovenfor, men lar deg ikke angi fargen og tykkelsen på rammene. Imidlertid kan bare den numeriske verdien "O" brukes som en verdi for parameteren FRAMEBORDER for å avbryte tegning av en ramme, eller en numerisk verdi som ikke er null for å tegne en ramme.
Forskjellen i reglene for å angi verdiene til FRAMEBORDER-parameteren for forskjellige nettlesere er veldig ubehagelig. Prøv for eksempel å sette FRAMEBORDER=Ja. Denne oppføringen er riktig for Netscape, men for Microsoft Internet Explorer vil det resultere i fravær av en ramme. Det forrige eksemplet (fig. 5.13) når det vises i Microsoft Internet Explorer vil bli presentert uten en ramme.
Råd
Det anbefales alltid å skrive verdien til parameteren RAMEBORDER i numerisk form, for eksempel RAMMEBORDER=0. Dette følger reglene for å skrive en parameter for Microsoft Internet Explorer, men bryter reglene for Netscape (selv om det oppfattes riktig av sistnevnte).
Merk
Hvis rammene mellom rammer ikke er tegnet, vil Microsoft Internet Explorer-nettleseren (i motsetning til Netscape), i fravær av NORESIZE-parameteren, tillate deg å "berøre" endre størrelsen på rammene ved å dra rammene med musen. Du kan finne stedet der rammen skal være ved å endre formen på musepekeren.
Microsoft Internet Explorer-nettleseren tillater bruk av en ekstra FRAMESPACING-parameter skrevet i taggen
, hvis verdi bestemmer antall piksler mellom bilder som skal stå tomme.
La oss gi et eksempel, hvis visningsresultat er vist i fig. 5.15.
Endre avstanden mellom rammer
Ris. 5.15. Tom plass mellom rammer i Microsoft Internet Explorer
Merk
Dessverre oppgir mange HTML-språkbeskrivelser feilaktig at parameteren FRAMESPACING må brukes i taggen . Microsoft Internet Explorer tillater bare at denne parameteren brukes i en tag .
Flytende rammer
Microsoft Internet Explorer-nettleseren tillater bruk av en unik kode
I tillegg kan følgende tilleggsparametere brukes til å angi posisjonen og størrelsen på den flytende rammen i dokumentet: WIDTH, HEIGHT, HSPACE, VSPACE, ALIGN. Deres formål og bruksrekkefølge faller sammen med de tilsvarende parameterne for innebygde bilder, som er spesifisert av taggen .
Her er et eksempel på bruk av flytende rammer:
Bruke flytende rammer
Et eksempel på bruk av konseptet flytende rammer
СЕМТЕК>
Nettleseren din tillater ikke visning av flytende rammer
Microsoft Internet Explorer er den første nettleseren (og så langt den eneste) som støtter såkalte «flytende» rammer.
Disse rammene kan plasseres hvor som helst på skjermen, akkurat som grafikk og tabeller.
Rammen til høyre for denne teksten plasseres på siden ved hjelp av en spesiell tag . Høyrejustering ble spesifisert da rammen ble opprettet.
Resultatet av å vise dette eksemplet med Microsoft Internet Explorer-nettleseren er vist i fig. 5.16. Nettlesere som ikke støtter konseptet med flytende rammer vil, for dette eksempelet, i stedet for å vise innholdet i float.htm-dokumentet, vise teksten "Din nettleser tillater ikke å vise flytende rammer."
Ris. 5.16. Flytende ramme i Microsoft Internet Explorer
Legg merke til at konseptet med flytende rammer ligner i ideologi på innebygde bilder eller tabeller. Her er enda et HTML-dokument helt innebygd på ønsket sted i HTML-dokumentet.
Råd
Foreløpig er bruken av flytende rammer begrenset til en enkelt nettleser - Microsoft Internet Explorer versjon 3.0 og høyere. Vær oppmerksom på at brukere av andre nettlesere (spesielt Netscape) ikke vil kunne se innholdet i iframes.
Verktøy for å lage dokumenter som inneholder rammer
Et HTML-dokument som inneholder rammer, som ethvert annet dokument, kan opprettes eller redigeres manuelt ved å bruke et hvilket som helst tilgjengelig tekstredigeringsprogram. De fleste spesialiserte HTML-redigerere har enten ikke visuelle innrammingsmuligheter eller har svært begrensede muligheter. Det er flere spesialredigerere som er fokusert på å lage rammer. La oss kort beskrive egenskapene til noen av dem.
FrameGang frame editor
En slik redaktør er FrameGang-verktøyet, utviklet av det australske selskapet Sausage Software, som er bedre kjent for sin populære HTML-editor HotDog.
Informasjon om dette programvareproduktet kan fås på http://www.sausage.com, samt fra samlingen av programvareprodukter for Internett (på http://www.tucows.com eller en hvilken som helst annen av flere dusin speilservere spredt rundt i verden).
FrameGang-verktøyet er et tillegg til enhver HTML-editor eller vanlig tekstredigerer som kjører i Windows-miljøet, som lar deg visuelt designe den nødvendige rammestrukturen og deretter generere den tilsvarende HTML-koden. Den resulterende HTML-koden kan overføres til HTML-editoren via Windows-utklippstavlen (utklippstavlen). FrameGang-programmet lar deg raskt bygge ønsket rammestruktur.
La oss se på programmets muligheter. Etter å ha installert dette programmet i Windows og startet det, blir du bedt om å velge en av to mulige rammestrukturer på det første (øverste) nivået - kolonnearrangement av rammer (kolonner) eller radvis (rader), og også bestemme antallet. I fremtiden kan hver av rammene på første nivå, om nødvendig, deles inn i flere rammer på andre nivå. Et større antall rammenivåer er ikke gitt, men dette er ikke en vesentlig begrensning, siden det i praksis sjelden brukes mer enn to nivåer.
Som et eksempel, la oss velge fire rammer ordnet i kolonner. Deretter bør du lage en struktur av andre nivå rammer, som gjøres ved å dele eksisterende rammer i motsatt retning. For dette eksemplet kan rammer bare deles horisontalt. Opprettelsen av rammer på andre nivå utføres i menyelementet Legg til, hvis implementering legger den neste rammen til den gjeldende.
Vær oppmerksom på at morsomme bilder i rammer ikke har noen betydning og tjener bare til å fylle tomrom. Tegningen deres kan kanselleres i Alternativer-menyen. Vi legger også merke til at selve navnet på produsenten (pølse - pølser) og navnet på noen av programvareproduktene deres (HotDog - trenger ikke oversettelse) bestemte grensesnittstilen til denne pakken - i mange menyelementer er det et bilde av pølser .
Etter å ha definert strukturen til rammene, må du angi størrelsene deres. Dette gjøres ved ganske enkelt å flytte rammene til rammene med musen på samme måte som man gjør for å endre størrelsen på Windows-vinduer. De angitte dimensjonene for gjeldende ramme vises i prosent i vinduene som heter Bredde og Høyde. Hvis du trenger å angi rammestørrelser ikke i prosenter, men i piksler eller relative enheter, må du endre den resulterende HTML-koden manuelt utenfor FrameGang-programmet.
Deretter må du for hver ramme angi navnet (navn), som kan utelates, URL-en til dokumentet som opprinnelig ble lastet inn i denne rammen (Ramme-URL), og også velge verdien for parameteren Resizeable Frame Border og rulleparameteren for innholdet i rammen (Rammerulling).
Du kan når som helst se rammestrukturen som opprettes i den valgte eksterne nettleseren uten å forlate FrameGang-programmet. Forhåndsvisning-knappen brukes til dette. Innstilling av nettlesernavn gjøres i Alternativer-menyen. Etter å ha angitt alle parameterne, bør du generere HTML-kode som tilsvarer den valgte rammestrukturen, som vil bli skrevet til Windows-utklippstavlen (HTML Compile-knappen). Den resulterende koden kan limes inn fra utklippstavlen til ønsket sted i HTML-filen når du arbeider i et hvilket som helst redigeringsprogram.
Lagre og Åpne fil-knappene lar deg lagre og lese filen kun i en spesiell koding som er spesifikk for FrameGang-programmet og ikke beregnet for annen bruk.
Nedenfor er HTML-koden generert av FrameGang for eksempelet beskrevet:
For å få et korrekt HTML-dokument, er det nok å omslutte den resulterende koden mellom tagger Og. Du kan legge til en dokumentoverskriftsseksjon
, for å definere de nødvendige dataene, for eksempel tittelen på dokumentet (husk at tittelen på dokumentet er skrevet mellom taggene Og). Merk at moderne nettlesere kan fungere korrekt selv om noen av de nødvendige kodene mangler. Hvis HTML-koden ovenfor er lagret som en fil med riktig filtype, selv uten å legge til noen tagger, vil både Netscape Navigator og Microsoft Internet Explorer kunne vise dokumentet riktig.
FrameGang-programmet lar deg designe rammer visuelt, er ganske praktisk og enkelt å bruke, men er ikke uten noen ulemper. Spesielt er det ingen måte å spesifisere størrelsen på rammer ved å skrive de nødvendige tallene i vinduene Bredde og Høyde, siden de bare viser størrelsene som er angitt når du flytter rammegrensene med musen. De generelt aksepterte rammeparametrene MARGINWIDTH og MARGINHEIGHT er ikke angitt. Det er ingen måte å skrive en fil i tekstformat til disk, noe som gjør det umulig å bruke dette programmet offline.
Frame-It frame editor
En annen spesialisert rammeredigerer er Frame-It, informasjon om dette kan finnes på:
http://www.iinet.net.au/~bwh/frame-it.html
Å jobbe med dette programmet ligner på mange måter det forrige. Først må du bestemme den grunnleggende strukturen til rammer og deres antall. Deretter er hver ramme, om nødvendig, delt inn i flere, og danner strukturer på andre nivå. Akkurat som det forrige programmet, er antallet rammenesting-nivåer begrenset til to.
For hver ramme settes alle nødvendige parametere ved å fylle ut de aktuelle feltene. I motsetning til det forrige programmet, er det mulig å angi verdiene til parameterne MARGINWIDTH og MARGINHEIGHT. I tillegg har Invisible Frame Borders-flagget blitt introdusert, som, når den er satt, genererer følgende kodefragment:
FRAMEBORDER="NO" BORDER="0" FRAMESPACING="0".
Etter å ha angitt de nødvendige rammeparametrene, kan du lagre den genererte HTML-koden til en fil eller skrive den til Windows-utklippstavlen. Den genererte koden vil inneholde ikke bare en beskrivelse av rammestrukturen, men også en startkode , samt et par tagger Og, som informasjon skrives mellom, beregnet på nettlesere som ikke viser rammer.
For et spesifikt eksempel vil følgende kode bli generert:
FRAMESACING="0">
med rammestruktur
Hvis du i dette eksemplet fjerner merket for Invisible Frame Borders, vil den genererte koden endres betydelig:
scrolling=auto noresize>
scrolling=auto noresize>
scrolling=auto noresize>
scrolling=auto noresize>
scrolling=auto noresize>
Nettleseren din kan ikke vise dokumenter
med rammestruktur
Informasjon om bruk av rammer på WWW
For informasjon om rammer kan du se følgende adresser på WWW:
Hvordan sette inn en side i en HTML-side? For å gjøre dette må du bruke , som oppretter en innebygd ramme i gjeldende dokument som viser et annet HTML-dokument.
Vise
Visningsblokk.
Eksempelkode
Kraftig, men likevel enkel å bruke
Tilbake i de dårlige gamle dager var det mye webdesign elementer som ødelegger livet til enhver utvikler. De var nesten alltid en dårlig designtilnærming. Heldigvis element har blitt avviklet i HTML5. Men eller " innebygd ramme» er fortsatt tilgjengelig. Vil det bli avviklet i neste versjon? Kanskje vi bør unngå det? Det er flere gyldige bruksområder for dette elementet når du oppretter en HTML-side. Men du må forstå hva det er og hvordan det fungerer for å unngå feil.
Likheter og ulikheter Og
Begge disse elementene lar deg lage et separat HTML-dokument. En lenke til innholdet i dokumentet som den gjeldende nettsiden refererer til, er spesifisert i src-attributtet.
. . . . . .
Hovedforskjellen mellom Og tingen er sikrer overholdelse av regelen om at HTML-dokumentet er en prioritet. Innhold vises inne i et element som er en del av det gjeldende dokumentet. Som et eksempel kan du vurdere denne innebygde videoen hentet fra YouTube:
Videoen er tydelig på HTML-siden og ikke i et eget panel. element brøt dette paradigmet og tillot dokumentet å utøve kontroll over nettleservinduet, og delte det opp i flere små paneler (rammer), som hver viser et separat dokument. Alle andre forskjeller mellom og følger av denne grunnleggende forskjellen.
Ikke lag om rammebaserte oppsett med iframes
En dag kan du stå overfor oppgaven med å oppdatere et gammelt nettsted som ble bygget med rammer. Det kan være lurt å bruke og en fast layoutbredde for å gjenskape det samme marerittet med uavhengige paneler og terskler. Men du vil ikke kunne bruke target-attributtet til å åpne en lenke i en egen ramme. Du kan begynne å lete etter JavaScript-løsninger. Ikke gjør det er du snill.
Gode (og forferdelige) bruksområder
Det er flere gyldige brukstilfeller for å lage en HTML-side:
innebygging av tredjeparts medieinnhold;
bygge inn ditt eget medieinnhold gjennom et dokument på tvers av plattformer;
eksempler på innbyggingskode;
innebygging av tredjeparts "applets" som betalingsmåter.
Her er noen forferdelige brukstilfeller: :
Bildegalleri;
forum eller chat.
Hvis du trenger å bygge inn uavhengige, eksisterende HTML-dokumenter i det gjeldende, bruk . Hvis du bygger alt fra bunnen av, er det ingen grunn til å dele sidedesignet i flere separate dokumenter. Spesielt hvis de faktisk ikke er uavhengige deler av innhold.
Angir en rekke restriksjoner på innholdet som lastes inn i rammen. Sett før hvordan lage en HTML-side.
rulling
ja nei auto
Bestemmer om ruller skal vises i rammen eller ikke. Avviklet i HTML5. Bruk CSS i stedet.
Navn
Navn
Angir navnet på rammen.
Tilpasse
venstre høyre øverst midt nederst
Bestemmer rammens justering i forhold til omkringliggende elementer. Er utdatert. Bruk CSS i stedet.
ramme grense
ja (eller 1) Nei
Brukes for å aktivere visning av en kant rundt rammen. Avviklet i HTML5. Bruk CSS i stedet.
longdesc
URL
Brukes til å spesifisere URL-en til en side som inneholder en lang beskrivelse av innholdet i rammen. Er utdatert. Bruk CSS i stedet.
margbredde
piksler
Brukes til å kontrollere bredden på polstringen fra innholdet til rammekanten. Er utdatert. Bruk CSS i stedet.
src
URL
Angir dokumentets URL som skal vises i IFRAME.
vspace
piksler
Angir de vertikale margene fra rammen til det omkringliggende innholdet. Er utdatert. Bruk CSS i stedet.
bredde
piksler %
Definerer bredden på rammen på en HTML-side.
Denne publikasjonen er en oversettelse av artikkelen " ", utarbeidet av det vennlige prosjektteamet
Hei, kjære lesere av bloggsiden. I dag skal vi snakke om rammer i HTML. Det er klart at vi starter fra begynnelsen, nemlig med hva slags dyr dette er. Vi vil også snakke om nåtiden (Frame) og fremtiden (Iframe) til disse elementene i den nåværende versjonen av hypertekst-markeringsspråket og i den nye HTML 5-standarden med .
På slutten av artikkelen, etter en detaljert beskrivelse av prosessen med å lage innebygde rammer og deres klassiske struktur i HTML-kode (allerede sjelden brukt), vil vi berøre relevansen av å bygge et nettsted på dem, og også diskutere mulige måter å bruke dem på i den nåværende tidsperioden ved å bruke eksemplet på bloggen min.
Hva er det og hvordan skiller Iframe seg fra Frame?
Hva er det? Det viser seg at de ikke bare kan brukes på nettsteder, men også i alle applikasjoner til programmer, men de er forskjellige ved at vinduet til en nettside eller applikasjon vil bli delt inn i flere områder, hvor et separat dokument lastes inn i hvert. . Dessuten oppfører disse rammeområdene seg uavhengig av hverandre.
Sannsynligvis det mest åpenbare eksemplet på deres bruk, som nesten alle dere har møtt, er de såkalte hjelpefilene som mange programmer installert på datamaskinen din har.
Filen med hjelpemenyen lastes inn i venstre vindu, og dokumentet som tilsvarer det valgte menyelementet vises i høyre vindu. Det er bemerkelsesverdig at denne strukturen lar deg ikke laste inn filen på nytt med menyen i venstre vindu når du åpner et nytt dokument i det høyre. Det er nettopp dette den består av hovedfordelen med å bruke rammer i HTML.
Egentlig bør selve navnet på disse elementene tolkes som et uavhengig vindu. Ved hjelp av rammer har vi mulighet til å dele opp ett stort vindu i flere fragmenter, som igjen kan fungere som mottakere for separate dokumenter uavhengig av hverandre (sider, tekster, bilder, videoer osv.).
Hvordan lages en rammestruktur i hypertekst-markeringsspråk? Hvis vi snakker om Html 4.01-standarden (i henhold til klassifiseringen), som er den viktigste på det nåværende tidspunktet, brukes tre elementer for dette - Frame, Frameset og Noframes.
Iframe - innebygd ramme i HTML 5-standarden
Hvis vi snakker om HTML 5-standarden (fremtiden vår, hvorav noen elementer allerede støttes av mange nettlesere), vil det ikke være noen Frame-, Frameset- og Noframes-tagger, så vel som den klassiske rammestrukturen; i stedet vil det være en enkelt Iframe-tag (innebygd ramme) , som vi skal snakke om i begynnelsen, og deretter vil vi rette oppmerksomheten mot det klassiske opplegget fra versjon 4.01, som faktisk er i bruk nå.
Iframe, i motsetning til klassikerne diskutert nedenfor, krever ikke at Body-taggen erstattes med Frameset-tagger. De. denne taggen kan settes inn på vanlige sider, for eksempel i et avsnitt eller andre steder. I kjernen er dette elementet veldig likt Img-taggen vi allerede har vurdert.
Det er et innebygd element med utskiftbart innhold fordi det oppfører seg nøyaktig som et innebygd element, men det vises eksternt innhold. Det er bare fire slike elementer i HTML-språket - Img, Iframe, Object og Embed. Derfor innebærer helten vår tilstedeværelsen av en ekstern fil som vil bli lastet inn i et område hvis størrelse er satt ved hjelp av attributtene til denne taggen.
At. En iframe er et synkeelement der et eksternt objekt (for eksempel en video) lastes inn. Og for å indikere banen til denne filen, som skal lastes inn på siden, bruk den spesielle Src-attributten. Men i motsetning til Img er Iframe-elementet paret, dvs. det er også en lukkelapp:
Dette eksemplet viser utdataene på en YouTube-videoside ved hjelp av en iframe. For å begrense området av rammen (vinduet) der den eksterne filen skal lastes, er attributter gitt Bredde og Høyde, hvis verdier er spesifisert i piksler:
De. denne taggen oppretter et område der et eksternt objekt lastes inn (det spiller ingen rolle om det er fra nettstedet ditt eller fra en annen ressurs). Bredden og høyden til området spesifiseres ved hjelp av Width og Height, og Src-attributtet spesifiserer banen til dette objektet.
Iframe-elementet arvet alle disse attributtene fra lignende innebygde tagger med erstattet innhold (slik som Img allerede nevnt ovenfor). Vel, han tok også attributter fra bildene Hspace og Vspace, som lar deg sette innrykk fra rammens kant til teksten som går rundt den.
Det er også betydelig at justeringen av den innebygde rammen utføres på nøyaktig samme måte som vi kunne se når vi studerer bilder i Html - . Alt det samme Tilpasse, men for Iframe-taggen med mulige verdier Bottom, Top, Middle, Left og Right.
Men dette elementet tok også flere attributter fra Frame-taggen fra den klassiske rammestrukturen, som vi vil snakke om i detalj nedenfor i teksten. Disse attributtene inkluderer Navn, hvis verdi kan brukes som en verdi slik at dokumentet du trenger når du klikker på en lenke åpnes i vinduet i denne rammen (les mer nedenfor).
Også i Iframe migrerte Frameborder-attributtet fra Frame-taggen, som bare har to verdier - enten 0 (rammen rundt rammen vises ikke) eller 1 (rammen er synlig). Standardverdien er Frameborder=1, så for å fjerne den må du skrive inn Frameborder="0":
Scrolling-attributtet har også blitt overført fra Frame til dette elementet, som har en standardverdi på Auto - rullefelt i rammen vil vises etter behov når innholdet er større enn størrelsen på vinduet som skal vise det.
Vel, Marginwidth og Marginheight-attributtene flyttet også fra Frame-elementet. De vil bli diskutert i detalj nedenfor i teksten, men i et nøtteskall - de lar deg stille inn fordypningen i bredde og høyde fra kantene på rammen til innholdet som er plassert i den.
Som jeg allerede har nevnt, er et tydelig eksempel på bruk av en iframe:
Ved å sette inn en iframe direkte på en nettside, vil du motta en utgang av en video fra YouTube. Vi konkluderer med at dette elementet er en krysning mellom inline-elementer med erstattet innhold og faktisk klassiske rammer, som vi nå skal diskutere.
Rammer basert på Frame- og Frameset-tagger - deres struktur
Så, å lage en klassisk rammestruktur begynner med det du skriver i HTML-koden i stedet for den åpne og avsluttende Body-taggen, som vanligvis skal være til stede i ethvert dokument, og erstatter den med en elementbasert beholder Rammesett.
Det grunnleggende poenget er at Body-elementet ikke kan brukes i dette tilfellet - verken Body (for et vanlig dokument) eller Frameset (når du oppretter en dokumentrammestruktur):
Hver ramme som vi lager inne i den viktigste er laget ved hjelp av et eget element Ramme. Denne taggen er enkel og i den setter vi banen til dokumentet som skal lastes inn i dette vinduet.
Det tredje elementet som vi ennå ikke har berørt er Ingen rammer. Den er sammenkoblet og lar deg skrive litt tekst inni, som vil bli behandlet av nettleseren og vist på en nettside bare hvis den samme nettleseren (eller annen visningsenhet) ikke støtter rammer. Dette kan for eksempel skje hvis du bruker en nettleser for mobile enheter.
Vanligvis legger Noframes ikke bare til informasjon om den nåværende situasjonen med umuligheten av å behandle rammestrukturen, men legger også til muligheten til å gå til andre sider, hvor du kan fortsette å jobbe uten å bruke dem. Det er vanskelig å si noe annet om ham, så la oss fortsette.
Det viser seg at Frameset-elementet, brukt i stedet for Body-taggen, tar opp all plassen som er tildelt for visningsområdet, og rammer vil bli opprettet inne i dette området ved hjelp av individuelle Frame-elementer. I denne forbindelse oppstår spørsmålet - hvordan dele visningsområdet mellom separate vinduer, eller med andre ord, hvordan du angir størrelsen på hver av dem.
Dette gjøres ved å legge til de riktige attributtene til Frameset-elementet. Det er to av dem - Cols og rader. Cols angir inndelingen av et stort vindu i vertikale rammer eller kolonner, og Rows lar deg dele det inn i horisontale vinduer eller rader.
Opprette en struktur basert på Frameset og dets Cols and Rows-attributter
Verdiene for Cols og Rows i HTML Frameset-taggen er tall atskilt med komma (uten mellomrom). Disse tallene setter proporsjonene til vinduene som vi ønsker å få som et resultat. Derfor, uansett hvor mange kommadelte tall som er skrevet i kolonner eller rader, vil antallet rammer vi har være resultatet.
For eksempel, ved å bruke denne notasjonen vil vi få tre vertikale kolonner hvis bredde vil tilsvare proporsjonene 2:5:3.
Siden vi har satt proporsjonene for tre rammer, må vi inkludere tre Frame-elementer mellom de åpne og avsluttende Frameset-taggene, selv uten å spesifisere ytterligere attributter:
Som et resultat vil rammestrukturen vår, som består av tre tomme vinduer, se slik ut:
I dette eksemplet angir vi vindusstørrelsene (Ramme) ved hjelp av prosenter, som er tatt fra bredden på visningsområdet (dette er tilfellet når du bruker Cols) eller fra høyden (rader). Når du endrer visningsporten, opprettholdes prosentforholdet mellom bildestørrelser. Men i stedet for prosenter, kan du også bruke ganske enkelt tall som betyr. Her mener jeg det heller ikke bør oppstå vanskeligheter med å forstå.
Men det er også et ganske uvanlig alternativ i størrelsesbetegnelsene, som ser ut stjerne "*". Dessuten kan det enten være "*" eller en stjerne med et tall foran, for eksempel "3*". En smart ting som er veldig lik prosenter og gjør at vi deler plassen til Rammen proporsjonalt.
La oss se på et eksempel. La oss nå velge å dele visningsporten inn i horisontale rader ved å bruke rader:
Hva betyr denne oppføringen? Hele visningsområdet som er tilgjengelig for oss vertikalt, vil bli delt inn i tre linjer. Høyden på den første vil bli tatt på 200 piksler, den andre - på 500, men den tredje linjen vil oppta all gjenværende plass i høyden, fordi "*" ble brukt som størrelse.
Det som er bemerkelsesverdig er at verdiene "*" og "1*" betyr det samme - vi deler all gjenværende plass i en og gir denne ene delen til denne rammen (vel, det vil si all gjenværende plass).
Men se hva som skjer hvis du bruker verdien "*" med et tall for å dele i forhold:
Hva tror du dimensjonene til rammen vil være i dette tilfellet? Det er klart at den andre linjen definitivt vil ha en høyde på 100 piksler. Men hvordan skal den gjenværende plassen deles i høyden mellom tredje og første rad?
Det er ganske enkelt å beregne - bare legg til fire (4*) til to (2*) og del på denne nevneren (husk brøker fra skolepensum) to og fire. De. vi får at den første kolonnen med en ramme vil ta opp en tredjedel av den gjenværende plassen i høyden, og den tredje kolonnen vil ta opp to tredjedeler. Eller med andre ord, den tredje vil være dobbelt så høy som den første:
Du kan bruke alle tre måtene å dimensjonere innramming av vinduer i én attributt, for eksempel:
Som et resultat vil vi få den første rammekolonnen med en bredde på ti prosent av hele det tilgjengelige området, den andre - 100 piksler, og de resterende tre vil ha en bredde i proporsjonene fire, tre og to niendedeler av gjenværende breddeplass. Så alt er enkelt og oversiktlig.
Hvis du vil dele hovedvinduet ikke bare i horisontale og vertikale rammer, men for eksempel i kombinasjonene deres, kan du bruke den nestede strukturen til Frameset-elementer separat for kolonner og separat for rader. For eksempel, for å få strukturen vist i skjermbildet nedenfor, er det nok å bruke følgende konstruksjon:
De. først bruker vi "frameset cols="20%,80%"" for å dele all tilgjengelig plass i to kolonner vertikalt og angi innholdet i høyre kolonne med "frame"-taggen, men i stedet for å legge til et "frame"-element for venstre kolonne åpner vi en ny "rammesett rader="10%,*"".
Og ved hjelp av det deler vi den høyre kolonnen i to linjer med rammer, hvis innhold er satt ved hjelp av to "frame" -tagger, hvoretter vi lukker begge "frameset"-beholdere. Alt er enkelt og logisk.
Spesifiser banen i Src-attributtet til Frame-elementet
Men vi snakket alle om Frameset-elementet og dets Cols and Rows-attributter, ved hjelp av disse danner vi strukturen og angir størrelsene deres. La oss nå finne ut hvordan du viser de nødvendige dokumentene i de nødvendige rammene og hvordan du konfigurerer samspillet mellom vinduene deres.
Så hvordan kontrollerer vi utseendet til vinduene vi lager? Alt dette er inneholdt i attributtene til Frame-taggen. Den første som er verdt å nevne er Src. Vi har allerede sett det i Img-taggen da vi så på å sette inn bilder i HTML-kode. Essensen har ikke endret seg, og den lar deg fortsatt spesifisere banen til dokumentet som skal lastes inn i rammen.
Banen til dokumentet i Src kan angis som . Relative baner brukes vanligvis for et dokument som ligger på din egen ressurs, men du trenger absolutte baner når du vil laste et dokument fra et annet sted inn i et rammevindu.
Hvis Src-attributtet som indikerer banen til ønsket dokument ikke er spesifisert, vil et tomt dokument lastes inn i vinduet. Personlig gjorde jeg en gang en lignende ting for bloggen min (som et ekstra navigasjonselement) og opprettet samtidig en egen mappe for den på vertsserveren og plasserte der ikke bare en HTML-fil med en rammestruktur (som jeg kalte indeks .html), men også alle lastet inn i ulike dokumentvinduer, samt bildefiler som ble brukt som bakgrunn.
Derfor var det enklest for meg å bruke relative lenker i Src-attributtet til Frame-taggen:
Det som er bemerkelsesverdig er at hvis du erstatter alle koblingene gitt i denne koden fra relativ til absolutt (som https://site/navigator/joomla.html) og åpner denne filen i en nettleser, vil dokumentene som er spesifisert i Frame lastes inn fra serveren min, og du vil se et lignende bilde i nettleseren din. Dessuten spiller det ingen rolle hvor filen din med rammestrukturen (index.html) vil være plassert - på datamaskinen din eller på hostingen.
I eksemplet vist i figuren lastes en side med en bestemt meny, som er en vanlig meny, inn i vinduet til venstre ramme. Men det som betyr noe er ikke hvordan menyen er dannet, men hva som skjer etter å ha klikket på noen av lenkene.
Hvis du gjør dette, vil alt skje akkurat som det skal - dokumentet åpnes i vinduet nederst til høyre. Men for dette måtte jeg bruke et lite triks, fordi i standardversjonen åpnet dokumentet seg for hele størrelsen på vinduet, og erstattet rammestrukturen, som jeg ikke trengte i det hele tatt, fordi navigasjonsmenyen i venstre og øverste rammer forsvant.
Hvordan åpne dokumenter via en lenke i en ramme
Så da vi snakket om hyperkoblinger, nevnte vi "A"-tag-attributtet som Target=_blank. Husker du hva den er til? Det er riktig å åpne det koblede dokumentet i et nytt vindu. Som standard skal det åpnes i samme vindu, som tilsvarer target="_self".
Men dette er muligheter Mål er ikke begrenset. Det viser seg at du kan legge til en verdi til det som et rammenavn, som er forhåndsspesifisert i det spesielle Name-attributtet til Frame-taggen. Da vil ikke dokumentet via denne lenken åpnes i samme vindu, som opptar all plass, men i rammen du spesifiserte. Det er klart? Om ikke helt, så vil det bli klart nå når vi analyserer eksemplet.
Så la oss gå tilbake til vårt eksempel vist i figuren rett ovenfor. Vi må åpne sider ved å bruke lenker fra venstre vindu i nedre høyre (stor) ramme. Derfor må du først gi dette store vinduet et navn ved å bruke Name-attributtet i Frame-taggen.
De laget den og kalte den "ktona". Nå kan du trygt åpne filen som er lastet inn som en meny i venstre vindu og legge til Target="ktona"-attributtet til alle A-taggene i den:
Historien til Joomla og VirtueMart-komponenten
Selvfølgelig, ved hjelp av søk og erstatt-verktøyet vil det ikke være vanskelig å sette det for alle hyperlenker, men hvorfor laste inn koden unødvendig når vi har en flott mulighet til å bruke spesiell base-tag, som vi allerede nevnte i samme artikkel om hyperkoblinger, da vi snakket om å bruke Target blank.
Det er nok bare å plassere base target="ktona"-elementet mellom de åpne og avsluttende Head-taggene og alle koblingene i HTML-kode av dette dokumentet vil åpne nye sider i den angitte rammen kalt "ktona":
Forresten, hvis vi ser på mitt en gang eksisterende verktøy som et eksempel, må vi fortsatt sørge for at alle lenkene fra det øverste horisontale vinduet åpner sidene sine i den venstre vertikale rammen, som fungerer som min venstremeny. Hva må gjøres for dette?
Vel, først må du gi den venstre vertikale rammen et navn:
Og i filen som er lastet inn i det øverste vinduet (gor.html), må du legge til base target="gor"-elementet:
Det er det, nå har vi gjort alt riktig. Alle dokumenter som følger lenker fra den øverste rammen åpnes i venstre vindu, og alle lenker fra den vil åpne dokumenter i den sentrale og største rammen. Etter min mening er alt enkelt og logisk.
Rammetag-attributter for å tilpasse utseendet til vinduer
La oss nå se hvilke andre attributter enn Src og Name som kan brukes i Frame-taggen for å tilpasse utseendet til rammer. La oss begynne med Rulling. Ved å bruke den kan vi konfigurere visningen av rullefelt for hvert vindu i rammestrukturen din separat.
Rulling har en standardverdi på Auto - nettleseren vil automatisk bestemme, basert på størrelsen på dokumentet som er lastet inn i rammen, om en rullefelt skal vises eller ikke. Hvis dokumentet ikke passer helt inn i vinduet, vises et rullefelt, slik at du kan se det hele til slutten.
Du kan også bruke verdiene Ja (rullefelt i vinduet vil alltid vises, selv om dokumentet passer helt inn i det) og Nei (rullefelt vil aldri vises i det hele tatt, selv om en del av dokumentet ikke passer) som verdier for rulling.
I mitt en gang eksisterende verktøy brukte jeg standardverdien for Auto og rullefelt i rammer dukket opp etter behov:
Følgende attributt til Frame-taggen er Noresize- er singel (den har ingen verdier). Ved å registrere den, vil du dermed forby å endre størrelsen, som som standard gjøres ved å dra i rammen med musen.
Når du flytter musepekeren til grensen, vil du se at markøren blir til en dobbelthodet pil og nå, ved å klikke på venstre knapp mus, kan du flytte grensen som du vil. Noresize pålegger et forbud mot denne egenrådigheten (når du flytter musepekeren til kanten av vinduene, vil du ikke lenger se den toveis pilen).
En annen visuell egenskap er Ramme grense. Ved å bruke den kan du spesifisere om du vil tegne en ramme (kantlinje) mellom rammer eller ikke. Frameborder kan bare ha to mulige verdier - enten 0 (ikke tegne en ramme) eller 1 (vis en kantlinje). Standardverdien er selvfølgelig 1.
Det er én subtilitet. Hvis du vil fjerne den synlige grensen, må du legge til Frameborder=0 til alle Frame-taggene til rammene du vil fjerne de synlige grensene mellom.
Vel, vi må fortsatt vurdere et par attributter til Frame-taggen - Marginbredde og Marginhøyde, som setter utfyllingen i bredde (høyre og venstre) og høyde (øverst og bunn) fra kantene til vinduet til innholdet som er lastet inn i det (tallet betyr antall piksler med utfylling):
Hvorfor kan du ikke lage en nettside på rammer?
La oss se hva den grunnleggende ulempen med klassiske strukturer er, som i hovedsak setter en stopper for bruken av dem når du lager et nettsted. Det består i det faktum at i henhold til denne rammestrukturen det er umulig å spore tilstanden hennes.
Komplekse strukturer kan ha tusenvis av forskjellige tilstander (varianter av dokumenter åpnet i forskjellige rammevinduer), men URL-adressen til denne strukturen endres ikke. På grunn av dette vil det være Kan ikke bruke nettleserbokmerker eller send lenker til favorittsidene dine til andre brukere. Hvorfor?
Fordi adressen forblir uendret selv når den åpnes fra nettleserbokmerker eller fra en e-post E-post, vil du få en side med starttilstanden til rammestrukturen, og ikke tilstanden du ønsker å lagre.
Selv om dette problemet selvfølgelig kan løses, men ikke med HTML-verktøy, men ved hjelp av server (for eksempel Php) eller klientprogrammeringsspråk (JavaScript), og disse løsningene vil ikke være hundre prosent effektive. Slike løsninger lar deg faktisk legge til ytterligere data om dens nåværende tilstand til URL-adressen til rammestrukturen, men dette er ikke lett å gjøre, og påliteligheten vil ikke være absolutt.
Dette er den første ulempen ved å bruke rammer for å lage nettsteder og en veldig betydelig, men det er en annen stor ulempe. Søkemotorer har selvfølgelig lenge lært å indeksere dem og trekke ut adressene til de dokumentene som er lastet inn i vinduene deres. Problemet er annerledes.
Når en bruker går fra Yandex- eller Google-søkeresultater til nettstedet ditt bygget på grunnlag av en rammestruktur, åpnes bare dokumentet som ble lastet inn i en av rammene, og ikke hele strukturen. Forstår du hva jeg snakker om?
Brukeren vil se dokumentet og vil ikke se navigasjon på nettstedet ditt, fordi det vil være beskyttet i andre vinduer, og de lastes bare som en del av hele strukturen.
Som et resultat blir et nettsted bygget på rammer ganske enkelt ubrukelig. Selv om det igjen er løsninger på dette problemet basert på serverskript, når en omdirigering vil bli utført fra adressene til individuelle dokumenter til en rammestruktur som er i ønsket tilstand, men dette er igjen veldig vanskelig og ikke alltid pålitelig.
Generelt kan konklusjonen trekkes entydig - Det er ikke nødvendig å lage nettsider på rammer. Men de brukes stadig til å lage hjelp til ulike applikasjoner, og de kan komme godt med i andre småting.
For eksempel opprettet jeg en rammestruktur, som jeg kalte "Navigator" (nå er den midlertidig fjernet) og som har blitt en slags utvidet ekstern meny for bloggen min, som, ser det ut for meg, skal forenkle arbeidet med ressursen og derfor forbedre "no nonsense" har en veldig, veldig sterk innflytelse på promoteringen av nettstedet.
Men for å unngå problemer med søkemotorer, lukket jeg hele denne rammestrukturen fra visning, og la også, for tilfelle, Rodots-metakoden til alle HTML-filene, og forbyr indeksering:
JOOMLA
Men alle disse begrensningene gjelder bare for strukturer på Frame- og Frameset-taggene, og innebygde rammer på iframe-tagger ikke har noen synlige feil, og de kan og bør til og med brukes på prosjektene dine, i det minste for å sette inn videoer fra YouTube.
Lykke til! Vi sees snart på sidene til bloggsiden
Du kan være interessert
Kommentardirektiver og Doctype i HTML-kode, samt konseptet med blokk- og inline-elementer (tags) Embed and object - HTML-tagger for visning av medieinnhold (video, flash, lyd) på nettsider Img - HTML-tag for å sette inn et bilde (Src), justere og pakke tekst rundt det (justere), samt angi bakgrunn (bakgrunn) Hva er hypertekst-markeringsspråk HTML og hvordan du viser en liste over alle tagger i W3C-validatorenVelg, Alternativ, Tekstområde, Etikett, Feltsett, Tegnforklaring - tagger HTML-skjemaer rullegardinlister og tekstfelt Lister i HTML-kode - UL, OL, LI og DL-tagger Font (ansikt, størrelse og farge), Blockquote og Pre-tagger - eldre tekstformatering i ren HTML(uten å bruke CSS) Hvordan farger settes i HTML- og CSS-kode, utvalg av RGB-nyanser i tabeller, Yandex-utdata og andre programmer