题 我应该从HTML还是XHTML开始? [关闭]


那么从哪一个开始,HTML或XHTML?我是一名初学者,希望拥有坚实的标记语言基础,但在我开始学习时,我发现有些人使用HTML和一些XHTML。


17
2018-01-01 20:19


起源


作为初学者,我不知道自己在HTMl或XHTML之间选择哪一个,而且大多数开发人员投票支持XHTML,所以我将使用XHTML。 - Jasmine Appelblad
如果你是初学者,你应该使用除HTML 4以外的任何东西.XHTML是一种由5到10年前的XML热情所引发的时尚。 XHTML 2事实上已经死亡。 XHTML 5只不过是一个标记手势来安抚那些使用XML for HTML而不建议W3C使用的标记手势。尽管你选择了答案,但没有理由使用它。 - cletus
@cletus:HTML5是草稿。建议不要将HTML5的HTML或XHTML序列化用于W3C。 - Alohci
@Alohci:不建议使用完整的HTML5,但您可以非常安全地将它的一些方面添加到您的代码中 - Casebash
@Casebash。确实。在HTML和XHTML序列化中。 - Alohci


答案:


XHTML非常像HTML,但不是草率的。我真的想不出除了懒惰以外不使用它的原因。


11
2018-01-01 20:21



有人不同意: hixie.ch/advocacy/xhtml - ntd
大多数即使不是所有经验丰富的高级开发人员也不会同意你的观点,新手类型,是的,他们肯定会同意。 - DoctorLouie
这就是你不应该真正使用XHTML的原因: stackoverflow.com/questions/1770193/ies-xhtml-compatibility - DoctorLouie
@Daniel:实际上,这正是他所说的。他解释说,XHT​​ML作为text / html是坏的,IE6不支持XHTML + HTML。使用XHTML会丢失一些便利(如HTML实体; XHTML实体不同)。没有理由使用XHTML。 XHTML 2已经死亡,而XHTML 5只是出于兼容性原因而已经存在使用XHTML。 - cletus
HTML是一种定义良好的语言,就像XHTML一样。关于它没什么邋。的。任何一个都可以实现错误,并成为无效的“标签汤”。 - jpsimons


在这一点上,传统智慧已经完全圆了。回到2002年,每个人都对XHTML赞不绝口,但很多人(包括我自己)都没有充分的理由。这只是一个很酷的新事物,每个人都跳上了潮流,开始推杆 XHTML 在他们的简历技能而不仅仅是 HTML 看起来如此简单和不起眼。

现在正在发生的事情是,随着HTML5的完成,人们开始意识到优质的老式HTML没有任何问题。这是网络的语言。以下是我看到的XHTML的优点和缺点:

  • 允许您将非xhtml XML嵌入到您的网页中,例如SVG元素。使用纯HTML不可能实现这一点。
  • 允许您使用XML解析器轻松解析文档,这样可以避免使用hpricot或BeautifulSoup,如果您想要在网站模板中用H2标记替换所有H1标记。

精读

  • IE不理解'application / xhtml + xml'mime类型,所以只要它关注你发送格式错误的HTML。
  • 它有点冗长。 <br> 和 <table cellspacing=0 cellpadding=0> 在我看来,比看起来更整洁 <br /> 和 <table cellspacing="0" cellpadding="0">

XHTML必须有一些我缺少的优点,但是我自己现在使用HTML来处理所有事情。


23
2018-01-01 20:38



我不知道。 SGML需要引号,但我一直认为HTML没有。 dev.w3.org/html5/markup/syntax.html#syntax-attributes - jpsimons
是。克莱图斯错了。通常,使用不带引号的属性是有效的HTML。事实上,我认为引用属性更整洁,但这是个人偏好,其他合理的人可能不同意。 - Alohci
@Alohci:严格的HTML不需要引号,这意味着它更多的是未来兼容性而不是个人偏好吗? - Casebash
@Casebash - 没有.HTML 4不需要它,HTML / 5的文本/ html语法也没有。易于检查。复制<!DOCTYPE html PUBLIC“ - // W3C // DTD HTML 4.01 // EN”> <title> test </ title> <p class = smith> Test </ p> into validator.w3.org/#validate_by_input 并运行。即使未来的HTML确实使其成为一致性要求,HTML解析器(例如在浏览器中)仍然需要支持省略的引号才能处理大量的Web。没有未来的兼容性问题。当然,XHTML服务正确,因为application / xhtml + xml确实需要它们。 - Alohci


XHTML仅在您希望借助a自动生成/管理/验证/等HTML代码时才有用 基于XML的工具,例如基于组件的MVC框架(例如Sun JSF,Apache Struts,Microsoft ASP.NET等)或XSLT。以编程方式解析/格式化HTML比XML更棘手,因为HTML允许此处和非关闭标记,例如, <br>。 XML更容易以编程方式进行解析/格式化,因为它是必需的 合式

如果您刚开始和/或手写“普通香草”HTML,我建议使用 HTML 4.01元素 用一个 HTML5 doctype。实际上没有必要将HTML代码按摩成XML格式。

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Page title</title>
    </head>
    <body>
        <h1>Heading</h1>
        <p>Paragraph</p>
    </body>
</html>

HTML 5元素 尚未得到广泛支持,因此建议坚持使用HTML 4.01元素。 HTML 5 doctype在大多数浏览器中触发标准模式,包括IE6。 HTML5的另一个好处是它允许关闭像XHTML中的短标签。另见 HTML5规范第3.2.2章

