Brug af iframes i året. Iframe og Frame - hvad er de og hvordan man bedst bruger frames i HTML

En af de mest almindelige måder at inficere computeren på webstedsbesøgende på er at udnytte en sårbarhed forbundet med et overløb af brugerbrowserbuffere. Opskriften er ret simpel. Angribere injicerer ondsindet kode ved at indsætte iframes på webstedssider og forsøger at downloade ondsindede filer til en intetanende brugers computer. Det er ret nemt at opdage sådanne ondsindede indsætninger på dine websteder. Du skal bare være opmærksom på kodefragmenterne, der bruger iframe-forbindelsen. Sådanne indsættelser kan være i både HTML- og PHP-filer.

Angribere forsøger næsten altid at skjule brugen af ​​ondsindede væddemål så meget som muligt for ejere, skjule dem visuelt for ressourcebrugere og sløre (tilsløre) deres kode.

Skjuler iframe-indsatser fra brugernes øjne

For at skjule en ondsindet indsættelse bruger hackere i de fleste tilfælde den samme metode igen og igen - de indstiller egenskaberne for tagget, så det ikke vises på siden, men er indeholdt i dets kode. Oftest er bredden og længden sat til nul eller én pixel: width="1px", height="1px".

For eksempel kan skadelig kode se sådan ud:

Men ofte begrænser hackere sig ikke til en sådan forklædning, og supplerer fortielsen med mere sofistikerede teknikker, der kan forvirre og komplicere søgning og eliminering selv for avancerede programmører.

Uklarhed

Dette er en af ​​de mest almindelige metoder til at beskytte kode i programmering på ustrukturerede sprog (såsom for eksempel PHP). Faktisk handler al kryptering om at blande/tilsløre selve koden ved at ændre navnene på variabler og andre elementer. Som følge heraf er det ret svært at genkende tegn på ondsindethed i sløret kode og er kun muligt baseret på indirekte tegn på eksplicit brug af specielle JS (JavaScript) funktioner, der bruges specifikt til sløring: undslippe, fra CharCode.

Opdagelsen af ​​sløret kode på en hjemmeside betyder dog ikke, at den er bestemt skadelig eller nem at fjerne. Du skal forstå, at for det første kan angribere tilsløre koden og også fange en del af webstedets arbejdskode. I dette tilfælde, når du forsøger at skære et krypteret fragment ud, risikerer du at crashe din ressource. For det andet er sløret kode muligvis ikke ondsindet, men kun en konsekvens af driften af ​​dit CMS eller dets individuelle komponenter, såvel som yderligere moduler, du har installeret.

Under alle omstændigheder, hvis du støder på mistænkelig tilsløret kode, skal du handle med den største omhu.

Andre tegn på infektion

Hvis du tvivler på, om den kode, du fandt, er ondsindet, kan du prøve at analysere indirekte tegn. Hvis du har et stort antal filer på dit websted, vil du måske være opmærksom på datoen og tidspunktet, hvor filerne sidst blev ændret. Hvis du godt kender scenarierne for, hvordan dit CMS fungerer med filer, kan du se nærmere på filer, der er ændret på samme dato på samme tid, eller med ændringer, der sker i samme tidsinterval, for eksempel 1 sekund.

Hvis du er en avanceret programmør, kan du skrive et script, der kontrollerer tilstedeværelsen af ​​den type inserts, du har fundet i alle filer på dit websted. Hvis du er endnu mere avanceret, kan du tvinge scriptet til at skære inserts ud, dog skal du altid være forsigtig.

Alternative metoder

Vi anbefaler, at du bruger Virusday-tjenesten til at fjerne ondsindede inserts, selvom du er en avanceret specialist. Vores service indeholder ikke kun mange signaturer, der kan bruges til at finde ondsindede koder, men sparer også tid! Plus, omkostningerne ved at bruge Virusday til rengøring vil sandsynligvis være meget lavere end at betale for din egen tid. Du vil være i stand til at opdage og fjerne ikke kun iframe-indsættelser, men også mange andre trusler. Du vil sandsynligvis være i stand til at finde og automatisk fjerne truslen, der fik iframe-indsættelser til at blive vist på dit websted, såsom Shell.

Virusday serviceteam.

Instruktioner

HTML-sproget (HyperText Markup Language) giver to typer rammer. "Flydende" er mere fleksibel og lettere at indsætte i en eksisterende. Generelt ser konstruktionen, der beskriver indsættelse af et vindue ved hjælp af en flydende ramme, sådan ud: Her er datakilden for denne ramme det eksisterende websted (src-attribut). Den åbnes i en ramme, der måler 400 gange 300, som angivet i attributterne width og height. Du kan også angive siden på dit websted i src-attributten. I dette tilfælde er det nok at angive en relativ adresse (det vil sige en adresse i forhold til den side, hvor rammen er indsat): I dette eksempel er højden af ​​rammen ikke angivet, men der er en id-attribut. Ved at bruge det kan du bruge CSS() til at indstille denne ramme til de nødvendige dimensioner:

