前端如何保證 ui 效果一致性玛瘸?

前端開發(fā)時經(jīng)常會碰到需要還原設(shè)計稿而帶來的兼容性的問題蜕青,有的問題可以根據(jù)不同的機型不同的系統(tǒng)做出調(diào)整,而有的問題則需要工程師有很深的功底才可解決糊渊,如何在不同的客戶端保證一致的效果也是前端工程師的一項基本能力右核。

如果有一天設(shè)計師設(shè)計了 500 字重的字體,那么渺绒,我們該如何實現(xiàn)呢贺喝?

首先菱鸥,碰到這個問題的時候我們應(yīng)該想到,有的客戶端系統(tǒng)預(yù)設(shè)是沒有 500 字重的躏鱼,也就是說設(shè)計師給出的 500 的字重效果相當(dāng)于 normal 的字重氮采。

那么我們該如何解決呢?

針對以上問題挠他,我們可以想到兩種方案:

  1. 將文本導(dǎo)成圖片

  2. 使用字體文件

我們下面來看看這兩種方法:

文本導(dǎo)成圖片

使用圖片代替文字扳抽,制作和維護(hù)的成本都很高。前期切圖并合并處理成雪碧圖比較繁瑣殖侵;后期修改和維護(hù)比較麻煩,還會帶來更多的帶寬的消耗镰烧;用戶也無法對文字進(jìn)行選擇拢军、復(fù)制等操作。

字體文件

通過 css 方式引入外部字體文件怔鳖,可使開發(fā)者在網(wǎng)頁中使用系統(tǒng)中沒有安裝的字體茉唉。只需將字體包安裝在服務(wù)器上,當(dāng)用戶加載網(wǎng)頁時结执,字體包會自動下載到用戶機器上度陆,保證字體能夠正確渲染。

但是由于中文數(shù)量太大献幔,導(dǎo)致中文包體積過大懂傀,通常會有幾 M 大小,不適合在項目中使用蜡感,尤其是移動端項目蹬蚁,由于字體加載緩慢,嚴(yán)重影響用戶體驗郑兴。

對于移動端項目犀斋,我們可以考慮使用自動化工具,來實現(xiàn)在移動端使用指定的字體情连。

如何引入外部字體文件叽粹?

可通過使用 @font-face 引入外部字體。

@font-face{
 
  font-family:'HansHandItalic';
 
  src:url('fonts/hanshand-webfont.eot');
 
  src:url('fonts/hanshand-webfont.eot?#iefix') format('embedded-opentype'),
 
  url('fonts/hanshand-webfont.woff') format('woff'),
 
  url('fonts/hanshand-webfont.ttf') format('truetype'),
 
  url('fonts/hanshand-webfont.svg#webfont34M5alKg') format('svg');
 
  font-weight:normal;
 
  font-style:normal;
 
}

font-family 表示自定義字體的名字却舀,src 表示加載字體文件的位置虫几,多個 url 是為了解決瀏覽器兼容問題。

字體后綴和瀏覽器相應(yīng)關(guān)系禁筏,如下所示:

  • .TTF或.OTF持钉,適用于Firefox3.5、Safari篱昔、Opera

  • .EOT每强,適用于InternetExplorer4.0+

  • .SVG始腾,適用于Chrome、IPhone

字體和瀏覽器關(guān)系

使用時調(diào)用 font-family

body{
 
  font-family:'HansHandItalic';
 
  font-size:16px;
 
}

使用 CSS 引入外部字體有什么好處呢空执?

  1. 使用的是真正的文本浪箭,而不是圖片,放大和縮小都不會影響渲染效果辨绊,用戶體驗好奶栖;

  2. 可以被搜索引擎辨認(rèn);

  3. 不像圖片每次需要重新生成门坷,添加刪除更方便宣鄙。

現(xiàn)在我們來看看自動化工具:

Font-Spider

