你如何设计像DIV一样的自定义元素?

时间:2014-05-19 04:32:14

标签: javascript html css angularjs

我正在寻找一种一致的跨浏览器解决方案来设计像DIV这样的自定义元素。 (即:重置为DIV样式作为起点)。 Chrome似乎将自定义元素视为span

以下是我使用自定义元素的内容:

  • 对于Restrict: E角度指令。
  • 作为指令模板的一部分,我可以从指令的链接或控制器函数中使用element.find('custom-element')选择子元素。在构建需要计算子元素维度和/或位置的指令时,偶尔需要这样做。

是否像doing this一样简单:

custom-element {
  display: block;
}

或者在处理某些浏览器时我是否应该注意到这些问题?

1 个答案:

答案 0 :(得分:2)

那些正在制定HTML标准的人强烈建议不要使用自定义标签。 IE8和更低版本的Internet Explorer默认情况下不支持未知标记,解决方案是添加脚本来创建元素。

<!--[if lt IE 9]>
   <script>
      document.createElement('custom-element');
      document.createElement('header');
      document.createElement('nav');
      document.createElement('section');
      document.createElement('article');
      document.createElement('aside');
      document.createElement('footer');
   </script>
<![endif]-->

HTML5指定未知标记对于浏览器不是错误的,但它们用于代码检查器。浏览器应该允许使用CSS设置样式,就像浏览器熟悉的标签一样,默认情况下它们是内联元素而不是块。

这样做的目的并不是每个人都创建自己的标签集,这会引起混淆,但是允许在不破坏旧系统的情况下创建新标签。

在您实施的方式中违反HTML5标准将被视为完全违规,并且用于考虑在使用标准无法完成任务时如何改进标准。

为了实现您要完成的任务,使用标准,他们添加了数据属性和自定义属性http://html5doctor.com/html5-custom-data-attributes/ ...

<div customElement="true"></div>

document.querySelectorAll('[customElement]'); 

...这是人们希望你使用的html5标准。

注意customElement =&#34; true&#34;是一种常用的故意违规行为