En anden type rammer - "klassisk" - kræver en separat side, der vil indeholde en beskrivelse af strukturen af ​​rammerne. Selve rammerne vil blive placeret på separate sider, måske endda på separate sider. HTML-koden for en sådan containerside for frames kan se sådan ud:




Ingen blokke ... Og ... , som kræves til almindelige sider, bør ikke være her. I dette eksempel er det åbne container-tag indeholder rows-attributten - det betyder, at sidepladsen skal opdeles lodret, og den første ramme får den øverste del. Hvis du erstatter rækker med kolonner, vil opdelingen være vandret. Værdien af ​​denne attribut "*,*" angiver, at de opdelte proportioner er ens - 50% hver. Hvis du f.eks. angiver "20%,*", vil der kun blive givet 20% til den første ramme, og resten af ​​pladsen vil blive givet til den anden. Brugeren kan ændre disse proportioner ved at trække i kanterne af rammerne med musen, men det er muligt at forbyde denne handling. For at gøre dette skal du tilføje noresize-attributten til tagget for en specifik frame. Du kan også angive størrelsen på de lodrette og vandrette margener fra den tilstødende ramme (attributter for marginbredde og marginhøjde): Det er muligt at indstille adfærdsregler for rullebjælker for hver frame separat. Dette gøres ved hjælp af rulleattributten, som kan indeholde en af ​​tre foruddefinerede værdier. Hvis du angiver scrolling="auto", vises rullepaneler, når indholdet af rammen ikke passer inden for dens grænser. Hvis "ja" - vil striberne være til stede konstant, uanset om de er nødvendige. Hvis "nej" - betyder det, at rullebjælker er deaktiveret for denne ramme.

Baseret på oplysningerne præsenteret i de to foregående trin, skal du konstruere html-kode, der er mere egnet til at løse dit problem. Derefter er der kun tilbage at indsætte det i sidens kildekode. For at gøre dette kan du bruge sideeditoren til dit webstedsstyringssystem - åbn den ønskede side i den, skift til html-koderedigeringstilstand og indsæt din kode på det ønskede sted på siden. Eller du kan downloade sidens kildekodefil ved hjælp af filhåndteringen til hosting- eller webstedsstyringssystemet, åbne den i en teksteditor og indsætte koden i den. Og brug derefter samme metode til at uploade den ændrede kode tilbage til serveren.

Hej kære læsere af bloggen. I dag vil vi tale om rammer i HTML. Det er klart, at vi starter fra begyndelsen, nemlig med hvad det er for et dyr. Vi vil også tale om nutiden (Frame) og fremtiden (Iframe) af disse elementer i den nuværende version af hypertekst-markupsproget og i den nye HTML 5-standard med .

I slutningen af ​​artiklen, efter en detaljeret beskrivelse af processen med at skabe indbyggede rammer og deres klassiske struktur i HTML-kode (allerede sjældent brugt), vil vi berøre relevansen af ​​at bygge et websted på dem, og også diskutere evt. måder at bruge dem på i den aktuelle periode ved at bruge eksemplet på min blog.

Hvad er det, og hvordan adskiller Iframe sig fra Frame?

Hvad er det? Det viser sig, at de ikke kun kan bruges på websteder, men også i alle applikationer til programmer, men de adskiller sig ved, at vinduet på en webside eller applikation vil blive opdelt i flere områder, hvor hver af dem er indlæst et separat dokument . Desuden opfører disse rammeområder sig uafhængigt af hinanden.

Det formentlig mest oplagte eksempel på deres brug, som næsten alle af jer er stødt på, er de såkaldte hjælpefiler, som mange programmer installeret på din computer har.

Filen med hjælpemenuen indlæses i venstre vindue, og dokumentet svarende til det valgte menupunkt vises i højre vindue. Det er bemærkelsesværdigt, at denne struktur giver dig mulighed for ikke at genindlæse filen med menuen i venstre vindue, når du åbner et nyt dokument i det højre. Det er præcis, hvad den består af største fordel ved at bruge rammer i HTML.

Faktisk skal selve navnet på disse elementer fortolkes som et uafhængigt vindue. Ved hjælp af rammer har vi mulighed for at opdele ét stort vindue i flere fragmenter, som igen kan fungere som modtagere for separate dokumenter uafhængigt af hinanden (sider, tekster, billeder, videoer osv.).

Hvordan skabes en rammestruktur i hypertekstmarkeringssprog? Hvis vi taler om Html 4.01-standarden (ifølge klassifikationen), som er den vigtigste på nuværende tidspunkt, så bruges tre elementer til dette - Frame, Frameset og Noframes.

