Tag Helpers - 自关闭 HTML 标签是个坏习惯?
Posted
技术标签:
【中文标题】Tag Helpers - 自关闭 HTML 标签是个坏习惯?【英文标题】:Tag Helpers - Self closing HTML tags is a bad habit? 【发布时间】:2016-09-14 09:16:11 【问题描述】:我将TagHelpers
合并到我的 MVC vNext 项目中,我意识到当我自行关闭 html 标记时它们不起作用。
@addTagHelper "*, Microsoft.AspNet.Mvc.TagHelpers"
<label asp-for="FirstName"/> <!-- self closing tag -->
<span asp-validation-for="FirstName"/> <!-- self closing tag -->
而且,当我放置结束标签时,我会看到正在显示的值。
<label asp-for="FirstName"></label>
<span asp-validation-for="FirstName"></span>
生成的 HTML
<label for="FirstName">FirstName</label>
<span class="field-validation-error" data-valmsg-for="FirstName" data-valmsg-replace="true">
<span id="FirstName-error" class="">The FirstName field is required</span>
</span>
我想知道什么,它有什么不同?而且,自我关闭配对标签是一个坏习惯。如果您知道一些关于此设计原则的文章,请与我分享,不胜感激。
【问题讨论】:
一般自动关闭是可以的,除非客户端使用非常旧的浏览器。或者你的意思是自动关闭 non-void 元素? 引用自关闭non-void elements
:***.com/questions/3558119/…
如果非空元素是指那些可能不包含任何内容的元素,例如输入、img、br 等,那么我不是指那些。我有兴趣了解配对元素,即我的示例中的 2,其中生成的 HTML 将内容放置在 label 和 span 的开始和结束标签内。那么,像这样自行关闭配对标签是否属于严重犯罪行为?
非空元素的示例是div
、span
、textarea
等。这些标签需要有结束标签。
...或此处未列出的元素:w3.org/TR/html-markup/syntax.html#void-element
【参考方案1】:
它们不起作用的原因是因为“MVC 标签助手不会改变元素是否自动关闭”(来自问题 #4475 中的 cmets)。
这是 ASP.NET 中的一个已知问题,计划是在具有结束标记的非空元素的情况下在 VS IDE 中显示警告(请参阅问题 #398)。一位 ASP.NET 开发人员在 issue #1302 中评论说:
“这是当前的设计,但我们在行为上存在一些问题(打开和关闭)”
【讨论】:
感谢您的信息!我很惊讶,您是如何找到如此准确的参考资料的。今天下午我尝试用谷歌搜索,但没有找到相关内容。所以决定将它作为一个新问题发布!宾果游戏,我得到了我需要的东西。以上是关于Tag Helpers - 自关闭 HTML 标签是个坏习惯?的主要内容,如果未能解决你的问题,请参考以下文章