sublime text3中使用Emmet部分标签无法闭合

转载自:http://geek100.com/2490/

不过很早就发现br,input, img在sublime text中是没有闭合标签 / 的. 我一般都是手动补上的, 今天突然想起这个问题, 所以想把原因搞清楚.

一. 以为是snippets.json的配置有问题

我们知道, sublime text中的emmet自动补全是有个配置文件来决定每个标签的补全代码是怎么样的.

所以我首先想到的是去查看这个文件:

点击'browse packages' –> Emmet –> emmet –> snippets.json, 发现里面的input, img 和 meta等标签都是有 / 的. 但是在编辑器里运行就没有了. 想想也是, emmet用的人这么多, 不可能犯这种低级错误.

二. 真正的原因: 不同的doctype

于是继续在网上搜索一番, 发现 / 消失的原因是不同的doctype引起的:

1. 只有在html:xt, 也就是XHTML 1.0 模式下 / 才会出现;

2. 在其他模式, 即使是html:5 <!doctype html>下面 / 也是没有闭合的. 我猜是因为HTML5没有严格的要求input img等标签闭合还是不闭合.

三. 如何解决: 让所有doctype下 / 都出现, input img等标签都闭合?

了解了原因后, 修改就简单了:

点击如下地方,

添加如下代码:

{
      "syntaxProfiles": {
          // Enable XHTML dialect for HTML syntax
          "html": "xhtml"
      }
}

大功告成...

从这个小细节也可以看出Emmet作者是个知识丰富, 考虑问题全面的人, 牛X...

posted @ 2014-06-11 08:24  iulo  阅读(629)  评论(0编辑  收藏  举报