0

我使用 HTML 已经有一段时间了,最​​近我脑海中突然冒出一个问题,即何时给出标签

<input type = "text" name="c-id" />
<input type =text name=c-id />

带或不带引号没有区别,在使用 V-Studio 时,此 IDE 不会自动添加引号,但在使用 Dreamweaver 时,如果我没记错的话,它确实会自动添加引号......

我想知道的是,在什么时候没有引号会产生影响或产生问题,最佳实践是什么,总是引用或少引用......

ps 这个问题很有可能以前被问过,但没有出现在搜索中

4

4 回答 4

1

当属性值包含空格、换行符、换页符或制表符时会有所不同,因为如果该值未用引号括起来,则属性值将在这些字符中的任何一个字符处结束。

从 IDE 的角度来看,当属性值不包含这些空白字符之一时,是否添加引号只是一个偏好问题。

于 2013-04-05T07:00:38.427 回答
1

在 XHTML 语法中,引号始终是必需的(但您也可以使用单引号,即“撇号”)。如果页面以 text/html 内容类型提供,这并不重要,因为它几乎总是这样:浏览器会将其解析为草率的 HTML,而不是真正的 XHTML。但是,如果页面是使用 XML 内容类型提供的,或者如果它在需要 XHTML 或其他 XML 的程序中打开,那么缺少引号会导致严重的错误处理:只显示错误消息,根本不显示内容。

在示例情况下,XHTML 语法被用于其他情况:关闭“>”之前的“/”属于 XHTML,而不是 HTML。在这方面编写 XHTML 没有什么意义,但并非始终如一。

在 HTML 语法中,形式规则取决于 HTML 版本。HTML5 比 HTML 4.01 更宽松。例如,<a href=/foo/bar/ title=What???>是有效的 HTML5 但不是有效的 HTML 4.01。这在验证中很重要,并且取决于您希望针对哪个版本的 HTML 进行验证(即,您主要尝试遵守哪个版本)。在本期中,HTML5 反映了浏览器实践:长期以来,浏览器比 HTML 4.01 更加宽容。

根据HTML5 规则,仅当属性值包含以下任何字符时才需要引号(尽管始终允许):空格、制表符、换行符、换页符、回车符、引号 (")、撇号 (')、等于符号 (=)、小于号 (<)、大于号 (>) 或坟墓 (`),或者为空。

也有关于此事的意见以及编码风格指南和其他建议。大多数考虑此类问题的人显然倾向于始终在属性值周围加上引号的“安全”方式。有些人认为引号提高了代码的可读性;其他人认为他们减少了它。

于 2013-04-05T07:35:56.267 回答
0

不将您的值放入引号可能会导致一些问题,即您不能为您的元素提供多个 css 类。浏览器只会理解第一个值,页面不会通过验证。

你应该总是把你的价值观放在引号里。标记更易于阅读,您不会遇到一些意外的浏览器行为。

于 2013-04-05T06:57:35.553 回答
0

对我来说,任何提高代码/标记(重新)可读性的做法都值得养成习惯,并且在属性值上加上引号可以明显地将一个属性与另一个属性分开(再次可读性)。

在技​​术方面,一些属性值有空格,如果没有引号,整个标签可能无法工作。想到的那些:img 的 alt、多个类值、标题(用于工具提示)、带有等号的 url 的 href(不带引号,href= 中的第一个等号注定要失败)等。

这是SO中几乎相同的问题

--

感谢Alohci启发了我。我还不能投票。

于 2013-04-05T07:06:08.300 回答