作者可以选择 也可以在HTML语法中对void元素使用相同的语法。一些作者还选择在斜线之前包含空格,但这不是必需的。 (以这种方式使用空格是继承自XHTML 1.0,附录C中的兼容性指南的约定。)

基本上,即使你写  XHTML,使用 <!DOCTYPE html> 仍然会使它有效(并以正确的标准模式触发webbrowsers)。


14
2018-01-01 20:25



这就是你不应该真正使用HTML 5的原因: stackoverflow.com/questions/413114/... - DoctorLouie
D'哦。我没有说“HTML 5元素”,我只是说“HTML 5 doctype”。 - BalusC
很好,你的答案赞美我的答案。 “基于XML的工具”是我缺少的部分。 - jpsimons
使用HTML5 doctype排除了使用针对稳定规范进行测试的成熟验证器。 - Quentin
噢,我没说“HTML 5元素”,我只是说“HTML 4.01元素”。 - BalusC


到那个时刻 学习 在另一方面,他们之间真的很少。 XHTML本质上是HTML的一个子集,它鼓励(或者更需要)更严格的标准 - 具体来说,它是HTML标准的HTML应用程序。因此,任何有效的XHTML也是有效的HTML(至少在大多数情况下)。

在我看来,XHTML和HTML之间的区别并不那么重要。什么  然而,重要的是编写一致且高效的标记,这就是XHTML标准旨在鼓励的内容。无论您是将代码标记为XHTML还是HTML,只要它写得很好就没关系。

XHTML的主要特点是它在代码中需要高标准的质量, 但这是你应该在HTML中做的事情


3
2018-01-01 20:44



“因此,任何有效的XHTML也都是有效的HTML”。不,不是。在HTML5之前,无法创建既有效XHTML又有效HTML的单个文档。 XHTML必须包含名称空间声明属性,这将是HTML中的无效属性。 - Alohci
因此“至少在大多数情况下”。出于实际目的(当然也适用于初学者),说XHTML是HTML的一个子集仍然是合理的。 - Will Vousden
对不起,我还是不同意。像<div />这样的结构在XHTML中会做一件事,在被视为HTML时会有所不同。将XHTML描述为HTML的一个子集就是否认这一点,从而引起初学者的困惑。我更喜欢将HTML和XHTML描述为兄弟语言,具有通用词汇但语法不同。 - Alohci


XHTML适用于那些认为XML看起来比普通HTML更“整洁”的人。

但实际上,这并不重要。你可以更快地从一个用户切换到另一个用于获得午餐的速度。


3
2018-01-01 20:52



对于小型网站是的,对于大型网站来说,它并不那么容易 - Casebash
我的意思是在你的大脑中,而不是在代码库中。 - Brian Ortiz


HTML 4.01将是您最好的选择,因为分阶段学习可以让您更清楚地了解幕后和标记内部真正发生的事情。一旦您对HTML 4.01有清晰的视图和冗长的理解,您就可以转到XHTML 1.0。


1
2018-01-01 20:22



那么他们应该学习HTML允许的不良习惯,然后转向更好的标准? - ChaosPandion
不管你怎么想都想想,问题的实际情况是,如果你不知道我们从哪里来,你就不太适合知道我们要去哪里。 - DoctorLouie
HTML允许哪些“不良习惯”? - jpsimons
HTML 4并没有教导不良习惯。它教授具有最广泛支持的标记。在99%的情况下,XHTML是一种自我放纵和毫无意义的分心。 - cletus
@mastermind:你能解释为什么HTML 4.01能更好地理解幕后发生的事情吗?我认为大多数人会将树形结构的DOM更好地描述为XML而不是通常省略某些标签的HTML。对于初学者来说,确定哪些标签可以省略似乎是非常随意的。 - Alohci


从HTML开始,但使用验证器。在HTML5中,每个人似乎都专注于HTML,而不是XHTML序列化。

  • 正如我解释的那样 我的答案在这里,XML的设计者希望实施更高的编码标准并使解析更容易,但这只有在几乎每个人都切换时才有效。不依赖于您的浏览器来强制执行代码质量,而是依赖验证。
  • 由于Internet Explorer <= 8中的XHTML支持有限,几乎每个人都将XHTML作为text / html提供服务。这有效地限制了您使用HTML和XHTM的子集并要求您遵循 兼容性指南。您可以选择基于用户代理服务的格式,但这很麻烦。

鉴于优势有限,我强烈推荐HTML,特别是如果你是初学者。


1
2017-07-07 10:42





HTML和XHTML是相同的语言,语法略有不同。一旦你知道了,你知道另一个。

这没关系。


0
2018-01-01 21:03



对于初学者而言,获得这一点并不是非常重要,但即便如此,对于初学者来说,使用HTML也会更容易 - Casebash
“HTML对初学者来说会更容易” - 怎么样? - Paul D. Waite
@Paul:基于接受标头的双重服务是混乱的。作为HTML的XHTML要求您遵循 兼容性指南。这两种选择都非常复杂 - Casebash
@Casebash:如果您来自XML背景,我想兼容性指南会让您感到困惑。如果没有,我认为你甚至不会注意到它们。 - Paul D. Waite
@Casebach:非常感谢。如果您实际上将在任何时候将XHTML用作XML,那么学习XML会有所帮助。但是,如果您只是为Web编写XHTML,那么您实际上并不是在编写XML,因此我认为您可以很高兴地跳过XML知识。实际上,XML本身有什么用(即忽略任何特定的XML语言)?这只是一组语法规则,对吧? - Paul D. Waite