将属性中的多个值分成多行?

时间:2013-12-20 17:37:17

标签: html html5 coding-style markup

让我举例说明:

<html lang="en-US" prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# article: http://ogp.me/ns/article#">

    ...

</html>

如您所见,prefix标记中的html属性有多个定义。如何将它们分成多行? (考虑到断线相当于缩小成一条线的空间......这有点难度。)

这被认为是正常的吗?

<html lang="en-US" prefix="
    og: http://ogp.me/ns#
    fb: http://ogp.me/ns/fb#
    article: http://ogp.me/ns/article#
">

编辑: Facebook就是这样:https://developers.facebook.com/docs/payments/product/

<html lang="en-US" prefix=
    "og: http://ogp.me/ns#
    fb: http://ogp.me/ns/fb#
    article: http://ogp.me/ns/article#">

2 个答案:

答案 0 :(得分:1)

属性值不同。每个空白字符都存储在DOM中。差异是否重要取决于属性的定义。许多属性(例如class)被定义为将一组以空格分隔的标记作为值,对于它们,标记之间或第一个标记之前和最后一个标记之后的空白字符的数量和类型,没关系。

HTML规范或草稿中不存在prefix属性。相关规范是RDFa Core 1.1,它将prefix属性定义为 “以空格分隔的前缀名称IRI对列表”,包含

等示例
<html
  xmlns="http://www.w3.org/1999/xhtml"
  prefix="foaf: http://xmlns.com/foaf/0.1/
          dc: http://purl.org/dc/terms/"
  >

因此对于prefix属性,可以接受问题中的格式。 (除了“符合”之外,它是否“正常”是一个意见问题。)

答案 1 :(得分:0)

我认为这不是“正常”。一般情况下,就像你的问题的评论所暗示的那样,这在技术上是可行的,但是你打开你的页面(不必要的)潜在的解析错误。

HTML WG's example regarding using newlines in the title attribute作为具体例子。

此外,我无法找到/记住一个案例,我看到这个故意使用,除了SVG(但这不是技术上的HTML)。

但是,如果您通过W3C's validator运行此示例,则会传递没有关于多行属性的错误或警告:

<!DOCTYPE html>
<html lang="en-US" prefix="
    og: http://ogp.me/ns#
    fb: http://ogp.me/ns/fb#
    article: http://ogp.me/ns/article#
">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Hello</title>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>

一般来说,安全比抱歉更好。由于在这种情况下我找不到相反的例子,我冒昧地说其他开发者会同意(如果我错了,请务必纠正我)