代码之家  ›  专栏  ›  技术社区  ›  sparkes

HTML版本选择[关闭]

  •  17
  • sparkes  · 技术社区  · 16 年前

    当开发一个新的基于Web的应用程序时,您应该瞄准哪个版本的HTML?

    编辑:

    酷,我只是想从别人那里得到一种感觉,我倾向于在自己的作品中严格使用XHTML 1.0,当其他人参与到内容创建中时,我会过渡使用XHTML 1.0。

    我将第一篇XHTML1.0过渡文章标记为“正确答案”,但是我坚信,在那个时候给出的所有答案都同样有效。

    14 回复  |  直到 8 年前
        1
  •  7
  •   Dillie-O    16 年前

    我会为XHTML Transitional 1.0拍摄。仍然有一些细微的差别不喜欢XHTML的严格性,我现在看到的大多数编辑器都会给你适当的推动,以确保事情做得正确。

        2
  •  25
  •   Community CDub    7 年前

    HTML 4.01。绝对有 没有理由 除了实验性的或学术性的问题,你只想在“模糊的”网络浏览器上运行XHTML。

    XHTML的过渡是完全没有意义的,甚至 那些 浏览器,所以我不知道为什么有人会这样做。事实上,很多人都会建议这样做,这是非常令人担忧的。

    我想说瞄准HTML4.01是最容易预测的,但Teifion是对的,“任何呈现页面的东西都可以做到”。

    响应 Michael Stum :

    XHTML是基于XML的,因此它允许更容易的解析,并且您还可以使用大多数IDE的XML组件进行编程查询和插入。

    这当然不是真的。Web上的很多XHTML(如果不是大多数的话)都不符合XML有效性(而且不需要——它不是作为XML发送的)。在处理XML时,试图将其当作XML来处理,只会给您带来很多麻烦。例如,堆栈溢出时的此页面将使用许多不可原谅的XML工具生成错误,因为这些工具的标记无效。

        3
  •  8
  •   Kornel    8 年前

    过渡时期 XHTML和HTML的风格已被弃用。他们只是故意的 对于不支持CSS的旧用户代理 . 见 explanation in the DTD .

    W3C建议您尽可能严格使用,而现在这是完全可能的。

    XHTML/1.1和HTML5中已经删除了过渡版本。


    XHTML/1.0与HTML4具有完全相同的元素和属性(语义)。XHTML/1.0规范甚至没有指定任何元素!除了语法之外,它还引用了HTML4。

    此外,如果将文档发送为 text/html 以及与IE和其他仅HTML浏览器兼容所需的。

    2008年,正确的选择将是HTML4严格:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

    但到2016年,只有 one version of HTML 这很重要。

     <!DOCTYPE html>
    
        4
  •  3
  •   Michael Stum    16 年前

    @迈克:

    虽然我同意在进行页面呈现时不需要有效性(毕竟,我们必须在……中保持IE6兼容性),但是创建兼容且有效的有效XHTML并不是问题。当人们习惯于HTML4并使用贬值的标签和属性时,问题就开始出现了。

    仅仅因为网络是一堆垃圾,并不意味着每一个新页面都需要是一堆垃圾。因此,大多数验证错误都是很小的,不应该花费太长时间来修复,比如属性上缺少引号。

    但这可能仍然是毫无意义的,因为W3C不知道他们到底想去哪里(见HTML5),而且某个大型浏览器公司也不关心操作系统,所以一个网站可以发送它的doctype,因为HTML1337很糟糕,浏览器仍然会尝试呈现它。

        5
  •  3
  •   Chris Ani    16 年前

    有一些 compelling warnings 关于xhtml的用法,主要围绕这样一个事实:此类文档的mime类型应发送为:

    Content-type: application/xhtml+xml

    然而,IE6和IE7不支持这一点,因此网站必须将其发送为:

    Content-type: text/html

    不幸的是,这种方法 considered harmful .

    有些人还哀叹这样一个事实:尽管XHTML的目的是让XML解析器能够解析网页,但实际上它由于在现有网站上的错误使用而失败。

    我仍然更喜欢用XHTML 1.0严格地编写文档,主要是因为这个挑战,以及 cleanliness 以及错误检查 validator 给予。我更喜欢这种语法,因为它迫使我在标记结束时非常明确,等等。对我来说,它更多的是一种个人选择,而不是纯粹的技术选择。

        6
  •  2
  •   Justin Bennett    16 年前

    Dillie-O对XHTML 1.0过渡版的回答是正确的,但是我建议为XHTML 1.0 Strict拍摄,如果您绝对需要某种功能,那么只有在过渡版上才允许使用Strict。

        7
  •  1
  •   Teifion    16 年前

    呈现页面的任何内容都会这样做,不管您使用的是哪种流行标准。XHTML更严格,可能“更好”,但我看不出一个标准比另一个标准有什么优势。

        8
  •  1
  •   Ross    16 年前

    我完全赞成XHTML的严格要求。我坚信HTML应该更像XML。如果您知道XML并且W3的验证器让您走上正确的道路,那么验证它并不难。

    XHTML 2.0正朝着W3长期以来一直追求的方向发展——语义Web。XHTML 2.0对我来说最大的好处是,Web上的每个一致的页面都可以理解为内容,或者是一篇文章(因为页面就是文档),因为它们都适用于相同的标准。然后,您就可以构建以完全不同的方式呈现内容的Intelpreters(即浏览器),这里实际上有成千上万的想法等待您。

        9
  •  1
  •   Shadow2531    16 年前

    如果您想以HTML兼容的方式使用XHTML 1.0,那就好了。但是,请注意,W3C验证器和XHTML DTD对mime类型以及浏览器之间的行为(如<map>名称/id匹配)一无所知。DTD也不知道浏览器如何支持某些元素(例如<embed>)。

    这意味着XHTML DTD和验证器不能反映实际情况,试图遵守它们是毫无意义的。

    如果您希望使用XHTML,以便使用/>(HTML兼容的地方)关闭某些元素,只需使用HTML5标记(因此浏览器处于完全标准模式)。HTML5允许以HTML兼容的方式使用/>(与使用XHTML 1.0标记和文本/HTML时必须使用的HTML兼容方式相同)。然后,只需坚持在浏览器中工作(您比某些DTD更了解)。

    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="utf-8"/>
            <title></title>
        </head>
        <body>
            <p>Line1<br/>Line2</p>
            <p><img src="" alt="blank"/></p>
            <p><input type="text"/></p>
            <p><embed type="application/x-something" src=""/></p>
        </body>
    </html>
    

    然后,使用 http://validator.nu/ 以确保它至少成型良好。

        10
  •  1
  •   user86297    15 年前

    如果您有工具可以像其他任何XML文档一样生成XHTML,那么就使用XHTML。但是,当您只使用纯文本模板、文本连接等时,您可以使用好的旧HTML 4.01。

    浏览器现在开始支持这个已有10年历史的标准。

    重要: Avoid being called a bozo when producing XML

        11
  •  0
  •   Michael Stum    16 年前

    就个人而言,我更喜欢XHTML 1.0过渡。

    XHTML是基于XML的,因此它允许更容易的解析,并且您还可以使用大多数IDE的XML组件进行编程查询和插入。

    过渡性并不像严格的过渡性那样严格,这使得工作相对容易,而严格的过渡性往往是一个皮塔。 Comparison between Transistional and Strict

    1.0比1.1“更兼容”,1.1似乎仍处于某种开发阶段。

        12
  •  0
  •   graham.reeds    16 年前

    我的目标是XHTML 1.0 Trans。因此,当浏览器中的bug被修复后,你就不会突然全力以赴地想办法弄清楚到底需要改变什么了。

    在我看来,1.1是Borked,2.0已经被粉碎了:我真的需要/想要一个页眉/页脚标签吗?

        13
  •  0
  •   Joeri Sebrechts    16 年前

    我认为使用XHTML还是纯HTML并不重要。这里的最终目标是通过可预测的渲染实现低维护和快速开发。只要有验证代码,就可以通过使用XHTML或HTML来实现这一点。我甚至听过这样的争论:最好以怪癖模式为目标,因为新版本的浏览器不会改变怪癖模式,所以维护很容易。

    最后,一切都变成了标签汤,这是有原因的,因为让Web应用开发人员编写无错误的HTML意味着要求他们编写无缺陷的代码。验证程序没有帮助,因为它们只验证初始页面视图。这也是为什么我从来没有看到XHTML中除了静态站点之外还充当任何东西的XML的意义。Web应用程序开发人员必须为其Web应用程序提供服务的傲慢程度是惊人的。

        14
  •  -1
  •   mattl    16 年前

    HTML 4.0 Strict或ISO HTML。