动态地对:before元素应用样式
Applying Styling to :before Element Dynamically
我需要动态地为before:元素添加样式。
在我的页面上,我有以下容器
<p class="stepNode 203"></p>
我动态地为页面添加了样式,为这个元素设置了背景图像:
$('head').append('<style> .stepNode.'+node_id+':before {background: url("'+$(divs[k]).data('image')+'");}</style>');
生产:
<style>
.stepNode.203:before {background: url("http://cdn.sheknows.com/articles/2013/04/Puppy_2.jpg");}
</style>
但是在检查元素时,绝不会应用此样式。
值得注意的是,当我更改样式以排除数字类时,背景被正确应用:
<style>
.stepNode:before {background: url("http://cdn.sheknows.com/articles/2013/04/Puppy_2.jpg");}
</style>
有什么办法解决这个问题吗?如果它是动态添加的,我需要做任何事情来重新应用样式吗?
CSS类名不能以数字开头。类203
和-203
是无效的,但_203
是一个有效的替代。
引用自规范:
在CSS中,标识符(包括元素名、类和id)选择器)只能包含字符[a-zA-Z0-9]和ISO 10646字符U+00A0及以上,加上连字符(-)和下划线(_);不能以数字、两个连字符或连字符开头后接一个数字
203是无效的CSS类名,
类名应该以字母
开头所有CSS语法在ASCII范围内(即[a-z])不区分大小写。和[A-Z]是相等的),除了不在控制CSS。的值的大小写敏感性HTML属性"id"answers"class",字体名称和uri超出了本规范的范围。特别要注意元素名在HTML中不区分大小写,但在XML中区分大小写。
在CSS中,标识符(包括元素名、类和id)选择器)只能包含字符[a-zA-Z0-9]和ISO 10646字符U+00A0及以上,加上连字符(-)和下划线(_);它们不能以数字、两个连字符开头,也不能后跟一个连字符差一个数字。标识符还可以包含转义字符和任何ISO 10646字符作为数字代码(见下一项)。例如,标识符"B&W?"可以写成"B'&W'?"或"B' 26w '3F"。
引用http://www.w3.org/TR/CSS2/syndata.html字符
,尝试将其更改为stepNode-203
或stepNode_203
,如
我猜你不能有整数类!我将类名改为step_203,而不是203,这样我的代码就可以正常工作了。
- 编写脚本以循环遍历数组并为DOM元素应用值
- 对每个元素应用不同的 CSS
- 将新元素作为指令的默认元素应用
- 仅对一个元素应用设置间隔
- 如果单词出现第 n 次,则对元素应用更改
- 为每个 DOM 元素应用随机 CSS
- 获取一个元素的宽度,并相对于第一个元素应用于另一个元素
- 对子元素应用悬停效果
- 使用纯javascript获取li元素onclick,而不对每个元素应用onclick
- 将数组的元素应用于函数javascript
- 对td元素应用填充引发异常
- 如何为JavaScript附加的DOM元素应用类似live()的功能
- D3.js -有条件地对数组元素应用nest.key()函数
- 对一组元素应用angular指令
- 如何使用min/max-height和height为元素应用响应式CSS高度
- 对未选中的元素应用样式
- 对所有带有id的元素应用JavaScript
- 如何为多个元素应用jquery悬停
- 动态地对:before元素应用样式
- 如果draggable元素应用了转换,Jquery的draggable containment将不起作用