Font-Spider 是一個中文 WebFont 自動化壓縮工具,它能自動分析頁面 CSSHTML 使用的 WebFont 并進(jìn)行按需壓縮默蚌,同時生成跨瀏覽器使用的格式冻晤。

我們在項目中可以直接使用 grunt 和 gulp 的插件實現(xiàn)壓縮。

/*聲明 WebFont*/
@font-face {
  font-family: 'pinghei';
  src: url('../font/pinghei.eot');
  src:
    url('../font/pinghei.eot?#font-spider') format('embedded-opentype'),
    url('../font/pinghei.woff') format('woff'),
    url('../font/pinghei.ttf') format('truetype'),
    url('../font/pinghei.svg') format('svg');
  font-weight: normal;
  font-style: normal;
}

/*使用選擇器指定字體*/
.home h1, .demo > .test {
    font-family: 'pinghei';
}

注意: @font-face 中的 src 定義的 .ttf 文件必須存在绸吸,其余的格式將由工具自動生成

特性:
  1. 按需壓縮:從原字體中剔除沒有用到的字符鼻弧,可以將數(shù) MB 大小的中文字體壓縮成幾十 KB

  2. 簡單可靠:完全基于 HTML 與 CSS 分析進(jìn)行本地處理,無需 js 與服務(wù)端輔助

  3. 自動轉(zhuǎn)碼:將字體轉(zhuǎn)碼成所有瀏覽器支持的格式锦茁,包括老舊的 IE6 與現(xiàn)代瀏覽器

  4. 圖標(biāo)字體:除了常規(guī)的字體支持外攘轩,還支持圖標(biāo)字體(字蛛 v1.0.0 新特性)

使用場景限制:
  1. 僅支持固定的文本與樣式,不支持 javascript 動態(tài)插入的元素與樣式

  2. .otf 字體需要轉(zhuǎn)換成 .ttf 才能被壓縮

  3. 僅支持 utf-8 編碼的 HTML 與 CSS 文件

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末码俩,一起剝皮案震驚了整個濱河市度帮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌握玛,老刑警劉巖够傍,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異挠铲,居然都是意外死亡冕屯,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進(jìn)店門拂苹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來安聘,“玉大人,你說我怎么就攤上這事瓢棒≡【拢” “怎么了?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵脯宿,是天一觀的道長念颈。 經(jīng)常有香客問我,道長连霉,這世上最難降的妖魔是什么榴芳? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任嗡靡,我火速辦了婚禮,結(jié)果婚禮上窟感,老公的妹妹穿的比我還像新娘讨彼。我一直安慰自己,他們只是感情好柿祈,可當(dāng)我...
    茶點故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布哈误。 她就那樣靜靜地躺著,像睡著了一般躏嚎。 火紅的嫁衣襯著肌膚如雪蜜自。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天卢佣,我揣著相機與錄音袁辈,去河邊找鬼。 笑死珠漂,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的尾膊。 我是一名探鬼主播媳危,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼冈敛!你這毒婦竟也來了待笑?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤抓谴,失蹤者是張志新(化名)和其女友劉穎暮蹂,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體癌压,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡仰泻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了滩届。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片集侯。...
    茶點故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖帜消,靈堂內(nèi)的尸體忽然破棺而出棠枉,到底是詐尸還是另有隱情,我是刑警寧澤泡挺,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布辈讶,位于F島的核電站,受9級特大地震影響娄猫,放射性物質(zhì)發(fā)生泄漏贱除。R本人自食惡果不足惜生闲,卻給世界環(huán)境...
    茶點故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望勘伺。 院中可真熱鬧跪腹,春花似錦、人聲如沸飞醉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽缅帘。三九已至轴术,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間钦无,已是汗流浹背逗栽。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人吮成。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓睛驳,卻偏偏與公主長得像,于是被迫代替她去往敵國和親凭峡。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,047評論 2 355

推薦閱讀更多精彩內(nèi)容