Varför togs ramar bort i HTML5, men inte iFrames? När allt kommer omkring är det nästan ingen skillnad mellan de två. I många fall använder någon av dem samma utdata (ursäkta mig om jag har fel)?
Kommentarer
- stackoverflow.com/questions/4263509/…
- tack för länken, men vad ' är den lilla skillnaden mellan de två, att iframes inte blev föråldrade.
- Eftersom ramar var en hemsk idé från början men iframes verkligen har några legitima användningsfall?
- På Stack Overflow: " Ramar utfasade i HTML5 men inte iFrames "
Svar
Det finns ett par missuppfattningar i ditt inlägg. Först, frame
och frameset
-elementen föråldras inte i HTML5, de ”re föråldrade (dvs. de ”har tagits bort helt).
För det andra frame
och
-element är inte samma sak som iframe
-elementet, och de ger inte samma utdata:
-
Elementet
frameset
ersätter kroppselementet på sidor som ett sätt att inkludera en annan dokumentmodell för webbsidor: de är dåliga för användbarhet och tillgänglighet och vad de tänkte att uppnå har helt ersatts av CSS och allestädes närvarande utveckling på serversidan. -
iframe
-elementet å andra sidan gör inte ersätta en sidas kropp. Det fungerar som ett sätt att inkludera ett nytt webbkontext inbäddat i ett innehållsblock. Det lider inte av samma användbarhets- eller tillgänglighetsproblem som ramuppsättningsmodellen och används nästan var som helst man behöver för att inkludera ett inbäddat webbkontext (widgets är det mest produktiva exemplet). 1
iframe
i HTML5 tar också till sig ytterligare funktioner genom att den kan sandlåda , så att förälderdokumentet kan bestämma vad som ska köras inom det. Detta möjliggör ett visst mått av säkerhet för det överordnade dokumentet (och besökare till det överordnade dokumentet) när man bäddar in otillförlitligt innehåll. sup> elementet object
överlappar något med iframe
-elementet, men det har en annan innehållsmodell (som huvudsakligen är avsedd för plugins), har sin egen uppsättning förbehåll och har inte sandboxing-attributen som iframe
-elementet har.
Kommentarer
- Varför är ramuppsättningselement dåliga för " användbarhet " och " tillgänglighet " men iframe-element är ' t?
- @meriton Ramuppsättningen skapar en sida av flera dokument alla med med samma prioritet: detta orsakar utmaningar för skärmläsare som inte vet vilket dokument de ska fokusera på vid någon specifik tidpunkt. ramelement, å andra sidan, är helt enkelt inbäddade i en enda sida: det ' är inte annorlunda än att ha en inbäddad bild.
- Utmaningar för skärmläsare: De blinda jag har talat med har alla sagt att de föredrar att navigering fastnar i en separat ram (inte iFrame) eftersom de kan ignorera den och bara läsa den när de vill. Den verkliga skyldige för skärmläsare är Javascript och AJAX vilket gör sidor helt oanvändbara med nuvarande skärmläsare (ja, min info är ungefär 10 månader gammal). Min personliga erfarenhet av skärmläsare stöder detta.
- Jag ' har undrat om många 2005 ' ofta begärda tillgänglighetspåståenden har inte varit försenade för en uppdatering '. Tack för oenigheten om det.
- @ GlenPeterson samma effekt utan ramelement kan uppnås genom att använda CSS för att göra blockelementet fixerat i visningsområdet. Det är HUR det ska göras om du vill ha den typen av navigering. Det är mer meningsfullt.
Svar
Ramar används ofta på ett sätt där de bryter mot den grundläggande principen om webben – att varje dokument har en enda URL. Detta leder till problem med länkning, bokmärken, sökmotorer etc.
Den typiska användningen av ett ramuppsättning skulle vara en ram högst upp med en logotyp eller rubrik, en ram på sidan med en meny och en innehållsram. Men sökmotorer indexerar enskilda sidor, så när du hittar en sida på Google länkar den direkt till innehållssidan utan ramuppsättningen, så att du förlorar navigeringen.Problemet med länkar och bokmärken är att du vanligtvis vill länka eller bokmärka en viss innehållssida i ramuppsättningen utan att förlora själva ramuppsättningen. Det är inget enkelt sätt att göra det.
Anledningen till att ramuppsättningar blev populära i första hand var att de tillät en statiskt placerad rubrik och en meny med ett rullningsbart innehållsområde. Men det kan uppnås mycket lättare med CSS idag. Dessutom tillät ramar dig att använda vanliga element som logotyper och menyer på flera sidor utan att använda någon server-sida kodning. Detta var en fördel vid en tidpunkt där serverns kodning var tråkig och felbenägen (dvs. CGI-skript), och många värdar tillät inte alls skriptserver på serversidan. plattformar hanteras detta mycket bättre på serversidan.
Så i princip finns det inga fördelar med att använda en ramuppsättning, bara många problem.
IFrames kan användas på samma sätt som ramuppsättningar användes, och i så fall leder de också till samma problem. Men det finns också många legitima användningar av iframes som inte leder till samma problem.
Svar
Ramar (ramuppsättning) fungerar som dokument. Det tas bort eftersom det bryter struktur och navigering i HTML-dokument. T.ex. du har länkar i en ram, innehåll i den andra, du kan inte öppna länken från sidan i ett nytt fönster, du kan inte länka till specifik undersida etc.
Å andra sidan hand iframes kommer inte att bryta någonting om de används korrekt eftersom de är avsedda att sandlåda innehåll (t.ex. annonser).