Javascript 如何设置自定义元素(如DIV)的样式?

Javascript 如何设置自定义元素(如DIV)的样式?,javascript,html,css,angularjs,Javascript,Html,Css,Angularjs,我正在寻找一个一致的跨浏览器解决方案,以设置自定义元素(例如:重置为DIV样式作为起点)的样式。Chrome似乎将自定义元素视为span 以下是我使用自定义元素的目的: 对于限制:E角度指令 作为指令模板的一部分,因此我可以使用指令的链接或控制器函数中的element.find('custom-element')选择子元素。在生成要求计算子图元尺寸和/或位置的指令时,这有时是必要的 它是否简单到: 或者,在处理某些浏览器时,我应该注意哪些问题?从事HTML标准工作的人强烈反对使用自定义标记。

我正在寻找一个一致的跨浏览器解决方案,以设置自定义元素(例如:重置为DIV样式作为起点)的样式。Chrome似乎将自定义元素视为
span

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

  • 对于
    限制:E
    角度指令
  • 作为指令模板的一部分,因此我可以使用指令的链接或控制器函数中的
    element.find('custom-element')
    选择子元素。在生成要求计算子图元尺寸和/或位置的指令时,这有时是必要的
它是否简单到:


或者,在处理某些浏览器时,我应该注意哪些问题?

从事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标准的方式被认为是完全违反的,并且被用来考虑在不能使用标准的情况下如何提高标准。 为了实现您试图实现的目标,使用标准,他们添加了数据属性和自定义属性


document.querySelectorAll(“[customElement]”);
。。。这就是人们希望您使用的html5标准


注意customElement=“true”是一种常用的故意违规行为

您不能只针对一个类吗<代码>
element.find('.custom')
@misterManSam,我没有在jQuery中加载,所以这不是一个选项。。。尽管我考虑过使用
element.querySelector('.custom')
,但HTML5已经添加了涵盖大量用例的语义元素堆栈。不要制造你自己的元素。您不仅需要手动设置它们的样式,还将遇到可访问性问题,因为屏幕阅读器无法理解它们。IE8有一些解决方法,包括样式:。总的来说,我同意,我从来没有使用角度指令作为元素。我想你的意思是
data custom element=“true”
Macek,是的,但不使用数据-*是一种常见的故意违反。。。由于它可以被样式化,将css div[customElement]{…}谢谢你的回答,韦恩。您选择
customElement=“true”
vs
customElement=“true”
或仅仅是
customElement
customElement
有什么具体原因吗?Gil,javascript不喜欢这种情况-它喜欢camelCase
<!--[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]-->
<div customElement="true"></div>

document.querySelectorAll('[customElement]');