Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何用字体图标替换dijit树中的图标?_Javascript_Html_Css_Dojo_Font Awesome - Fatal编程技术网

Javascript 如何用字体图标替换dijit树中的图标?

Javascript 如何用字体图标替换dijit树中的图标?,javascript,html,css,dojo,font-awesome,Javascript,Html,Css,Dojo,Font Awesome,我试图用字体“icons”来切换dijit树中的图标(特别是那些与dijitFolderClosed、dijitFolderOpened相对应的图标——应用于树中父节点的类)。当图标实际上是图像文件时,切换显示的图标很容易-我只需更改getIconClass()返回的类 然而,font awesome似乎通过插入伪元素来工作,而我在使用dijit时遇到了麻烦。图标节点是img元素,虽然某些方法看起来很有希望,但不适用于img标记,因为它们没有内容属性 有哪些好的选项可以让font Asome作为

我试图用字体“icons”来切换dijit树中的图标(特别是那些与dijitFolderClosed、dijitFolderOpened相对应的图标——应用于树中父节点的类)。当图标实际上是图像文件时,切换显示的图标很容易-我只需更改getIconClass()返回的类

然而,font awesome似乎通过插入伪元素来工作,而我在使用dijit时遇到了麻烦。图标节点是
img
元素,虽然某些方法看起来很有希望,但不适用于
img
标记,因为它们没有
内容
属性


有哪些好的选项可以让font Asome作为dijit树图标工作?看起来可能会像建议的那样弄乱
img
标记,或者我可以使用replaceChild()将
img
图标元素替换为font-awesome可以应用的元素。有人能想出更好的解决方案吗?

你需要覆盖你的dijit样式:在.dijitIcon*上设置
背景图像:none
,在.dijit*内部类上设置
显示:none
,然后在伪类之前添加内容

我已经在许多dijit上使用Sass完成了这项工作,这是dijit/form/ComboBox的一个示例。关键位是:

     .dijitDownArrowButton {
         &:before {
             font-family:'FontAwesome';
             content: '\f0d7';
         }
         .dijitArrowButtonContainer {
             background-image: none;
         }
         .dijitArrowButtonInner {
             display: none;
         }
    }
很好地解释了重写dijit类。而dijit主题覆盖教程是