在HTML元素属性的`=`符号之前和之后使用空格

hyp*_*ean 14 html coding-style

我想知道当你把它写下来时,在HTML页面中等号之前和之后有一个"最佳"的方法.似乎没有人使用它,但对我来说,编程语言似乎很自然地以其基本代码风格打印出来.那么,是否有任何标准,你必须在HTML元素的属性的等号前后使用空格?

Fra*_*nov 27

在属性名称及其值之间没有空格分隔符实际上提高了可读性,因为它直观地显示了这些之间的耦合.这是一个例子.

没有空格分隔符:

<link rel="stylesheet" type="text/css" href="/css/screen-iphone.css" title="My Site" media="only screen and (max-device-width: 480px)" />
Run Code Online (Sandbox Code Playgroud)

空间分隔符:

<link rel = "stylesheet" type = "text/css" href = "/css/screen-iphone.css" title = "My Site" media = "only screen and (max-device-width: 480px)" />
Run Code Online (Sandbox Code Playgroud)

  • @FranciPenov 您可以使用 `&lt;!-- language: none --&gt;` 禁用自动语法高亮 (2认同)

Rya*_*nal 8

按照标准,我认为不重要.但是,我认为额外的空格会使代码看起来混乱.

<link rel="stylesheet" type="text/css" href="overall.css" />
Run Code Online (Sandbox Code Playgroud)

看起来更像是带有名称/值对的标签,而不是

<link rel = "stylesheet" type = "text/css" href = "overall.css" />
Run Code Online (Sandbox Code Playgroud)

这对我来说更像是一串令牌.

我认为这主要来自于属性本身是以空格分隔的事实; 值的结尾和属性的开头由空格分隔,因此任何额外的空格只会混淆事物.


SQL*_*ace 6

我不喜欢在前后使用空格,每个属性节省2个字节.可以快速加起来500个属性= 1K(其中1K = 1000字节不是1024!)

  • 回复:速度 - 这实际上只是一个习惯问题。我现在在 HTML 风格和 JavaScript 风格之间切换模式相当顺利。实际上,我不得不放慢速度才能在答案中输入额外的空格。 (2认同)

mpa*_*cer 5

为了具体回答您的问题,按照 HTML5 规范,没有标准说明在分配属性时不使用空格来包围等号。

从技术上讲,无论您使用不带引号的、单引号的还是双引号的属性值,您都可以在等号的任一侧使用零个或多个空格。但是,根据您使用的字符不同,值中不允许使用不同的字符。

无论按照惯例(而不是标准)这样做是否可取,其余的答案已经涵盖。

从 HTML5 规范

不带引号的属性值语法
属性名称,后跟零个或多个空格字符,后跟单个 U+003D EQUALS SIGN 字符,后跟零个或多个空格字符,后跟属性值,除了上面给出的要求之外对于属性值,不得包含任何文字空格字符、任何 U+0022 引号字符 (")、U+0027 撇号字符 (')、U+003D 等号字符 (=)、U+003C LESS-THAN SIGN 字符(<)、U+003E 大于号字符 (>) 或 U+0060 重音字符 (`),并且不得为空字符串。

?

如果使用不带引号的属性语法的属性后跟另一个属性或上面开始标记语法的步骤 6 中允许的可选 U+002F SOLIDUS 字符 (/),则必须有一个空格字符将两者分开。

单引号属性值语法
属性名称,后跟零个或多个空格字符,后跟单个 U+003D EQUALS SIGN 字符,后跟零个或多个空格字符,后跟单个 U+0027 撇号字符 ('),后跟属性值,除了上面对属性值给出的要求外,不得包含任何文字 U+0027 撇号字符 ('),最后跟第二个单个 U+0027 撇号字符 (')。

?

如果使用单引号属性语法的属性后跟另一个属性,则必须有一个空格字符将两者分开。

双引号属性值语法
属性名称,后跟零个或多个空格字符,后跟单个 U+003D EQUALS SIGN 字符,后跟零个或多个空格字符,后跟单个 U+0022 QUOTATION MARK 字符 (") ,后跟属性值,除了上面对属性值给出的要求外,不得包含任何文字 U+0022 QUOTATION MARK 字符 ("),最后是第二个单个 U+0022 QUOTATION MARK 字符 (" )。