2013-08-15 5 views
20

Ich bin neu in HTML5 und ich habe einige Nachforschungen gemacht und festgestellt, dass die Verwendung von <frameset> veraltet ist und was ich gelesen <iframes> sind nicht. Kann mir jemand helfen, ich möchte das gleiche Ergebnis wie im Beispiel erhalten, aber während der Verwendung von <iframes> oder einem anderen Ersatz für <frameset>, die in HTLM5 nicht veraltet ist?Alternative für Frames in html5 mit iframes

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

Es gibt keinen einfachen Drop-In-Ersatz dafür. –

+0

Was, speziell über Frames, versuchst du zu reproduzieren? Willst du nur zwei Spalten? –

+0

Ich möchte die gleiche Funktionalität wie bei der Verwendung von haben – user2682329

Antwort

1

HTML 5 unterstützt iframes. Es wurden einige interessante Attribute wie "sandbox" und "srcdoc" hinzugefügt.

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

oder können Sie verwenden

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

dies injiziert HTML, Kopf Tags, ist das immer noch ein gültiger HTML-Code? – chulian

26

Frames gelten als veraltet, weil sie Probleme für URL-Navigation und Hyperlinks verursacht, weil die URL würde man einfach nehmen Sie die Index-Seite (mit dem Frame-Set) und es gab keine Möglichkeit zu spezifizieren, was in jedem der Rahmenfenster war.

Template-Datei: Heute werden Webseiten oft erzeugt durch serverseitige Technologien wie PHP, ASP.NET, Rubin usw. Anstatt also mit Frames, Seiten können einfach durch die Fusion eine Vorlage mit Inhalten wie diese erzeugt werden

<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> 

Wenn Sie einen serverseitigen Skriptsprache volle Unterstützung nicht haben, können Sie auch Server-Side Includes (SSI). Dadurch können Sie dasselbe tun - d. Generieren Sie eine einzelne Webseite aus mehreren Quelldokumenten.

Wenn Sie jedoch nur einen Abschnitt Ihrer Webseite als separates "Fenster" haben möchten, in das Sie andere Webseiten laden können, die sich nicht unbedingt auf Ihrem eigenen Server befinden, müssen Sie iframe verwenden.

Sie könnten Ihr Beispiel so emulieren:

Frames Beispiel

<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> 

Es gibt wahrscheinlich bessere Möglichkeiten, um das Layout zu erzielen. Ich habe das Attribut CSS float verwendet, aber Sie könnten auch Tabellen oder andere Methoden verwenden.

6

Während ich mit allen anderen einverstanden bin, wenn Sie ohnehin auf Frames eingestellt sind, können Sie einfach index.html in XHTML und dann den Inhalt der Frames in HTML5 machen.