我是HTML5的新手,我做了一些研究,发现<frameset>
的使用已经过时,而我的阅读<iframes>
则没有。有人可以帮助我,我想获得与显示的示例相同的结果,但是在使用<iframes>
或其他替代<frameset>
时,HTLM5中没有弃用?
<frameset cols="20%,*,">
<frame src="menu.html">
<frame src="events.html">
</frameset>
答案 0 :(得分:29)
框架已被弃用,因为它们会导致网址导航和超链接出现问题,因为网址只会带给您索引页面(带框架集),并且无法指定每个框架窗口中的内容。 今天,网页通常由服务器端技术生成,例如PHP,ASP.NET,Ruby等。因此,通过将模板与这样的内容合并,可以简单地生成页面,而不是使用框架:
模板文件
<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>
如果您不完全支持服务器端脚本语言,则还可以使用服务器端包含(SSI)。这将允许你做同样的事情 - 即。从多个源文档生成单个网页。
但是,如果你真的只想让你的网页的一部分成为一个单独的“窗口”,你可以加载其他不一定位于你自己的服务器上的网页,你将不得不使用iframe
你可以这样模仿你的例子:
框架示例
<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>
可能有更好的方法来实现布局。我已经使用了CSS float属性,但您也可以使用表格或其他方法。
答案 1 :(得分:6)
虽然我同意其他所有人的意见,但如果您仍然决定使用框架,那么您可以在XHTML中执行index.html,然后在HTML5中执行框架内容。
答案 2 :(得分:3)
HTML 5确实支持iframe。添加了一些有趣的属性,如“sandbox”和“srcdoc”。
http://www.w3schools.com/html5/tag_iframe.asp
或者您可以使用
<object data="framed.html" type="text/html"><p>This is the fallback code!</p></object>