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