Iframe - indbygget ramme i HTML 5 standarden

Hvis vi taler om HTML 5-standarden (vores fremtid, hvoraf nogle elementer allerede understøttes af mange browsere), så vil der ikke være nogen Frame-, Frameset- og Noframes-tags, såvel som den klassiske rammestruktur; i stedet vil der være en enkelt Iframe-tag (embedded frame), som vi vil tale om i begyndelsen, og derefter vil vi vende opmærksomheden mod det klassiske skema fra version 4.01, som faktisk er i brug nu.

Iframe kræver, i modsætning til klassikerne diskuteret nedenfor, ikke udskiftning af Body-tagget med Frameset-tags. De der. dette tag kan indsættes på almindelige sider, for eksempel inde i et afsnit eller andre steder. I sin kerne er dette element meget lig det Img-tag, vi allerede har overvejet.

Det er et inline-element med udskifteligt indhold, fordi det opfører sig nøjagtigt som et inline-element, men det vises uvedkommende eksternt indhold. Der er kun fire sådanne elementer i HTML-sproget - Img, Iframe, Object og Embed. Derfor indebærer vores helt tilstedeværelsen af ​​en ekstern fil, der vil blive indlæst i et område, hvis størrelse er indstillet ved hjælp af attributterne for dette tag.

At. En iframe er et sink-element, som et eksternt objekt (såsom en video) indlæses i. Og for at angive stien til denne fil, som skal indlæses på siden, skal du bruge den specielle Src-attribut. Men i modsætning til Img er Iframe-elementet parret, dvs. der er også et lukkemærke:

Dette eksempel viser output på en Youtube-videoside ved hjælp af en iframe. For at begrænse det område af rammen (vinduet), hvor den eksterne fil vil blive indlæst, leveres attributter Bredde og Højde, hvis værdier er angivet i pixels:

De der. dette tag opretter et område, hvor et eksternt objekt indlæses (det er lige meget, om det er fra dit websted eller fra en anden ressource). Områdets bredde og højde angives ved hjælp af Width og Height, og Src-attributten angiver stien til dette objekt.

Iframe-elementet arvede alle disse attributter fra lignende inline-tags med erstattet indhold (såsom Img, der allerede er nævnt ovenfor). Nå, han tog også attributter fra billederne Hspace og Vspace, som giver dig mulighed for at sætte indrykninger fra rammens kanter til den tekst, der ombrydes.

Det er også væsentligt, at justeringen af ​​den indbyggede ramme udføres på nøjagtig samme måde, som vi kunne se, når vi studerede billeder i Html - . Alt det samme Juster, men for Iframe-tagget med mulige værdier Bottom, Top, Middle, Left og Right.

Men dette element tog også flere attributter fra Frame-tagget fra den klassiske rammestruktur, som vi vil tale meget detaljeret om nedenfor i teksten. Disse attributter inkluderer Navn, hvis værdi kan bruges som en værdi, så det dokument, du skal bruge, når du klikker på et link, åbner i vinduet i denne ramme (læs mere nedenfor).

Også i Iframe migrerede Frameborder-attributten fra Frame-tagget, som kun har to værdier - enten 0 (rammen omkring rammen vises ikke) eller 1 (rammen er synlig). Standardværdien er Frameborder=1, så for at fjerne den skal du indtaste Frameborder="0":

Scrolling-attributten er også blevet overført fra Frame til dette element, som har en standardværdi på Auto - rullebjælker i rammen vises efter behov, når indholdet er større end størrelsen på vinduet, der er beregnet til at vise det.

Nå, attributterne Marginwidth og Marginheight er også flyttet fra Frame-elementet. De vil blive diskuteret i detaljer nedenfor i teksten, men i en nøddeskal - de giver dig mulighed for at indstille fordybningen i bredde og højde fra rammens kanter til indholdet, der er placeret i den.

Som jeg allerede har nævnt, er et klart eksempel på brug af en iframe:

Ved at indsætte en iframe direkte på en webside, vil du modtage et output af en video fra YouTube. Vi konkluderer, at dette element er en krydsning mellem inline-elementer med erstattet indhold og faktisk klassiske rammer, som vi nu vil diskutere.

Rammer baseret på Frame og Frameset tags - deres struktur

Så at skabe en klassisk rammestruktur begynder med det faktum, at du skriver i HTML-koden i stedet for det åbnende og afsluttende Body-tag, som normalt burde være til stede i ethvert dokument, og erstatter det med en elementbaseret container Rammesæt.

Det grundlæggende punkt er, at Body-elementet ikke kan bruges i dette tilfælde - hverken Body (for et almindeligt dokument) eller Frameset (når du opretter en dokumentrammestruktur):

Hver ramme, som vi skaber inde i den vigtigste, er skabt ved hjælp af et separat element Ramme. Dette tag er enkelt, og i det sætter vi stien til dokumentet, der vil blive indlæst i dette vindue.

Det tredje element, som vi endnu ikke har berørt, er Ingen rammer. Den er parret og giver dig mulighed for at skrive noget tekst indeni, som vil blive behandlet af browseren og kun vist på en webside, hvis den samme browser (eller anden visningsenhed) ikke understøtter frames. Dette kan for eksempel ske, hvis du bruger en browser til mobile enheder.

Normalt tilføjer Noframes ikke kun information om den aktuelle situation med umuligheden af ​​at behandle rammestrukturen, men tilføjer også muligheden for at gå til andre sider, hvor du kan fortsætte med at arbejde uden at bruge dem. Det er svært at sige andet om ham, så lad os fortsætte.

Det viser sig, at Frameset-elementet, brugt i stedet for Body-tagget, optager al den plads, der er allokeret til visningsområdet, og rammer vil blive oprettet inde i dette område ved hjælp af individuelle Frame-elementer. I denne forbindelse opstår spørgsmålet - hvordan man deler visningsområdet mellem separate vinduer eller med andre ord, hvordan man indstiller størrelsen på hver af dem.

Dette gøres ved at tilføje de relevante attributter til Frameset-elementet. Der er to af dem - Cols og Rækker. Cols indstiller opdelingen af ​​et stort vindue i lodrette rammer eller kolonner, og Rows giver dig mulighed for at opdele det i vandrette vinduer eller rækker.

Oprettelse af en struktur baseret på Frameset og dets Cols og Rows attributter

Værdierne for Cols og Rows i HTML Frameset-tagget er tal adskilt af kommaer (uden mellemrum). Disse tal angiver proportionerne af vinduerne, som vi ønsker at få som et resultat. Derfor, uanset hvor mange kommaseparerede tal, der er skrevet i Cols eller Rows, vil antallet af frames, vi har, være resultatet.

For eksempel vil vi ved at bruge denne notation få tre lodrette kolonner, hvis bredde vil svare til proportionerne 2:5:3.

Da vi har indstillet proportionerne for tre rammer, bliver vi nødt til at inkludere tre Frame-elementer mellem de åbne og afsluttende Frameset-tags, i det mindste uden at angive yderligere attributter:

Som et resultat vil vores rammestruktur, bestående af tre tomme vinduer, se sådan ud:

I dette eksempel indstiller vi vinduesstørrelserne (Frame) ved hjælp af procenter, som er taget fra bredden af ​​visningsområdet (dette er tilfældet, når du bruger Cols) eller fra dets højde (rækker). Når du ændrer visningsporten, bibeholdes procentforholdet mellem billedstørrelser. Men i stedet for procenter, kan du også bruge blot tal, der betyder. Her tænker jeg, at der heller ikke skulle opstå vanskeligheder med at forstå.

Men der er også en ret usædvanlig mulighed i størrelsesbetegnelserne, som ser ud stjerne "*". Desuden kan det enten være "*" eller en stjerne med et tal foran, for eksempel "3*". En smart ting, der minder meget om procenter og gør, at vi deler rummet til Rammen proportionalt.

Lad os se på et eksempel. Lad os nu vælge at opdele viewporten i vandrette rækker ved hjælp af Rows:

Hvad betyder denne post? Hele visningsområdet, der er tilgængeligt for os lodret, vil blive opdelt i tre linjer. Højden af ​​den første vil blive taget ved 200 pixels, den anden - ved 500, men den tredje linje vil optage al den resterende plads i højden, fordi "*" blev brugt som størrelse.

Hvad der er bemærkelsesværdigt er, at værdierne "*" og "1*" betyder det samme - vi deler alt det resterende rum i en og giver denne ene del til denne ramme (nå, det vil sige alt det resterende rum).

Men se, hvad der sker, hvis du bruger værdien "*" med et tal til at dividere i forhold:

Hvad tror du, dimensionerne af rammen vil være i dette tilfælde? Det er klart, at den anden linje helt sikkert vil have en højde på 100 pixels. Men hvordan bliver den resterende plads fordelt i højden mellem tredje og første række?

Det er ret nemt at beregne - bare læg fire (4*) til to (2*) og divider med denne nævner (husk brøker fra skolens læseplan) to og fire. De der. vi får, at den første søjle med en ramme vil optage en tredjedel af den resterende plads i højden, og den tredje søjle vil optage to tredjedele. Eller med andre ord, den tredje vil være dobbelt så høj som den første:

Du kan bruge alle tre måder til at dimensionere indramningsvinduer i én egenskab, for eksempel:

Som et resultat vil vi få den første rammekolonne med en bredde på ti procent af hele det tilgængelige område, den anden - 100 pixels, og de resterende tre vil have en bredde i proportionerne fire, tre og to niendedele af resterende bredderum. Så alt er enkelt og overskueligt.

