<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 什么是iconfont 為了解決image的諸多問題,一種新的圖標顯示方法應運而生,那就是iconfont。iconfont,顧名思義,就是icon + font,即以字體的方式來顯示圖標,這個十分好理解,因為中文有時候也像一個個小圖形。iconfont可以完美解決以上的問題,并具有以下的優點: 1. 由于請求的是一整個文件字體,所以減少了http的請求 2. 可以像字體一樣,任意變換大小和顏色; 3. 矢量圖,不會發生放大模糊的問題 4. 結合CSS3的text-shadow,transform這些功能可以給字體添加一些旋轉,陰影和透明度的視覺特效。 5. 強兼容性,他的實現方式是使用CSS3的font-face, 但是這個屬性從IE4開始就支持,可以完美適配IE6及以上的瀏覽器。 ## iconfont的使用方法 iconfont一共有三種使用方式,具體參照阿里媽媽圖標庫的[官方文檔](http://iconfont.cn/help/detail?spm=a313x.7781069.1998910419.14&helptype=code) ### 方法1 unicode 方式 目前我們系統采用的是這種方式,這種方式的好處就是完美適配IE8,核心的思想就是這兩段代碼 unicode是字體在網頁端最原始的應用方式,特點是: * 兼容性最好,支持ie6+,及所有現代瀏覽器。 * 支持按字體的方式去動態調整圖標大小,顏色等等。 * 但是因為是字體,所以不支持多色。只能使用平臺里單色的圖標,就算項目里有多色圖標也會自動去色。 **注意:新版iconfont支持多色圖標,這些多色圖標在unicode模式下將不能使用,如果有需求建議使用symbol的引用方式** unicode使用步驟如下: 第一步:拷貝項目下面生成的font-face ``` @font-face {font-family: 'iconfont'; src: url('iconfont.eot'); /* IE9 */ src: url('iconfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ url('iconfont.woff') format('woff'), url('iconfont.ttf') format('truetype'), /* chrome, firefox, opera, safari, android, IOS 4.2+ */ url('iconfont.svg#iconfont') format('svg'); /* IOS 4.1- */ } /* .ttf (True Type Fonts) Firefox、Chrome、Safari、Opera、Android、IOS 4.2+ .eot (Embedded OpenType) IE 9+ .woff .woff2 .otf (OpenType Fonts) Safari .svg IOS 4.1- */ ``` 第二步:定義使用iconfont的樣式 ``` .iconfont{ font-family:"iconfont" !important; font-size:16px;font-style:normal; -webkit-font-smoothing: antialiased; -webkit-text-stroke-width: 0.2px; -moz-osx-font-smoothing: grayscale;} ``` 第三步:挑選相應圖標并獲取字體編碼,應用于頁面 ``` <i class="iconfont">&#x33;</i> ``` >* 為啥IE9的設置要單拎出來? 微軟爸爸搞事情,在IE9的兼容模式下,是不支持后面那種書寫方式的,所以單拎出來,直接適配IE9 >* 為啥IE6-IE8的URL上有個#iefix? 微軟最初支持font-face這個功能的時候,font-face并沒有收錄到標準中,低版本的IE會把url里面第一個引號到最后一個引號都當成URL,解析出來一定是404,所以加了一個IEfix,表示后面的是錨點的內容,幫助瀏覽器正確解析,這個錨點叫什么并不重要。 >* format 是什么意思? 不同瀏覽器解析的字體格式不一樣,format就是告訴各種版本的瀏覽器,你支持這樣的字體嗎,支持的話就找這個URL >* -webkit-font-smoothing: antialiased; 這是啥意思? 這個是因為,字體在放大的時候,其邊緣會出現鋸齒狀的樣式,顯示出來顆粒感很重,不夠美觀。而這個屬性,叫做抗鋸齒特性,功能就是把這些突出的小毛茬都切掉。而且要注意,這個屬性只在Mac電腦上是有效的,因為蘋果認為應該顯示設計最原本的樣式,這樣屏幕上展示的內容和打印機打印出來的內容一樣,但是微軟認為展示的樣式符合大眾認識的美觀更加重要,所以Windows7以上會自動開啟ClearType的抗鋸齒方法。 >* 那-webkit-text-stroke-width: 0.2px;又是有啥用? 用抗鋸齒技術把小毛茬切掉以后,icon相當于比預想的要細了,使用這個功能,給圖標描個0.2px的邊,完美符合預期 ### 方式2 font-class引用 font-class是unicode使用方式的一種變種,主要是解決unicode書寫不直觀,語意不明確的問題。 沒啥好說的和unicode差不多,只不過用:after偽元素使用,我試了一下,IE8是支持偽元素的。但是不支持大小的修改,所以這種方式只能兼容IE9及以上的方式 與unicode使用方式相比,具有如下特點: * 兼容性良好,支持ie8+,及所有現代瀏覽器。 * 相比于unicode語意明確,書寫更直觀。可以很容易分辨這個icon是什么。 * 因為使用class來定義圖標,所以當要替換圖標時,只需要修改class里面的unicode引用。 * 不過因為本質上還是使用的字體,所以多色圖標還是不支持的。 使用步驟如下: 第一步:拷貝項目下面生成的fontclass代碼: ``` @font-face { font-family: 'sv-icomoon'; src: url('font/sv-icomoon.eot?tk8m9k'); /* IE9 */ src: url('font/sv-icomoon.eot?tk8m9k#iefix') format('embedded-opentype'), /* IE6-IE8 */ url('font/sv-icomoon.ttf?tk8m9k') format('truetype'), /* chrome, firefox, opera, safari, android, IOS 4.2+ */ url('font/sv-icomoon.woff?tk8m9k') format('woff'), url('font/sv-icomoon.svg?tk8m9k#sv-icomoon') format('svg'); /* IOS 4.1- */ font-weight: normal; font-style: normal; } [class^="sv-icon-"], [class*=" sv-icon-"] { /* use !important to prevent issues with browser extensions that change fonts */ font-family: 'sv-icomoon' !important; speak: none; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; line-height: 1; /* Better Font Rendering =========== */ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .sv-icon-search:before { content: "\e900"; } .sv-icon-user:before { content: "\e904"; } .sv-icon-password:before { content: "\e905"; } ``` 第二步:挑選相應圖標并獲取類名,應用于頁面: ``` <i class="sv-icon-user"></i> ``` ### 方式3 symbol引用 這是一種全新的使用方式,應該說這才是未來的主流,也是平臺目前推薦的用法。相關介紹可以參考這篇文章 這種用法其實是做了一個svg的集合,與上面兩種相比具有如下特點: 支持多色圖標了,不再受單色限制。 通過一些技巧,支持像字體那樣,通過font-size,color來調整樣式。 兼容性較差,支持 ie9+,及現代瀏覽器。 瀏覽器渲染svg的性能一般,還不如png。 使用步驟如下: 第一步:拷貝項目下面生成的symbol代碼: //at.alicdn.com/t/font_8d5l8fzk5b87iudi.js 第二步:加入通用css代碼(引入一次就行): ``` <style type="text/css"> .icon { width: 1em; height: 1em; vertical-align: -0.15em; fill: currentColor; overflow: hidden; } </style> ``` 第三步:挑選相應圖標并獲取類名,應用于頁面: ``` <svg class="icon" aria-hidden="true"> <use xlink:href="#icon-xxx"></use> </svg> ``` > * vertical-align: -0.15em; 這么設置是為啥? 因為SVG雖然可以使用font的方式對icon進行大小和顏色的變換,但是本質上不是font,而更像一張圖片。這導致如果icon后面跟著文字的話,文字會按照baseline對齊icon的底端,為了讓SVG表現的和font一樣,就把后面的文字對齊icon的baseline位置,因為一般baseline距離bottom的距離是0.15,所以這個數值設置成了0.15em。至于為什么要采用這種看上去意義不明的計算方式而不是直接使用bottom屬性,那是因為bottom這個屬性在低版本瀏覽器(尤其是IE8)上產生的bug比較多,而數字計算的方式更加穩定。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看