2013-08-15 24 views
20

Sono nuovo di HTML5 e ho fatto qualche ricerca e ho scoperto che l'uso di <frameset> non è aggiornato e da quello che ho letto <iframes> non lo sono. Quindi qualcuno può aiutarmi, voglio ottenere lo stesso risultato dell'esempio mostrato ma usando <iframes> o un altro sostituto per <frameset> che non è deprecato in HTLM5?Alternativa per frame in html5 utilizzando iframes

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

Per questo non c'è una facile sostituzione. –

+0

Cosa, in particolare sui frame, stai cercando di riprodurre? Vuoi solo due colonne? –

+0

Voglio avere la stessa funzionalità di quando uso – user2682329

risposta

1

HTML 5 supporta iframe. C'erano alcuni attributi interessanti aggiunti come "sandbox" e "srcdoc".

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

oppure è possibile utilizzare

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

questo inietta html, head tag, è ancora un codice HTML valido? – chulian

26

frame sono stati deprecati perché hanno causato problemi per la navigazione URL e collegamenti ipertestuali, poiché l'URL sarebbe solo prendere a voi la pagina di indice (con il set di frame) e non c'era modo di specificare cosa c'era in ciascuna delle finestre del frame. Oggi, le pagine web sono spesso generati dalle tecnologie server-side come PHP, ASP.NET, Ruby ecc Così, invece di usare i frame, le pagine possono semplicemente essere generati dalla fusione di un modello con contenuti di questo tipo:

file modello

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

Se non si ha il pieno supporto per un linguaggio di scripting server-side, si potrebbe anche utilizzare il server-side include (SSI). Questo ti permetterà di fare la stessa cosa - cioè. generare una singola pagina web da più documenti di origine.

Ma se si vuole davvero che una sezione della pagina Web sia una "finestra" separata in cui è possibile caricare altre pagine Web che non si trovano necessariamente sul proprio server, sarà necessario utilizzare uno iframe.

Si potrebbe emulare il vostro esempio come questo:

Frames Esempio

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

Ci sono modi probabilmente meglio per ottenere il layout. Ho usato l'attributo CSS float, ma potresti anche usare tabelle o altri metodi.

6

Mentre sono d'accordo con tutti gli altri, se sei morto impostato sull'uso dei frame, puoi semplicemente fare index.html in XHTML e poi fare il contenuto dei frame in HTML5.