2013-08-15 11 views
20

Jestem nowy w HTML5 i zrobiłem pewne badania i okazało się, że użycie <frameset> jest nieaktualne i z tego co czytam <iframes> nie są. Czy ktoś może mi pomóc, chcę uzyskać taki sam wynik, jak pokazany przykład, ale podczas korzystania z <iframes> lub innego zamiennika dla <frameset>, który nie jest przestarzały w HTLM5?Alternatywa dla ramek w html5 używających iframes

<frameset cols="20%,*,"> 
    <frame src="menu.html"> 
    <frame src="events.html"> 
</frameset> 
+1

Nie ma w tym celu łatwego zamiennika. –

+0

Co konkretnie dotyczy ram, które próbujesz odtworzyć? Czy chcesz tylko dwie kolumny? –

+0

Chcę mieć tę samą funkcjonalność, co przy korzystaniu z – user2682329

Odpowiedz

1

HTML 5 obsługuje ramki iframe. Dodano kilka interesujących atrybutów, takich jak "sandbox" i "srcdoc".

http://www.w3schools.com/html5/tag_iframe.asp

lub użyć

<object data="framed.html" type="text/html"><p>This is the fallback code!</p></object> 
+1

to wstrzykuje html, head tagi, czy to nadal jest prawidłowy html? – chulian

26

Ramki są nieaktualne, ponieważ spowodował kłopoty dla żeglugi URL i hiperłącz, bo url byłoby po prostu wziąć do Ciebie stronę indeksu (z ramek) i nie było sposobu, aby określić, co było w każdym oknie ramek. Obecnie strony internetowe są często generowane przez technologie po stronie serwera, takich jak PHP, ASP.NET, Ruby itp Więc zamiast używać ramek, strony mogą być łatwo generowane przez scalanie szablon z tego typu treści:

Szablon pliku

<html> 
<head> 
<title>{insert script variable for title}</title> 
</head> 

<body> 
    <div class="menu"> 
    {menu items inserted here by server-side scripting} 
    </div> 
    <div class="main-content"> 
    {main content inserted here by server-side scripting} 
    </div> 
</body> 
</html> 

Jeśli nie masz pełne wsparcie dla języka skryptowego po stronie serwera, można również użyć po stronie serwera obejmuje (SSI). To pozwoli ci zrobić to samo - tzn. wygenerować pojedynczą stronę z wielu dokumentów źródłowych.

Ale jeśli naprawdę chcesz, aby sekcja strony internetowej była oddzielnym "oknem", do którego możesz załadować inne strony internetowe, które niekoniecznie znajdują się na twoim własnym serwerze, będziesz musiał użyć numeru iframe.

Można naśladować swój przykład tak:

ramek Przykład

<html> 
<head> 
    <title>Frames Test</title> 
    <style> 
    .menu { 
     float:left; 
     width:20%; 
     height:80%; 
    } 
    .mainContent { 
     float:left; 
     width:75%; 
     height:80%; 
    } 
    </style> 
</head> 
<body> 
    <iframe class="menu" src="menu.html"></iframe> 
    <iframe class="mainContent" src="events.html"></iframe> 
</body> 
</html> 

Są pewnie lepsze sposoby, aby osiągnąć ten układ. Użyłem atrybutu CSS float, ale można również użyć tabel lub innych metod.

6

Podczas gdy zgadzam się z każdym innym, jeśli jesteś martwy i tak ustawisz używanie ramek, możesz po prostu zrobić index.html w XHTML, a następnie zrobić zawartość ramek w HTML5.