阿里字體圖標庫的編碼是以&#x開頭的,以&#x e617;為例:iconfont的主體部分為e617,同一個字體圖標在HTML,css,js里面的寫法是不同的。HTML里面的寫法就是字體圖標的全寫,以&#x開頭,以;結尾,例:
<div data-icon=""></div>,
但是,css里面則是以\開頭,沒有后綴;則css里面的寫法為:
div:after{
content:"\e617";? ? //必須
display:"inline-block";//偽元素默認行內元素,如果想要改變其大小,需要將其轉變成行內塊或者是塊級元素,或者float與定位,也可改變其顯示方式
width:18px;
height:18px;
}
而jq的iconfont寫法又不一樣,js的寫法是以\u開頭,沒有后綴,如:
$("div").attr("data-icon","\ue617");或者$("div").data("icon","\ue617");
以上只是iconfont在HTML,CSS,JavaScript里面的各自的寫法,那么怎么用js或者jq去控制偽元素里面的字體圖標呢?
需要通過改變div里面的自定義屬性data-icon的值,來改變其偽元素:after或者:before里面的content的值,需要用到html5里面的新特性attr(),如下:
HTML:<div data-icon=""></div>
CSS: div:after{
? ? ? ? ? ? content:attr(data-icon);
? ? ? ? ? ? display:"block"}
Jquery:$("div").attr("data-icon","\ue616");? //即可設置
JS:document.querySelector("div").dataset("icon","\ue616");
希望能夠幫到大家!!!