HTML5中带空格的<和>是否合法?需用实体字符吗?
HTML5中直接书写
<和>是否合法? 结论先行
你给出的第一段代码是合法的HTML5,不需要强制将<>转义成<和>实体。
结合HTML5规范的具体说明
HTML5规范对文本内容中的<和>有明确的使用规则:
- 对于
<字符:只有当它作为标签的起始标记(即后面紧跟字母、/、!等能构成合法标签开头的字符)时,才必须转义为<。如果<后面是空格、数字或其他非标签起始字符,直接书写完全合法。 - 对于
>字符:在普通文本内容(比如<p>标签内的内容)中,只要它不是标签结束标记的一部分,就可以直接书写,无需转义。
回到你的示例:
<p>1 < 2</p> <p>2 > 1</p>
这里的<后面是空格和数字,不会被浏览器解析为标签的起始;>前面是数字和空格,也不属于标签结束的语法结构,所以这段代码完全符合HTML5规范,是合法的。
必须转义的场景
以下几种情况必须使用实体字符:
<后面紧跟合法的标签起始字符(比如<p>我要写<div>标签</p>,这里的<div>如果不转义,会被浏览器解析为真实的<div>标签)- 在HTML属性值中书写
<或>(比如<input placeholder="请输入a < b的内容">,属性值里的<必须转义) - 在非CDATA模式的脚本、样式代码块中书写
<和>
内容的提问来源于stack exchange,提问作者Lone Learner
相关产品推荐
相关产品推荐

