Hvorfor ble rammer fjernet i HTML5, men ikke iFrames? Tross alt er det nesten ingen forskjell mellom de to. I mange tilfeller vil det å bruke en av dem gi samme utdata (tilgi meg hvis jeg tar feil)?

Kommentarer

Svar

Det er et par misforståelser i innlegget ditt. Først, frame og frameset elementene blir ikke utfaset i HTML5, de «re foreldet (dvs. at de «er fjernet helt).

For det andre, frame og

-elementene er ikke det samme som iframe -elementet, og de gir heller ikke den samme utgangen:

  • frameset -elementet erstatter kroppselementet på sider som et middel til å inkludere en annen dokumentmodell for websider: de er dårlige for brukervennlighet og tilgjengelighet, og hva de hadde til hensikt å oppnå er fullstendig erstattet av CSS og allestedsnærværende utvikling av server-siden.

  • iframe -elementet derimot gjør ikke erstatte kroppen på en side. Det fungerer som et middel til å inkludere en ny surfekontekst innebygd i en innholdsblokk. Det lider ikke av de samme bruks- eller tilgjengelighetsproblemene som rammesettmodellen, og brukes nesten hvor som helst man trenger for å inkludere en innebygd surfekontekst (widgets er det mest produktive eksemplet). 1

iframe i HTML5 får også flere funksjoner ved at den kan sandkasse , slik at foreldredokumentet kan bestemme hva som skal utføres i det. Dette gir en viss grad av sikkerhet for foreldredokumentet (og besøkende til foreldredokumentet) når det legges inn ikke-klarert innhold.


Merknader

Merk 1: object -elementet overlapper noe med iframe -elementet, men det har en annen innholdsmodell (som hovedsakelig er ment for plugins), har sitt eget sett med forbehold, og har ikke sandboksegenskapene som iframe -elementet har.

Kommentarer

  • Hvorfor er rammesettelementer dårlige for " brukbarhet " og " tilgjengelighet " men iframe-elementene er ikke ' t?
  • @meriton Rammesettet konstruerer en side ut av flere dokumenter, alle med med samme prioritet: dette medfører utfordringer for skjermlesere som ikke vet hvilket dokument de skal fokusere på til enhver tid. rammeelementer er derimot ganske enkelt innebygd i en enkelt side: det ' er ikke annerledes enn å ha et innebygd bilde.
  • Utfordringer for skjermlesere: De blinde menneskene jeg har snakket med, har alle sagt at de foretrekker at navigering sitter fast i en egen ramme (ikke iFrame) fordi de kan ignorere det og bare lese det når de vil. Den virkelige skyldige for skjermlesere er Javascript og AJAX, noe som gjør sider helt ubrukelige med gjeldende skjermlesere (vel, min info er omtrent 10 måneder gammel). Min personlige erfaring med skjermlesere støtter dette.
  • Jeg ' har lurt på om mange 2005 ' s ofte påkrevde tilgjengelighetspåstander ' t har blitt forsinket for en oppdatering. Takk for uenigheten om det.
  • @ GlenPeterson den samme effekten uten rammeelement kan oppnås ved å bruke CSS for å gjøre blokkelementet fast i visningsområdet. Slik bør det gjøres hvis du vil ha den slags navigering. Det gir mer mening.

Svar

Rammesett brukes ofte på en måte der de bryter det grunnleggende prinsippet om Internett – at hvert dokument har en enkelt URL. Dette fører til problemer med lenking, bokmerker, søkemotorer osv.

Den typiske bruken av et rammesett vil være en ramme øverst med en logo eller topptekst, en ramme på siden med en meny og en innholdsramme. Men søkemotorer indekserer individuelle sider, så når du finner en side i Google, vil den lenke direkte til innholdssiden uten rammesettet, slik at du mister navigasjonen.Problemet med lenker og bokmerker er at du vanligvis vil koble eller bokmerke en bestemt innholdsside inne i rammesettet, uten å miste selve rammesettet. Det er ingen enkel måte å gjøre det på.

Årsaken til at rammesett ble populært i utgangspunktet var fordi de tillot en statisk plassert overskrift og en meny med et rullende innholdsområde. Men det kan oppnås mye lettere med CSS i dag. Videre rammer tillot deg å bruke vanlige elementer som logoer og menyer på flere sider uten å bruke noen server-side koding. Dette var en fordel i en tid hvor server-side koding var kjedelig og feil utsatt (dvs. CGI-skript), og mange verter tillot ikke skripter på serversiden i dag. plattformer, håndteres dette mye bedre på serversiden.

Så i utgangspunktet er det ingen fordeler med å bruke et rammesett, bare mange problemer.

IFrames kan brukes på samme måte som rammesett ble brukt, og i så fall fører de også til de samme problemene. Men det er også mange legitime bruksområder for iframes som ikke fører til de samme problemene.

Svar

Rammer (rammesett) fungerer som dokument. Det fjernes fordi det bryter strukturen og navigasjonen i HTML-dokumenter. F.eks. du har lenker i en ramme, innhold i den andre, du kan ikke åpne lenke fra siden i et nytt vindu, du kan ikke lenke til spesifikk underside osv.

På den andre hånd iframes vil ikke bryte noe hvis de brukes riktig fordi de er ment å sandkasse innhold (f.eks. annonser).

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *