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
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
IFRAME tag
Din browser understøtter ikke iframes!
Beskrivelse af tag-parametre
ALIGN parameter
Beskrivelse
For en flydende ramme kan du angive dens placering på websiden eller angive, hvordan tekst eller andre elementer på websiden skal flyde rundt om den. Justeringsmetoden er specificeret af align-parameteren for tagget
.
Syntaks
...
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 tilføje hspace og vspace parametre, der angiver afstanden til teksten i pixels.
Standard værdi
Eksempel 2: Justering af en flydende ramme
IFRAME tag, align parameter
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 . Hvis der ikke er nogen overordnet container, fungerer browservinduet som det. Med andre ord betyder width="100%" at rammen fylder hele bredden af websiden.
Hvis der ikke er angivet nogen højde eller bredde, antager rammen automatisk størrelsen 300 x 150 pixels.
Syntaks
...
...
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 ?
Sådan indsætter du en side i en HTML-side? For at gøre dette skal du bruge , som opretter en inline-ramme i det aktuelle dokument, der viser et andet HTML-dokument.
Skærm
Vis blok.
Eksempel kode
Kraftig, men alligevel nem at bruge
Tilbage i de dårlige gamle dage var der meget webdesign elementer, der ødelægger livet for enhver udvikler. De var næsten altid en dårlig designtilgang. Heldigvis element er blevet forældet i HTML5. Men eller " inline ramme » er stadig tilgængelig. Vil det blive forældet i den næste version? Måske skal vi undgå det? Der er flere gyldige anvendelser af dette element, når du opretter en HTML-side. Men du skal forstå, hvad det er, og hvordan det virker for at undgå fejl.
Ligheder og forskelle Og
Begge disse elementer giver dig mulighed for at oprette et separat HTML-dokument. Et link til indholdet af dokumentet, der henvises til af den aktuelle webside, er angivet i src-attributten.
. . . . . .
Den væsentligste forskel mellem Og ting er sikrer overholdelse af reglen om, at HTML-dokumentet er en prioritet. Indhold vises inde i et element, der er en del af det aktuelle dokument. Som et eksempel kan du overveje denne indlejrede video taget fra YouTube:
Videoen er tydeligt på HTML-siden og ikke i et separat panel. element brød dette paradigme og gjorde det muligt for dokumentet at udøve kontrol over browservinduet ved at opdele det i flere små paneler (rammer), som hver viser et separat dokument. Alle andre forskelle mellem og følger af denne grundlæggende forskel.
Lav ikke rammebaserede layouts om med iframes
En dag står du måske over for opgaven med at opdatere en gammel hjemmeside, der er bygget ved hjælp af rammer. Du vil måske bruge og en fast layoutbredde for at genskabe det samme mareridt af uafhængige paneler og karme. Men du vil ikke være i stand til at bruge target-attributten til at åbne et link i en separat ramme. Du kan begynde at lede efter JavaScript-løsninger. Gør venligst ikke det.
Gode (og forfærdelige) anvendelser
Der er flere gyldige use cases for at oprette en HTML-side:
indlejring af tredjeparts medieindhold;
indlejring af dit eget medieindhold gennem et dokument på tværs af platforme;
eksempler på indlejring af kode;
indlejring af tredjeparts "applets" som betalingsformer.
Her er nogle forfærdelige use cases: :
Fotogalleri;
forum eller chat.
Hvis du har brug for at integrere uafhængige, allerede eksisterende HTML-dokumenter i det nuværende, skal du bruge . Hvis du bygger alt fra bunden, er der ingen grund til at opdele sidedesignet i flere separate dokumenter. Især hvis de faktisk ikke er uafhængige stykker indhold.
iframe-attributter
Attributnavn
Betyder
Beskrivelse
sandkasse
Tillad-samme oprindelse Tillad-top-navigation Tillad-formularer Tillad-scripts
Indstiller en række begrænsninger for indholdet, der indlæses i rammen. Indstil før hvordan man opretter en HTML-side.
rulle
ja nej auto
Bestemmer, om der skal vises ruller i rammen eller ej. Udgået i HTML5. Brug CSS i stedet.
Navn
Navn
Angiver navnet på rammen.
Juster
venstre højre øverst midterste bund
Bestemmer rammens justering i forhold til omgivende elementer. Er forældet. Brug CSS i stedet.
rammekant
ja (eller 1) ingen
Bruges til at aktivere visning af en kant rundt om rammen. Udgået i HTML5. Brug CSS i stedet.
longdesc
URL
Bruges til at angive URL'en på en side, der indeholder en lang beskrivelse af indholdet af rammen. Er forældet. Brug CSS i stedet.
marginbredde
pixels
Bruges til at styre bredden af polstringen fra indholdet til rammens kant. Er forældet. Brug CSS i stedet.
src
URL
Angiver den dokument-URL, der skal vises i IFRAME.
vspace
pixels
Indstiller de lodrette margener fra rammen til det omgivende indhold. Er forældet. Brug CSS i stedet.
bredde
pixels %
Definerer bredden af rammen på en HTML-side.
Denne publikation er en oversættelse af artiklen " ", udarbejdet af det venlige projektteam