Hvis du vil opdele hovedvinduet ikke kun i vandrette og lodrette rammer, men for eksempel i deres kombinationer, så kan du bruge den indlejrede struktur af Frameset-elementer separat til kolonner og separat for rækker. For eksempel, for at få strukturen vist i skærmbilledet nedenfor, er det nok at bruge følgende konstruktion:

De der. først bruger vi "frameset cols="20%,80%"" til at opdele al den tilgængelige plads i to kolonner lodret og indstille indholdet af højre kolonne med "frame"-tagget, men i stedet for at tilføje et "frame"-element for venstre kolonne åbner vi et nyt "frameset rows="10%,*"".

Og ved hjælp af det opdeler vi den højre kolonne i to linjer med rammer, hvis indhold er sat ved hjælp af to "frame" tags, hvorefter vi lukker begge "frameset" containere. Alt er enkelt og logisk.

Angiv stien i Src-attributten for Frame-elementet

Men vi talte alle om Frameset-elementet og dets Cols og Rows-attributter, ved hjælp af hvilke vi danner strukturen og indstiller deres størrelser. Lad os nu finde ud af, hvordan man viser de nødvendige dokumenter i de nødvendige rammer, og hvordan man konfigurerer interaktionen mellem deres vinduer.

Så hvordan kontrollerer vi udseendet af de vinduer, vi laver? Alt dette er indeholdt i attributterne til Frame-tagget. Den første der er værd at nævne er Src. Vi har allerede set det i Img-tagget, da vi så på at indsætte billeder i HTML-kode. Dens essens er ikke ændret, og den giver dig stadig mulighed for at angive stien til dokumentet, der skal indlæses i rammen.

Stien til dokumentet i Src kan angives som . Relative stier bruges normalt til et dokument, der er placeret på din egen ressource, men du skal bruge absolutte stier, når du vil indlæse et dokument fra et andet sted i et rammevindue.

Hvis Src-attributten, der angiver stien til det ønskede dokument, ikke er angivet, vil et tomt dokument blive indlæst i vinduet. Personligt gjorde jeg engang en lignende ting for min blog (som et ekstra navigationselement) og oprettede samtidig en separat mappe til den på hostingserveren og placerede der ikke kun en HTML-fil med en rammestruktur (som jeg kaldte index .html), men også alle indlæst i forskellige dokumentvinduer, samt billedfiler, der blev brugt som baggrunde.

Derfor var det nemmest for mig at bruge relative links i Src-attributten for Frame-tagget:

