Dlaczego ramki były przestarzałe w HTML5, ale nie iFrames? W końcu nie ma prawie żadnej różnicy między nimi. W wielu przypadkach użycie jednego z nich dałoby to samo wyjście (wybacz mi, jeśli się mylę)?
Dlaczego ramki były przestarzałe w HTML5, ale nie iFrames? W końcu nie ma prawie żadnej różnicy między nimi. W wielu przypadkach użycie jednego z nich dałoby to samo wyjście (wybacz mi, jeśli się mylę)?
Odpowiedzi:
W twoim poście jest kilka nieporozumień. Po pierwsze, elementy frame
i frameset
nie są przestarzałe w HTML5, są przestarzałe (tj. Zostały całkowicie usunięte).
Po drugie, elementy frame
i frameset
nie są tym samym co iframe
element, ani nie dają tego samego wyniku:
frameset
Elementem zastępuje element ciała w stron jako sposób włączenia innego modelu dokumentu dla stron internetowych: są złe dla użyteczności i dostępności, a co zamierzają osiągnąć zostały całkowicie zastąpione przez CSS i wszechobecnego rozwoju po stronie serwera.
Z iframe
drugiej strony element nie zastępuje treści strony. Działa jako sposób na włączenie nowego kontekstu przeglądania osadzonego w bloku treści. Nie ma takich samych problemów z użytecznością lub dostępnością jak model zestawu ramek i jest używany prawie wszędzie tam, gdzie trzeba uwzględnić osadzony kontekst przeglądania (widgety są najbardziej płodnym przykładem). 1
iframe
W HTML5 odbywa się również na dodatkowe funkcje, w które może być piaskownicy , pozwalając dokument nadrzędny zdecydować, co zostanie wykonany w nim. Pozwala to na pewien stopień bezpieczeństwa dokumentu nadrzędnego (i osób odwiedzających dokument nadrzędny) podczas osadzania niezaufanej treści.
Uwaga 1:object
elementem nieco pokrywa się z iframe
elementu, ale ma inny model zawartości (który przeznaczony jest głównie dla wtyczek), ma swój własny zestaw zastrzeżeń i nie ma podziału na piaskownice atrybuty iframe
element ma.
Ramki (zestaw ramek) działają jak dokument. Jest usunięty, ponieważ psuje strukturę dokumentów HTML i nawigację. Na przykład. masz linki w jednej ramce, treść w drugiej, nie możesz otworzyć linku ze strony w nowym oknie, nie możesz linkować do konkretnej podstrony itp.
Z drugiej strony, iframe niczego nie zepsują, jeśli zostaną użyte poprawnie, ponieważ mają na celu zawartość w piaskownicy (np. Reklamy).
Zestawy ramek są często używane w taki sposób, że łamią podstawową zasadę sieci - każdy dokument ma jeden adres URL. Prowadzi to do problemów z linkowaniem, zakładkami, wyszukiwarkami itp.
Typowe zastosowanie zestawu ramek to ramka u góry z logo lub nagłówkiem, ramka z boku z menu i ramka zawartości. Ale wyszukiwarki indeksują poszczególne strony, więc gdy znajdziesz jakąś stronę w Google, będzie ona prowadzić bezpośrednio do strony treści bez zestawu ramek, więc stracisz nawigację. Problem z linkami i zakładkami polega na tym, że zazwyczaj chcesz połączyć lub utworzyć zakładkę do określonej strony treści w zestawie ramek, bez utraty samego zestawu ramek. Nie jest to łatwy sposób.
Powodem, dla którego zestawy ramek stały się popularne, było to, że umożliwiały statycznie pozycjonowany nagłówek i menu z przewijanym obszarem zawartości. Ale można to dziś osiągnąć znacznie łatwiej dzięki CSS. Ponadto ramki umożliwiają używanie wspólnych elementów, takich jak logo i menu na wielu stronach, bez konieczności kodowania po stronie serwera. Było to zaletą w czasach, gdy kodowanie po stronie serwera było uciążliwe i podatne na błędy (tj. Skrypty CGI), a wiele hostów w ogóle nie zezwalało na skrypty po stronie serwera. Obecnie w przypadku systemów zarządzania treścią (CMS) i lepszych platform po stronie serwera jest to o wiele lepiej obsługiwane po stronie serwera.
Zasadniczo nie ma korzyści z używania zestawu ramek, po prostu wiele problemów.
Ramek IFrame można używać w taki sam sposób, jak zestawów ramek, i w takim przypadku prowadzą one do tych samych problemów. Ale istnieje również wiele uzasadnionych zastosowań ramek iframe, które nie prowadzą do tych samych problemów.