在HTML5中使用框架的任何方式?

问题描述 投票:42回答:6

对于学校我必须建立一个网站,它必须使用那些糟糕的老该死的框架。我已经向老师抱怨这个没有任何成功:(

我想使用HTML5,但似乎不推荐使用框架。我真的需要使用XHTML或HTML 4吗?是否有一些解决方法使我的页面使用框架验证HTML5?

html5 frames
6个回答
27
投票

现在,有很多例子让我回答关于为什么遵循验证规则很重要的问题。我还说过,有时你只需要成为反叛者并违反规则,并记录原因。

你可以在这个例子中看到framesets do work in HTML5 still。但是,我必须下载代码并在顶部添加HTML5文档类型。但框架集元素仍然被识别,并且实现了期望的结果。

因此,知道使用框架集是完全荒谬的,并且知道你必须按照教授/老师的指示使用它,你可以只处理W3C验证器中的单个验证错误并同时使用HTML5视频元素以及不推荐使用的框架集元素。

<!DOCTYPE html>
<html>
    <head>
    </head>
    <!-- frameset is deprecated in html5, but it still works. -->
    <frameset framespacing="0" rows="150,*" frameborder="0" noresize>
        <frame name="top" src="http://www.npscripts.com/framer/demo-top.html" target="top">
        <frame name="main" src="http://www.google.com" target="main">
    </frameset>
</html>

请记住,如果它是针对学校的项目,那么一旦浏览器供应商完全删除对HTML5的框架集支持,很可能不会在一两年内出现这种情况。只要知道你是对的,只要做你的老师/教授要求获得的成绩:)

更新:

顶级父文档使用XHTML,框架使用HTML5。验证器没有抱怨框架集是非法的,并且没有抱怨视频元素。

index.php文件:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html>
    <head>
    </head>
    <frameset framespacing="0" rows="150,*" frameborder="0" noresize>
        <frame name="top" src="http://www.npscripts.com/framer/demo-top.html" target="top">
        <frame name="main" src="video.html" target="main">
    </frameset>
</html>

video.html:

<!doctype html>
<html>
    <head>
    </head>
    <body>
        <div id="player-container">
            <div class="arrow"></div>
            <div class="player">

                <video id="vid1" width="480" height="267" 
                    poster="http://cdn.kaltura.org/apis/html5lib/kplayer-examples/media/bbb480.jpg"
                    durationHint="33" controls>
                    <source src="http://cdn.kaltura.org/apis/html5lib/kplayer-examples/media/bbb_trailer_iphone.m4v" />

                    <source src="http://cdn.kaltura.org/apis/html5lib/kplayer-examples/media/bbb400p.ogv" />

                </video>

        </div>
    </body>
</html>

36
投票

我知道你的课程结束了,但在专业编码方面,让这成为一个教训:

  • “弃用”是指“避免使用;将来会被删除”
  • 弃用的东西仍然有用 - 只是不要指望支持或面向未来
  • 如果需求需要它,并且您无法协商它,只需使用已弃用的构造。 如果你真的担心,那就开发替代实现,并为不可避免的失败做好准备 现在为额外的工作收费。通过请求弃用的功能,他们要求您将工作量翻倍。无论如何你会再次看到它,所以不妨前面加载它。 当失败发生时,让感兴趣的一方知道这是你所担心的;你准备好了,但这需要一些时间 尽可能快地部署解决方案(会有错误) 获得代表以防止过度停机。

4
投票

也许一些AJAX页面内容注入可以作为替代,虽然我仍然无法解决为什么你的老师会拒绝删除框架的网站。

另外,您个人想要HTML5的具体原因是什么?

但如果没有,我相信<iframe>s仍然存在。


2
投票

为此,您将不得不求助于XHTML或HTML 4.01。虽然iframe仍然存在于HTML5中,但不建议使用它来嵌入用户的内容。

并且一定要告诉你的老师,自九十年代末以来,框架并不是最先进的。他们根本没有受过任何教育,除非是出于历史原因。


1
投票

框架在HTML5中并未弃用,但在XHTML 1.1 Strict和2.0中已弃用,但仍保留在XHTML Transitional中并在HTML5中返回。另外here是一篇关于使用CSS来模仿没有帧的帧的有趣文章。我刚刚在IE 8,FF 3,Opera 11,Safari 5,Chrome 8中进行了测试。我喜欢框架,但他们确实有问题,尤其是搜索引擎,书签和打印以及CSS,你可以创建打印或仅显示内容。我希望升级Alex的XHTML / CSS框架而不使用HTML5 / CSS3的框架解决方案。


1
投票

我在我的继续教育商业网站上使用了超过15年的框架。框架允许导航框架使用目标特征将材料加载到主框架中,同时保持导航框架不变。此外,Perl脚本从将输出返回到同一帧的帧形式运行得很好。我爱框架并将继续使用它们。 CSS对于实际使用来说太复杂了。我在使用带有IE,Safari,Chrome或Firefox的HTML5的框架时没有遇到任何问题。

© www.soinside.com 2019 - 2024. All rights reserved.