Hvad der er bemærkelsesværdigt er, at hvis du erstatter alle links i denne kode fra relativ til absolut (såsom https://site/navigator/joomla.html) og åbner denne fil i en browser, så indlæses de dokumenter, der er angivet i Frame fra min server, og du vil se et lignende billede i din browser. Desuden er det lige meget, hvor din fil med rammestrukturen (index.html) vil være placeret - på din computer eller på hostingen.

I eksemplet vist på figuren er en side med en bestemt menu, som er en almindelig menu, indlæst i vinduet i venstre ramme. Men det, der betyder noget, er ikke, hvordan menuen er dannet, men hvad der sker efter at have klikket på et af dens links.

Hvis du gør dette, vil alt ske præcis som det skal - dokumentet åbnes i nederste højre vindue. Men til dette var jeg nødt til at bruge et lille trick, for i standardversionen åbnede dokumentet for hele vinduets størrelse og erstattede rammestrukturen, som jeg slet ikke havde brug for, fordi navigationsmenuen i venstre og øverste rammer forsvundet.

Sådan åbner du dokumenter via et link i en ramme

Så da vi talte om hyperlinks, nævnte vi "A" tag-attributten som Target=_blank. Kan du huske, hvad det er til? Det er korrekt at åbne det linkede dokument i et nyt vindue. Som standard skal det åbne i det samme vindue, hvilket svarer til target="_self".

Men det er muligheder Mål er ikke begrænset. Det viser sig, at du kan tilføje en værdi til det som et rammenavn, som er forudspecificeret i den specielle Name-attribut for Frame-tagget. Så åbnes dokumentet via dette link ikke i det samme vindue, der optager hele dets plads, men i den ramme, du har angivet. Det er klart? Hvis ikke helt, så vil det blive klart nu, når vi analyserer eksemplet.

Så lad os vende tilbage til vores eksempel vist i figuren lige ovenfor. Vi skal åbne sider ved hjælp af links fra venstre vindue i nederste højre (store) ramme. Derfor skal du først give dette store vindue et navn ved hjælp af Name-attributten i Frame-tagget.

De lavede det og kaldte det "ktona". Nu kan du sikkert åbne filen, der er indlæst som en menu i venstre vindue og tilføje Target="ktona"-attributten til alle A-tags i den:

Historien om Joomla og VirtueMart-komponenten

Selvfølgelig vil det ved hjælp af søge- og erstat-værktøjet ikke være svært at sætte det til alle hyperlinks, men hvorfor indlæse koden unødigt, når vi har en god mulighed for at bruge speciel base tag, som vi allerede nævnte i samme artikel om hyperlinks, da vi talte om at bruge Target blank.

Det er nok bare at placere basis-target="ktona"-elementet mellem de indledende og afsluttende Head-tags, og alle links i HTML-koden i dette dokument vil åbne nye sider i den angivne ramme kaldet "ktona":

Forresten, hvis vi betragter mit engang eksisterende værktøj som et eksempel, så skal vi stadig sørge for, at alle links fra det øverste vandrette vindue åbner deres sider i den venstre lodrette ramme, som fungerer som min venstre menu. Hvad skal der gøres for dette?

Nå, først skal du give den venstre lodrette ramme et navn:

Og i filen, der er indlæst i det øverste vindue (gor.html), skal du tilføje basiselementet target="gor":

Det er det, nu har vi gjort alt rigtigt. Alle dokumenter, der følger links fra den øverste ramme, åbnes i venstre vindue, og alle links fra den åbner dokumenter i den centrale og største ramme. Efter min mening er alt simpelt og logisk.

Rammetag-attributter til at tilpasse udseendet af vinduer

Lad os nu se, hvilke andre attributter end Src og Name, der kan bruges i Frame-tagget for at tilpasse udseendet af rammer. Lad os starte med Rulning. Ved at bruge det kan vi konfigurere visningen af ​​rullebjælker for hvert vindue i din rammestruktur separat.

Rulning har en standardværdi på Auto - browseren bestemmer automatisk, baseret på størrelsen af ​​det dokument, der er indlæst i rammen, om der skal vises en rullepanel eller ej. Hvis dokumentet ikke passer helt ind i vinduet, vises en rullepanel, så du kan se det hele til ende.

Du kan også bruge værdierne Ja (rullebjælker i vinduet vil altid blive vist, selvom dokumentet passer helt ind i det) og Nej (rullebjælker vil aldrig vises overhovedet, selvom en del af dokumentet ikke passer) som værdier for rulning.

I mit engang eksisterende værktøj brugte jeg standardværdien for Auto, og rullepaneler i rammer dukkede op efter behov:

Følgende attribut for Frame-tagget er Noresize- er single (den har ingen værdier). Ved at registrere den, vil du derved forbyde at ændre dens størrelse, hvilket som standard gøres ved blot at trække i rammens kant med musen.

Når du flytter musemarkøren til grænsen, vil du se, at markøren bliver til en dobbelthovedet pil, og nu kan du ved at klikke på venstre museknap flytte grænsen, som du ønsker. Noresize pålægger et forbud mod denne egenrådighed (når du flytter musemarkøren til kanten af ​​vinduerne, vil du ikke længere se den tovejsbestemte pil).

En anden visuel egenskab er Rammekant. Ved at bruge det kan du angive, om du vil tegne en ramme (grænse) mellem rammer eller ej. Frameborder kan kun have to mulige værdier - enten 0 (tegn ikke en ramme) eller 1 (vis en kant). Standardværdien er selvfølgelig 1.

Der er én subtilitet. Hvis du vil fjerne den synlige kant, så skal du tilføje Frameborder=0 til alle Frame-tags i de rammer, som du vil fjerne de synlige grænser imellem.

Nå, vi skal stadig overveje et par attributter ved Frame-tagget - Marginbredde og Marginhøjde, som indstiller udfyldningen i bredden (højre og venstre) og højden (øverst og nederst) fra vinduets kanter til det indhold, der er indlæst i det (tallet betyder antallet af polstringspixel):

Hvorfor kan du ikke lave en hjemmeside på rammer?

Lad os se, hvad den grundlæggende ulempe ved klassiske strukturer er, som i det væsentlige sætter en stopper for deres brug, når du opretter et websted. Det består i, at ifølge denne rammestruktur det er umuligt at spore hendes tilstand.

Komplekse strukturer kan have tusindvis af forskellige tilstande (varianter af dokumenter åbnet i forskellige rammevinduer), men URL-adressen for netop denne struktur ændres ikke. På grund af dette vil der være Kan ikke bruge browserbogmærker eller send links til dine yndlingssider til andre brugere. Hvorfor?

Fordi adressen forbliver uændret, og når du åbner den fra dine browserbogmærker eller fra en e-mail, vil du modtage en side med starttilstanden for rammestrukturen, og ikke den tilstand, du gerne vil gemme.

Selvom dette problem selvfølgelig kan løses, men ikke med HTML-værktøjer, men ved hjælp af server (for eksempel Php) eller klientprogrammeringssprog (JavaScript), og disse løsninger vil ikke være hundrede procent effektive. Sådanne løsninger giver dig faktisk mulighed for at tilføje yderligere data om dens nuværende tilstand til URL-adressen for rammestrukturen, men det er ikke let at gøre, og pålideligheden vil ikke være absolut.

Dette er den første ulempe ved at bruge rammer til at skabe websteder og en meget betydelig ulempe, men der er en anden stor ulempe. Søgemaskiner har selvfølgelig længe lært at indeksere dem og udtrække adresserne på de dokumenter, der er indlæst i deres vinduer, fra dem. Problemet er anderledes.

Når en bruger går fra Yandex- eller Google-søgeresultater til dit websted bygget på basis af en rammestruktur, åbnes kun det dokument, der blev indlæst i en af ​​rammerne, og ikke hele strukturen. Forstår du, hvad jeg taler om?

Brugeren vil se dokumentet og vil ikke se navigation på dit websted, fordi det vil være beskyttet i andre vinduer, og de belastes kun som en del af hele strukturen.

Som et resultat bliver et websted bygget på rammer simpelthen ubrugeligt. Selvom der igen er løsninger på dette problem baseret på serverscripts, når en omdirigering vil blive udført fra adresserne på individuelle dokumenter til en rammestruktur, der er i den ønskede tilstand, men dette er igen meget vanskeligt og ikke altid pålideligt.

Generelt kan konklusionen drages utvetydigt - Der er ingen grund til at oprette hjemmesider på rammer. Men de bruges konstant til at skabe hjælp til forskellige applikationer, og de kan komme godt med i andre småting.

For eksempel lavede jeg en rammestruktur, som jeg kaldte "Navigator" (nu er den midlertidigt fjernet), og som er blevet til en slags udvidet ekstern menu til min blog, som, synes jeg, skulle forenkle arbejdet med ressourcen og derfor forbedre "no nonsense" har en meget, meget stærk indflydelse på promoveringen af ​​webstedet.

Men for at undgå problemer med søgemaskiner lukkede jeg hele denne rammestruktur fra visning, og for en sikkerheds skyld tilføjede jeg Rodots-metatagget til alle dets HTML-filer, hvilket forbød deres indeksering:

JOOMLA

Men alle disse begrænsninger gælder kun for strukturer på Frame- og Frameset-tags og indlejrede rammer på Iframe-tags ikke har nogen synlige fejl, og de kan og bør endda bruges på dine projekter, i det mindste til at indsætte videoer fra YouTube.

Held og lykke! Vi ses snart på bloggens sider

Du kan være interesseret

Kommentardirektiver og Doctype i HTML-kode, samt konceptet med blok- og inline-elementer (tags)
Integrer og objekt - Html-tags til visning af medieindhold (video, flash, lyd) på websider
Img - Html-tag til at indsætte et billede (Src), justere og pakke tekst omkring det (align), samt indstilling af baggrunden (baggrund)
Hvad er hypertekstmarkeringssprog HTML, og hvordan får du vist en liste over alle tags i W3C-validatoren Vælg, Valg, Tekstområde, Etiket, Feltsæt, Forklaring - HTML-tags i form af rullelister og tekstfelter
Lister i HTML-kode - UL, OL, LI og DL tags
Skrifttype (ansigt, størrelse og farve), Blockquote og Pre-tags - ældre tekstformatering i ren HTML (ingen CSS brugt)
Sådan indstilles farver i HTML- og CSS-kode, valg af RGB-nuancer i tabeller, Yandex-output og andre programmer

Tag .

Syntaks

Muligheder

align Bestemmer, hvordan rammen skal justeres til kanten, samt hvordan teksten ombrydes. frameborder Indstiller, om der skal vises en kant rundt om rammen eller ej. højde Højden på rammen. hspace Det vandrette mellemrum mellem rammen og det omgivende indhold. navn Navn på rammen. rulning En måde at vise en rullepanel i en ramme. src Sti til filen, hvis indhold vil blive indlæst i rammen. vspace Det lodrette rum fra rammen til det omgivende indhold. bredde Rammens bredde.

Afsluttende tag

Påkrævet.

Eksempel 1: Brug af et tag


Beskrivelse af tag-parametre

Argumenter

absmiddle Justerer midten af ​​rammen til midten af ​​den aktuelle linje. baseline Justerer rammen til basislinjen for den aktuelle linje. bund Justerer rammens nederste kant med den omgivende tekst. venstre Justerer rammen til venstre kant af vinduet. midt Justerer midten af ​​rammen til grundlinjen for den aktuelle linje. højre Justerer rammen til højre kant af vinduet. texttop Rammens øverste kant er justeret med det højeste tekstelement på den aktuelle linje. top Den øverste kant af rammen er justeret med det højeste element i den aktuelle linje.

De mest populære muligheder er venstre og højre , som skaber tekstombrydning rundt om rammen. For at sikre, at teksten ikke passer tæt til rammens indhold, anbefales det, at taggen

Lorem ipsum dolor sit amet, consectetuer adipiscing elit...

FRAMEBORDER parameter

Beskrivelse

Som standard tegnes en ramme med en 3D-effekt omkring indholdet af rammen. For at skjule det, brug parameteren frameborder.

Syntaks


Argumenter

ja (eller 1) Viser en ramme rundt om rammen. nej (eller 0) Skjuler rammen rundt om rammen.

Standard værdi

Eksempel 3: Skjul den originale ramme rundt om rammen





IFRAME tag, frameborder parameter




HEIGHT og WIDTH parameter

Beskrivelse

For at ændre størrelsen på rammen ved hjælp af HTML, er bredde- og højdeparametrene angivet. Du kan bruge værdier i pixels eller procenter. Hvis den procentvise indtastning er angivet, beregnes rammedimensionerne i forhold til det overordnede element - beholderen hvor tagget er placeret

Argumenter

Ethvert positivt heltal i pixels eller procent.

Standard værdi

bredde - 300 pixels, højde - 150 pixels.

Eksempel 4: Rammens bredde og højde





IFRAME-tag, breddeparameter




HSPACE og VSPACE parameter

HTML: 3.2 4 XHTML: 1.0 1.1

Beskrivelse

For enhver frame kan du indstille usynlig vandret og lodret polstring ved hjælp af hspace- og vspace-parametrene. Dette gælder især, når tekst ombrydes omkring indholdet af en ramme. I dette tilfælde, så teksten ikke "løber" tæt på rammens kant, er det nødvendigt at tilføje tom plads omkring den.

Syntaks


Argumenter

Ethvert positivt heltal i pixels.

Standard værdi

Eksempel 5: Marginer omkring en ramme





IFRAME-tag, hspace-parameter




Parameter NAME

Beskrivelse

I et almindeligt HTML-dokument, når du følger et link, erstattes det aktuelle dokument i browservinduet med et nyt. For at dirigere indhold til en ramme skal den have et unikt navn, specificeret af navneattributten. I dette tilfælde, når du opretter et link til tagget du skal angive målparameteren, hvis værdi er navnet på rammen.

Syntaks

Argumenter

Navnet angives ved hjælp af et sæt tegn, inklusive tal og bogstaver. Når du refererer til en ramme ved navn, skal du bruge den samme stavemåde som i parameteren name.

Standard værdi





IFRAME tag, navn parameter


Cheburashka

Krokodille Gena

Shapoklyak


RULLING parameter

Beskrivelse

Hvis indholdet af rammen ikke passer inden for de tildelte dimensioner, vises rullepaneler automatisk, så du kan se oplysningerne. I nogle tilfælde opdeler rullepaneler designet af en webside, så du vil måske deaktivere dem. For at styre visningen af ​​rullebjælker skal du bruge rulleparameteren.

Syntaks

Argumenter

auto Rullebjælker tilføjes kun af browseren, når det er nødvendigt, når indholdet af rammen overstiger dens synlige del. nej Forhindrer rullepaneler i at blive vist. ja Får altid rullebjælker til at vises, uanset mængden af ​​information.

Standard værdi

Eksempel 7: Skjul rullepaneler





IFRAME-tag, rulleparameter




SRC parameter

Beskrivelse

Angiver den filadresse (URL), der vil blive indlæst i rammen. Dette kan være et HTML-dokument, et billede eller et serverprogram. Det er acceptabelt at bruge ikke kun stien til filen, men også navnet på JavaScript-funktionen, der returnerer værdien.

Syntaks

Argumenter

Værdien er den fulde eller relative sti til filen.

Standard værdi

Eksempel 8. Filsti





IFRAME tag, src parameter




Ramme tags

  • FRAME definerer egenskaberne for den enkelte frame, som browservinduet er opdelt i.
  • FRAMESET definerer rammestrukturen for en webside. Rammer opdeler browservinduet i separate områder placeret tæt på hinanden. Hvert af disse områder indlæser en uafhængig webside defineret ved hjælp af FRAME-tagget.
  • IFRAME skaber en flydende ramme, der er placeret inde i et almindeligt dokument; det giver dig mulighed for at indlæse andre uafhængige dokumenter i et område med specificerede størrelser.
  • NOFRAMES vises i browseren, når den ikke understøtter frames og ikke kan fortolke dem. Browsere, der arbejder med frames, ignorerer fuldstændigt indholdet af NOFRAMES-tagget.
  • Element

    Rammer

    Hvad gør den

    Den væsentligste forskel mellem