Hvorfor blev rammer fjernet i HTML5, men ikke iFrames? Når alt kommer til alt er der næsten ingen forskel mellem de to. I mange tilfælde ville brugen af en af dem give den samme output (undskyld mig hvis jeg tager fejl)?

Kommentarer

Svar

Der er et par misforståelser i dit indlæg. Først er frame og frameset -elementer udfases ikke i HTML5, de “re forældede (dvs. de “er blevet fjernet helt).

For det andet er frame og

-elementer er ikke det samme som iframe -elementet, og de giver heller ikke den samme output:

  • Elementet frameset erstatter body-elementet på siderne som et middel til at inkludere en anden dokumentmodel til websider: de er dårlige for brugervenlighed og tilgængelighed, og hvad de havde til hensigt at udføre er blevet fuldstændigt erstattet af CSS og allestedsnærværende udvikling på serversiden.

  • iframe -elementet gør derimod ikke ikke udskifte kroppen på en side. Det fungerer som et middel til at inkludere en ny browserkontekst indlejret i en indholdsblok. Det lider ikke under de samme problemer med tilgængelighed eller tilgængelighed som rammesætmodellen og bruges næsten overalt, hvor man har brug for at inkludere en indbygget browserkontekst (widgets er det mest produktive eksempel). 1

iframe i HTML5 får også yderligere funktioner, fordi den kan sandkasse , hvilket giver det overordnede dokument mulighed for at bestemme, hvad der bliver udført i det. Dette muliggør en vis grad af sikkerhed for det overordnede dokument (og besøgende til det overordnede dokument) ved indlejring af ikke-betroet indhold.


Noter

Note 1: elementet object overlapper noget med iframe -elementet, men det har en anden indholdsmodel (som hovedsagelig er beregnet til plugins), har sit eget sæt advarsler og har ikke sandboxing-attributter, som iframe -elementet har.

Kommentarer

  • Hvorfor er rammesætelementer dårlige for " anvendelighed " og " tilgængelighed " men iframe-elementer er ' t?
  • @meriton Rammesættet konstruerer en side ud af flere dokumenter alle med med den samme prioritet: dette medfører udfordringer for skærmlæsere , der ikke ved, hvilket dokument de skal fokusere på på et bestemt tidspunkt. I rammeelementer er derimod simpelthen integreret i en enkelt side: det ' er ikke anderledes end at have et indlejret billede.
  • Udfordringer for skærmlæsere: De blinde mennesker, jeg har talt med, har alle sagt, at de foretrækker, at navigationen sidder fast i en separat ramme (ikke iFrame), fordi de kan ignorere den og kun få den læst, når de vil. Den virkelige synder for skærmlæsere er Javascript og AJAX, hvilket gør sider helt ubrugelige med nuværende skærmlæsere (ja, min info er cirka 10 måneder gammel). Min personlige erfaring med skærmlæsere understøtter dette.
  • Jeg ' har spekuleret på, om mange 2005 ' s ofte krævede påstande om tilgængelighed har ikke været forsinket ' til en opdatering. Tak for uenigheden om det.
  • @ GlenPeterson den samme effekt uden rammeelement kan opnås ved at bruge CSS til at gøre blokelementet fast i visningsporten. Sådan skal det gøres, hvis du vil have den slags navigation. Det giver mere mening.

Svar

Rammesæt bruges ofte på en måde, hvor de bryder det grundlæggende princip om Internettet – at hvert dokument har en enkelt URL. Dette fører til problemer med sammenkædning, bogmærker, søgemaskiner osv.

Den typiske brug af et rammesæt ville være en ramme øverst med et logo eller overskrift, en ramme i siden med en menu og en indholdsramme. Men søgemaskiner indekserer individuelle sider, så når du finder en side i Google, linker den direkte til indholdssiden uden rammesættet, så du mister navigationen.Problemet med links og bogmærker er, at du typisk vil linke eller bogmærke en bestemt indholdsside inde i rammesættet uden at miste selve rammesættet. Det er ingen nem måde at gøre det på.

Årsagen til, at rammesæt i første omgang blev populære, var fordi de tillod et statisk placeret overskrift og en menu med et rulleindholdsområde. Men det kan opnås meget lettere med CSS i dag. Derudover tillod rammer dig at bruge almindelige elementer som logoer og menuer på flere sider uden brug af server-kodning. Dette var en fordel på et tidspunkt, hvor kodning på serversiden var kedelig og fejlbehæftet (dvs. CGI-scripts), og mange værter tillod ikke at scripte på serversiden. I dag med Content Management Systems (CMS) og bedre server-side platforme, dette håndteres meget bedre på serversiden.

Så dybest set er der ingen fordele ved at bruge et rammesæt, bare masser af problemer.

IFrames kan bruges på samme måde som rammesæt blev brugt, og i så fald fører de også til de samme problemer. Men der er også mange legitime anvendelser af iframes, der ikke fører til de samme problemer.

Svar

Rammer (rammesæt) fungerer som dokument. Det fjernes, fordi det bryder strukturen og navigationen i HTML-dokumenter. For eksempel. du har links i den ene ramme, indhold i den anden, du kan ikke åbne link fra siden i et nyt vindue, du kan ikke linke til en bestemt underside osv.

På den anden hånd iframes vil ikke bryde noget, hvis de bruges korrekt, fordi de er beregnet til sandkasseindhold (f.eks. annoncer).

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *