• <noscript id="ggggg"><dd id="ggggg"></dd></noscript>
    <small id="ggggg"></small> <sup id="ggggg"></sup>
    <noscript id="ggggg"><dd id="ggggg"></dd></noscript>
    <tfoot id="ggggg"></tfoot>
  • <nav id="ggggg"><cite id="ggggg"></cite></nav>
    <nav id="ggggg"></nav>
    成人黃色A片免费看三更小说,精品人妻av区波多野结衣,亚洲第一极品精品无码,欧美综合区自拍亚洲综合,久久99青青精品免费观看,中文字幕在线中字日韩 ,亚洲国产精品18久久久久久,黄色在线免费观看

    首頁

    圖表設(shè)計(jì)總結(jié)┃數(shù)據(jù)可視化的精益之道

    前端達(dá)人

    1.png



    數(shù)據(jù)可視化是傳達(dá)信息的最好的方法之一,它可以直觀地呈現(xiàn)數(shù)據(jù),快速吸引用戶的注意力。但是如果設(shè)計(jì)師對(duì)圖表設(shè)計(jì)的理解有偏差,在界面呈現(xiàn)上可能會(huì)對(duì)用戶產(chǎn)生錯(cuò)誤的引導(dǎo),因此筆者結(jié)合自己的工作經(jīng)驗(yàn)對(duì)圖表設(shè)計(jì)進(jìn)行總結(jié),希望每位設(shè)計(jì)師都能成為優(yōu)秀的數(shù)據(jù)搬運(yùn)工。

    下面我將從功能、交互和UI深挖圖表設(shè)計(jì)的各個(gè)知識(shí)點(diǎn),敲黑板劃重點(diǎn)咯~

    2.png




    前言

    1.概念
    圖表泛指在屏幕中顯示的,可直觀展示統(tǒng)計(jì)信息屬性(時(shí)間性、數(shù)量性等),對(duì)知識(shí)挖掘和信息直觀生動(dòng)感受起關(guān)鍵作用的圖形結(jié)構(gòu),是一種很好的將對(duì)象屬性數(shù)據(jù)直觀、形象地“可視化”的手段。

    如果說表格可以承載數(shù)據(jù)的全面性,那么圖表可以完美展現(xiàn)數(shù)據(jù)的特點(diǎn)和變化,它對(duì)數(shù)據(jù)的解讀能力是表格無法做到的。



    3.png


    2.使用場(chǎng)景


    4.png


    (1)比較數(shù)據(jù)差異情況。基于分類的數(shù)據(jù),可以通過比較數(shù)據(jù)來了解不同分類的差異,比如柱狀圖?;诹鞒痰臄?shù)據(jù),可以通過比較數(shù)據(jù)了解數(shù)據(jù)的變化趨勢(shì),比如折線圖。
    (2)分析數(shù)據(jù)關(guān)聯(lián)情況。展現(xiàn)數(shù)據(jù)間相互關(guān)系和數(shù)據(jù)的流向。比如桑葚圖。
    (3)查看數(shù)據(jù)分布情況。對(duì)于錯(cuò)綜復(fù)雜的變量之間關(guān)系,可以通過圖表來找出規(guī)律。比如利用氣泡圖進(jìn)行回歸分析。
    (4)了解數(shù)據(jù)構(gòu)成情況。發(fā)現(xiàn)各變量的占比情況,比如餅圖。

    3.原則

    5.png



    (1)輕量。眾所周知表格是可以承載數(shù)據(jù)的全面性,但將相同的數(shù)據(jù)用可視化展示時(shí),設(shè)計(jì)師總想將所有的信息堆砌在圖表上,顯得圖表非常笨重,因此增加了用戶的思考時(shí)間。在此建議明確你圖表類型的特點(diǎn),將主要信息呈現(xiàn)在圖表上或者分層展示圖表,比如數(shù)據(jù)鉆取功能。
    (2)直觀。設(shè)計(jì)師應(yīng)該將數(shù)據(jù)信息清晰而直觀地表達(dá)出來,使用戶一眼就能洞察事實(shí),更快地發(fā)掘商業(yè)價(jià)值并作出決策。
    (3)美感。缺乏美感的數(shù)據(jù)可視化僅僅是數(shù)據(jù)展示。美感包括兩個(gè)部分,第一個(gè)部分是整體協(xié)調(diào)美,比如對(duì)圖表中的各個(gè)元素(標(biāo)題、網(wǎng)格、坐標(biāo)軸、縮略軸、圖例、提示信息、預(yù)警線和輔助線等)進(jìn)行合理的排版和使用協(xié)調(diào)的配色。第二部分是局部細(xì)節(jié)美,比如設(shè)計(jì)師根據(jù)流行趨勢(shì)給圖表加上漸變色。

    功能

    6.png



    我將用一種最復(fù)雜的圖表類型-雙軸圖當(dāng)作示范。

    1.標(biāo)題。包括左對(duì)齊、居中對(duì)齊和右對(duì)齊。在選擇某種對(duì)齊方式前,請(qǐng)兼顧圖例的擺放位置。


    7.png

    2.柵格。包含點(diǎn)狀、線狀和斑馬線。
    (1)根據(jù)數(shù)據(jù)特點(diǎn)選擇橫縱向輔助線,橫向引導(dǎo)線增強(qiáng)水平方向的導(dǎo)視??v向引導(dǎo)線增強(qiáng)垂直方向的導(dǎo)視。
    (2)線狀建議用虛線,因?yàn)椴皇怯脩舸_定指向值。

    8.png



    3.坐標(biāo)軸。坐標(biāo)軸包括X坐標(biāo)軸、Y坐標(biāo)軸和次坐標(biāo)軸。
    (1)X軸刻度方向的改變,如果維度過多,則橫向刻度的展示范圍有限。在沒有縮略軸的情況下,需要適當(dāng)改變刻度的角度(0~90度為宜)節(jié)省空間,但是要遵從人的閱讀習(xí)慣是從左到右的規(guī)則。
    (2)Y軸初始值定為0,如果不是,則無法體現(xiàn)數(shù)據(jù)的全面性。如果數(shù)據(jù)的波動(dòng)比較小有意義的(例如,在股票市場(chǎng)數(shù)據(jù)中),你可以截?cái)嗫潭纫燥@示這些差異。
    (3)Y軸刻度值盡量轉(zhuǎn)化為千位分隔符,如K,M,B。
    (4)Y軸最大值取值要恰當(dāng),保證圖表占據(jù)2/3以上。


    9.png



    4.縮略軸。包括滑面和滑柱。

    (1)拖動(dòng)滑柱滑動(dòng),增加或較少滑面,從而改變查看密度。

    (2)拖動(dòng)滑面滑動(dòng),保持滑面長度,進(jìn)行前后移動(dòng)。不改變查看密度,只改變查看范圍。


    10.png



    5.圖例。離散型數(shù)據(jù)包括橫向排列和縱向排列,連續(xù)型數(shù)據(jù)包括連續(xù)圖例。
    (1)所有圖表類型的排列方式要統(tǒng)一,所以要考慮整體的圖表空間是適合橫向排列,還是縱向排列。
    (2)所有形式總長度超過內(nèi)容區(qū)換行或換列。
    (3)雙軸圖包含了2種圖表類型,不同類型的圖例樣式要有所區(qū)分。
    (4)連續(xù)型數(shù)據(jù)通過漸變色來展示數(shù)據(jù)大小的變化。


    11.png




    6.提示信息。包括查看單個(gè)數(shù)據(jù)點(diǎn)和多個(gè)數(shù)據(jù)點(diǎn)。
    (1)單變量的浮層提示內(nèi)容為相同維度下選擇的變量。多變量的浮層提示內(nèi)容為相同維度下所有的變量。
    (2)提示內(nèi)容遵從表單規(guī)范,按照冒號(hào)對(duì)齊。
    (3)拓展:直聯(lián)表的圖例是展示所有變量,但是交叉表不是,是“變量+列維度”的排列組合


    12.png



    7.預(yù)警線。數(shù)據(jù)超過閾值就會(huì)報(bào)警,幫助用戶監(jiān)控?cái)?shù)據(jù)。
    (1)預(yù)警線建議用實(shí)線,并用警示的顏色引起用戶的注意,最好用郵件或短信通知用戶。

    8.輔助線。用戶設(shè)置某值作為數(shù)據(jù)參考進(jìn)行比較,比如設(shè)置平均分為參考數(shù)值。
    (1)輔助線建議用虛線,僅起參考作用。

    交互

    1.加載方式。加載動(dòng)畫建議使用和圖表相關(guān)的樣式。


    13.png

    2.排除異常值。允許用戶剔除高度異常點(diǎn),因?yàn)楫惓V禃?huì)影響用戶對(duì)整個(gè)圖表的分析。

    14.png

    3.數(shù)據(jù)鉆取。單擊某個(gè)數(shù)據(jù)可以看到該數(shù)據(jù)的詳細(xì)信息,變換分析的粒度。

    15.png

    4.適配
    (1)增減留白。圖表大小固定不變,只是增減留白空間。
    (2)等比縮放。圖表的長寬都以相同比例縮放。

    16.png



    UI

    1.顏色
    (1)顏色主題
    1)深色背景。適合較少信息內(nèi)容。
    優(yōu)點(diǎn):可以通過布局建立良好的視覺層次,深層次地反映內(nèi)容,而且視覺吸引力強(qiáng),給人以高端的視覺感受。
    缺點(diǎn):可讀性低。頁面太過聚焦所以對(duì)留白的平衡要求較高。

    17.png



    2)淺色背景。適合較多信息內(nèi)容。
    優(yōu)點(diǎn):可讀性高,增加了頁面空間。
    缺點(diǎn):內(nèi)容不聚焦,信息過少則頁面顯得太空。

    18.png


    (2)配色方案。首先要確保顏色數(shù)量足夠滿足數(shù)據(jù)系列在圖表中的展示。
    1)使用成熟的色板,比如Flat UI Colors和Material Design Colors。
    2)使用流行的元素,比如漸變色。
    3)使用情緒板,情緒板是一種借助于圖像,啟發(fā)和探索用戶的體驗(yàn),然后再作用于視覺設(shè)計(jì)的研究方法。 可以調(diào)查并形成具有指導(dǎo)意義的“風(fēng)格感受”和“設(shè)計(jì)元素”。


    19.png



    (3)顏色生成規(guī)則。一個(gè)變量統(tǒng)一用一種顏色,再按配色方案依次出每個(gè)變量的顏色。 使得同一圖表的色彩搭配和諧且具有美感。


    20.png

    (4)視覺缺陷。世界上有一部分人群有視覺缺陷,他們無法通過顏色來得到來精準(zhǔn)地區(qū)分圖表的維度和變量。作為設(shè)計(jì)師不能忽略這部分較為龐大的特殊群體。

    21.png

    設(shè)計(jì)師常用的PS和AI提供了模擬紅色盲和綠色盲的校樣設(shè)置,選擇“視圖—校樣設(shè)置—紅色盲型/綠色盲型”。

    22.png



    想要從根本上解決這個(gè)問題,推薦一篇騰訊設(shè)計(jì)師的文章信息圖形中的顏色探討—面向色盲人士友好的設(shè)計(jì)解決方案。

    2.布局
    視覺層級(jí)要符合邏輯層級(jí),利用信息深度引導(dǎo)用戶閱讀。每個(gè)元素要保持一致,保證布局的整體協(xié)調(diào)。

    23.png

    3.插畫
    符合主題和整體基調(diào),簡(jiǎn)單易懂,數(shù)據(jù)可視化具有一定的認(rèn)知門檻,有時(shí)候需要插畫來提高用戶的理解力。

    24.png



    4.留白
    信息過多容易造成視覺壓力,合理的留白可以增強(qiáng)用戶對(duì)信息的吸收能力。

    5.字體
    避免有個(gè)性的襯線字體,字體要保證清晰可見。字體大小適中,太小影響閱讀,太大容易占用圖表控件。普通字體大概12px,標(biāo)題用14px。

    工具

    1.使用大廠開放的圖表庫
    圖表庫的圖表類型豐富且統(tǒng)一,而且大大節(jié)省了開發(fā)時(shí)間,比如百度的Echart阿里的G2。

    2.在專業(yè)數(shù)據(jù)分析網(wǎng)站獲取靈感
    筆者剛開始學(xué)習(xí)數(shù)據(jù)可視化就是拿著數(shù)據(jù)表格不停地在競(jìng)品上摸索,作為一名用戶去感受這些圖表的交互體驗(yàn)。這里推薦一份數(shù)據(jù)可視化網(wǎng)站名單。

    總結(jié)

    1.先懂?dāng)?shù)據(jù),再談可視化
    為此我們要了解圖表類型的適用場(chǎng)景和局限,可以看33種經(jīng)典圖表類型總結(jié),輕松玩轉(zhuǎn)數(shù)據(jù)可視化。了解這些可以幫助大家通過UI設(shè)計(jì)更好地展現(xiàn)圖表的特點(diǎn)。比如展示各地區(qū)的人口密度,可以用柱狀圖來展示,但是我們發(fā)現(xiàn)用地圖會(huì)更加接近用戶的期望。

    2.為了數(shù)據(jù),過度可視化
    很多時(shí)候設(shè)計(jì)師在圖表上很難展現(xiàn)自己的設(shè)計(jì)功力,從而會(huì)給圖表增加過多的視覺效果,比如3D效果。

    3.真實(shí)數(shù)據(jù),友好可視化
    數(shù)據(jù)產(chǎn)品不要試圖去掩蓋問題,而要反映真實(shí)數(shù)據(jù),暴露問題,并且和用戶一同解決。比如對(duì)數(shù)據(jù)閾值進(jìn)行監(jiān)測(cè),預(yù)警線就是很友好的可視化方式。


    轉(zhuǎn)自:簡(jiǎn)書

    作者:idatadesign

    鏈接:https://www.jianshu.com/p/816f10b7d594

    來源:簡(jiǎn)書

    著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。




    藍(lán)藍(lán)設(shè)計(jì)www.lzhte.cn )是一家專注而深入的界面設(shè)計(jì)公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)、BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 平面設(shè)計(jì)服務(wù)







    兩萬五千字!寫給設(shè)計(jì)師的數(shù)據(jù)可視化指南

    前端達(dá)人

    現(xiàn)如今無論是工作匯報(bào),產(chǎn)品設(shè)計(jì),后臺(tái)設(shè)計(jì)甚至是數(shù)據(jù)大屏,越來越多的設(shè)計(jì)師需要和數(shù)據(jù)打交道。尤其是想要做B端的設(shè)計(jì)師,數(shù)據(jù)可視化更是必不可少的一個(gè)技能。數(shù)據(jù)可視化,可謂是越來越體現(xiàn)一個(gè)設(shè)計(jì)師的專業(yè)能力。

    因此掌握數(shù)據(jù)可視化能力,是面向未來的設(shè)計(jì)師所必備的能力。然而尷尬的是,國內(nèi)沒有一款針對(duì)于教學(xué)數(shù)據(jù)可視化的全套解決方案,這讓很多渴望學(xué)習(xí)的設(shè)計(jì)師摸不著頭腦。所以這也促使我開啟了這個(gè)系列――「設(shè)計(jì)師需要了解的數(shù)據(jù)可視化」,希望能夠給大家?guī)硪恍┎灰粯拥膬?nèi)容,為大家梳理一個(gè)完整的數(shù)據(jù)可視化框架。

    今天帶來的就是這個(gè)系列的第一篇,數(shù)據(jù)可視化的概念以及數(shù)據(jù)可視化設(shè)計(jì)的基本準(zhǔn)則。最近一直在做國際外包,時(shí)間非常的零散,而寫邏輯性強(qiáng)的文章又非常耗費(fèi)精力。所以從開題到現(xiàn)在,用了將近2個(gè)月的時(shí)間才將這篇文章徹底收尾。全文總計(jì)25000字左右,閱讀需要20分鐘左右,干貨滿滿,請(qǐng)大家做好準(zhǔn)備。(如果沒有時(shí)間,我之后我也會(huì)將該內(nèi)容錄成音頻,如果有興趣,可以持續(xù)關(guān)注我)

    什么是數(shù)據(jù)可視化

    數(shù)據(jù)可視化就是借助視覺的表達(dá)方式(不局限于文字),將枯燥的,專業(yè)的,不直觀的數(shù)據(jù)內(nèi)容,有趣的、淺顯的、直觀的傳達(dá)給觀眾的一種手段。

    非設(shè)計(jì)師在制作數(shù)據(jù)可視化時(shí),往往會(huì)因?yàn)橹攸c(diǎn)突出數(shù)據(jù)的重要性,而讓可視化圖表變得枯燥乏味。而設(shè)計(jì)師在制作數(shù)據(jù)可視化時(shí),又會(huì)因?yàn)檫^度注重絢麗多彩而讓數(shù)據(jù)的呈現(xiàn)效果大打折扣。所以在這種大環(huán)境下,催生出了數(shù)據(jù)可視化行業(yè)。作為設(shè)計(jì)師,如何擁抱這個(gè)新興的行業(yè),如何把握設(shè)計(jì)與功能之間的平衡,從而更好的溝通與傳達(dá)信息,即是本文的重點(diǎn)。

    1.png


    信息圖表,就是數(shù)據(jù)可視化后產(chǎn)生的結(jié)果,就是我們?cè)诠ぷ鲄R報(bào)中,項(xiàng)目介紹中,以及后臺(tái)系統(tǒng)中經(jīng)常見到的數(shù)據(jù)圖表。信息圖形由信息和圖形兩個(gè)詞語組成,它被稱之為「信息圖形」(Infographics或Information Graphics)。

    信息圖形最初是在舊的紙質(zhì)媒體上刊登的,更加有助于人們理解新聞信息的可視化內(nèi)容。

    2.png

    3.png



    信息圖表的分類

    根據(jù)木村博之的定義,從視覺表現(xiàn)形式的角度,將「信息圖表」的呈現(xiàn)方式分為六大類:圖解(Diagram)、圖表(Chart)、表格(Table)、統(tǒng)計(jì)圖(Graph)、地圖(Map)、圖形符號(hào)(Pictogram)。


    4.png




    1. 圖解—主要運(yùn)用插圖對(duì)事物進(jìn)行說明

    文字有時(shí)候是一種匱乏的信息傳遞方式,而可視化的方式,則是人類最本源的一種信息傳遞方式,圖解就是將很多無法準(zhǔn)確或用語言傳達(dá)的內(nèi)容,以生動(dòng)形象的圖形解釋出來。下圖是一張經(jīng)典的對(duì)于咖啡種類圖解,38種咖啡配方,不必要用多余的文字解釋,直接用圖解表示,簡(jiǎn)單明了,清晰易懂。

    5.png




    2. 圖表—運(yùn)用圖形、線條及插圖等,闡述事物的相關(guān)關(guān)系

    圖表通常用于簡(jiǎn)化人們對(duì)于大量數(shù)據(jù)之間的關(guān)系的理解。人們通常理解圖表會(huì)比理解數(shù)據(jù)要快很多。圖表和圖解唯一的不同點(diǎn)在于,圖解是用可視化的方式去傳遞信息,而圖表則是用來去闡述信息之間的邏輯關(guān)系。流程圖就是典型的圖表。

    下圖是一張寵物狗的進(jìn)化圖,用巧妙的方式清晰地向我們傳遞了,狼是如何被人類馴化成不同種類的寵物狗的。


    6.png



    3. 表格—根據(jù)特定信息標(biāo)準(zhǔn)進(jìn)行區(qū)分,設(shè)置縱軸和橫軸

    表格是按照行和列或者采用更復(fù)雜的結(jié)構(gòu)排列的數(shù)據(jù),表格廣泛應(yīng)用于通信、研究和數(shù)據(jù)分析。其實(shí)表格并沒有一個(gè)確定的定義,它會(huì)因?yàn)椴煌男袠I(yè)和談?wù)摥h(huán)境而存在差異.

    7.png



    4. 統(tǒng)計(jì)圖—通過數(shù)值來表現(xiàn)變化趨勢(shì)或者進(jìn)行比較

    統(tǒng)計(jì)圖是根據(jù)統(tǒng)計(jì)數(shù)字,用 幾何圖形 、事物形象和地圖等繪制的各種圖形。它具有 直觀 、 形象 、 生動(dòng) 、 具體 等特點(diǎn)。統(tǒng)計(jì)圖可以使復(fù)雜的統(tǒng)計(jì)數(shù)字簡(jiǎn)單化、通俗化、形象化,使人一目了然,便于理解和比較。因此,統(tǒng)計(jì)圖在統(tǒng)計(jì) 資料整理 與分析中占有重要地位,并得到廣泛應(yīng)用。

    下圖是大城市通勤的時(shí)長統(tǒng)計(jì),通過這些柱狀圖,我們能很清晰的看出各個(gè)級(jí)別的城市通勤時(shí)長的比例關(guān)系,并了解他們的擁堵時(shí)長和非擁堵時(shí)長分別是怎樣的情況。


    8.png




    5. 地圖—描述在特定區(qū)域和空間里的位置關(guān)系

    將真實(shí)的世界轉(zhuǎn)換為平面,在此過程中必然要講一些東西略去。實(shí)際上,要說「省略」是地圖上最關(guān)鍵的詞也不為過,無論是哪種信息地圖,最重要的是讓用戶找到想要看到的信息。

    信息地圖也可分為兩大類:

    第一類,將整個(gè)區(qū)域的布局或結(jié)構(gòu)完整呈現(xiàn)的地圖。

    第二類,將特定對(duì)象突出顯示的地圖。

    以下是美國各州擁有槍支人數(shù)占總?cè)藬?shù)的百分比統(tǒng)計(jì)圖。

    9.png






    6. 圖形符號(hào)—不使用文字,直接用圖畫傳達(dá)信息

    所謂圖形符號(hào)(也就是我們常說的icon),基本就是通過易于理解、與人直覺相符的圖形傳達(dá)信息的一種形式。生活中處處存在圖形符號(hào),包括地鐵站出入口上的地鐵標(biāo)識(shí),路邊的指示牌與限速標(biāo)識(shí)。人們會(huì)約定俗成的運(yùn)用一些符號(hào)來代表一些固定的意思,比如廁所門口的男女標(biāo)識(shí),很多商店為了個(gè)性化設(shè)計(jì),使用了不常用的符號(hào)來表示男女,這會(huì)給消費(fèi)者造成很大的困擾,因?yàn)檫@脫離了他們常見的理解范圍。

    圖形符號(hào)的設(shè)計(jì)原則是盡可能不使用文字,其作用有兩條:

    避免語言不通造成的困擾。

    更便捷的、更清晰的傳遞信息。

    多年來,最經(jīng)典的圖形符號(hào)應(yīng)用案例可以說是奧運(yùn)會(huì)和殘奧會(huì)的運(yùn)動(dòng)圖標(biāo)了。圖形符號(hào)可以說已經(jīng)成為奧運(yùn)會(huì)和殘奧會(huì)的重要組成部分,就像火炬?zhèn)鬟f和運(yùn)動(dòng)會(huì)LOGO一樣,從賽事門票到奧運(yùn)村的品牌,圖形符號(hào)都在被廣泛使用。

    下圖即為東京奧運(yùn)會(huì)的運(yùn)動(dòng)圖形符號(hào)(局部)


    10.png




    達(dá)到數(shù)據(jù)可視化目標(biāo)的基本方法

    目前我們工作中經(jīng)常遇到的數(shù)據(jù)可視化,大多數(shù)是制作數(shù)據(jù)圖表(即統(tǒng)計(jì)圖 Graph),所以我們本文的主要教學(xué)內(nèi)容也是圍繞著如何制作統(tǒng)計(jì)圖來說。

    制作統(tǒng)計(jì)圖的過程可以被四個(gè)步驟,分別是:明確目的、選擇圖表、視覺設(shè)計(jì)、突出信息。


    11.png




    明確目的:明確數(shù)據(jù)可視化的目標(biāo),通過數(shù)據(jù)可視化我們要解決什么樣的問題,需要探索什么內(nèi)容或陳述什么事實(shí),并選擇合適的圖表。

    選擇圖表:圍繞目標(biāo)找到能提供信息的指標(biāo)或者數(shù)據(jù),選擇合適的圖形去展示需要可視化的數(shù)據(jù)。

    視覺設(shè)計(jì):以可視化的手段將數(shù)據(jù)轉(zhuǎn)化成有趣的設(shè)計(jì)語言。

    突出信息:根據(jù)可視化展示目標(biāo),將重要信息添加輔助線或更改顏色等手段,進(jìn)行信息的凸顯,將用戶的注意力引向關(guān)鍵信息,幫助用戶理解數(shù)據(jù)意義。

    1. 明確目的

    大多數(shù)情況,明確圖表本身要達(dá)到的目的,比制作好圖表本身更加重要。如果對(duì)數(shù)據(jù)認(rèn)識(shí)不清,就會(huì)造成2種結(jié)果:

    無法擬定合適的圖表標(biāo)題,從而使讀者失去閱讀圖表的興趣。

    無法選擇出正確的可視化方式,從而使圖表難以理解。

    知識(shí)點(diǎn) 01:好的圖表標(biāo)題 ―― 等于成功的一半

    大多數(shù)圖表都需要一個(gè)好的標(biāo)題,這樣才能讓面試官知道他們?cè)诳词裁础?

    標(biāo)題應(yīng)該是一個(gè)結(jié)論,是你希望面試官從中獲得的信息(有意義并且有趣的部分),而不僅僅是對(duì)圖表展示內(nèi)容的概括(即無意義且無趣的部分)。


    12.png13.png


    2. 選擇圖表

    Andrew Abela 根據(jù)統(tǒng)計(jì)圖的主要功能,將所有的統(tǒng)計(jì)圖分為了四大類:比較、聯(lián)系、分布、構(gòu)成。在其資料的基礎(chǔ)上,我制作了一套更適合設(shè)計(jì)師的「圖表選擇器」(The Way of Data Visualization)。

    14.png




    通過上述圖表選擇器,我們可以輕易的根據(jù)我們想要展現(xiàn)的數(shù)據(jù)的種類,以及我們制作圖表的目的,來選擇到合適的圖表。但是日常工作中,我們往往用不到這么多的圖表種類,這個(gè)「圖表選擇器」更適合我們作為學(xué)習(xí)圖表概念的工具。日常工作中,有六種基本圖表已經(jīng)可以覆蓋我們大部分的使用場(chǎng)景,也是做數(shù)據(jù)可視化最常用的六種圖表類型。


    15.png




    所以作為新手的我們,只要能熟練掌握這六種圖表,即可應(yīng)付大部分的使用場(chǎng)景,而對(duì)于我們這種更專業(yè)的人士來說,上述的「圖表選擇器」能夠大大提高我們的工作效率。

    3. 視覺設(shè)計(jì)

    接下來也是數(shù)據(jù)可視化中最重要的一步,視覺設(shè)計(jì)。很多時(shí)候我們?cè)谠O(shè)計(jì)圖表時(shí)沒有既定的規(guī)則,全憑借在平面設(shè)計(jì)和UI設(shè)計(jì)中獲得的知識(shí)來進(jìn)行設(shè)計(jì)。但之所以數(shù)據(jù)可視化被單獨(dú)細(xì)化成一個(gè)類別,并在國外蓬勃發(fā)展,甚至衍生出了專業(yè)的數(shù)據(jù)可視化設(shè)計(jì)師,就證明在數(shù)據(jù)可視化領(lǐng)域,很多規(guī)則是與其他設(shè)計(jì)不同的。

    一個(gè)最簡(jiǎn)單的例子,市面上大多數(shù)的配色方案都在數(shù)據(jù)可視化領(lǐng)域不適用。

    毫無包容性的配色方案

    首先,適用于數(shù)據(jù)可視化的配色方案,一定在明度上是有變化的。很多配色方案不僅不具備這種特性,甚至不會(huì)考慮包容性。UI設(shè)計(jì)的配色方案看起來都很絢麗多彩,但是很明顯,他們是為了用戶界面而設(shè)計(jì)的。色盲人士往往很難去閱讀那些運(yùn)用了低包容性配色方案的可視化圖表。


    16.png



    沒有足夠多的顏色種類

    另一個(gè)問題就是,大多數(shù)配色方案并沒有足夠多的顏色種類。

    在構(gòu)建一套完整的可視化圖表時(shí),我們往往至少需要6種顏色的調(diào)色板來進(jìn)行設(shè)計(jì),我們見過的大多數(shù)配色方案并不具有這么多種顏色。

    17.png




    雖然這些配色方案同樣絢麗多彩,但是他們不能靈活應(yīng)對(duì)圖表中復(fù)雜的信息層級(jí)。

    難以區(qū)分層級(jí)的配色方案

    漸變配色方案可以輕松解決上述兩個(gè)問題(顏色之間有明顯的對(duì)比,且可以無限細(xì)分顏色種類)。但很抱歉,這樣的配色方案同樣不適用數(shù)據(jù)可視化,我們舉一些簡(jiǎn)單的例子大家就可以明白。


    18.png



    這些漸變色看起來沒什么問題,但是當(dāng)我們選擇其中一個(gè),將其顏色分類擴(kuò)充到10時(shí),問題就出現(xiàn)了。


    19.png



    你能區(qū)分出最左邊的4個(gè)顏色之間有什么差別嗎?恐怕很難。

    前面的闡述,大多數(shù)是為了讓大家對(duì)數(shù)據(jù)可視化有一個(gè)清晰的概念。在「視覺設(shè)計(jì)」這一章我將重點(diǎn)講解,數(shù)據(jù)可視化(即圖表制作時(shí))需要注意的設(shè)計(jì)準(zhǔn)則。下面的內(nèi)容主要解決大家在數(shù)據(jù)可視化中所遇到的三個(gè)問題。

    如何制作數(shù)據(jù)可視化圖表?

    如何快速的制作數(shù)據(jù)可視化圖表?

    如何制作一份兼具實(shí)用性和美觀性的數(shù)據(jù)可視化圖表?

    適用于所有圖表的制作規(guī)則

    1. 圖表中的線條

    有無刻度線

    當(dāng)數(shù)據(jù)的數(shù)值非常重要時(shí),一定要使用刻度線來讓觀眾更清晰的了解數(shù)據(jù)。

    如果你的聽眾只需要了解A數(shù)據(jù)大于B數(shù)據(jù),那么刻度線是沒有必要的,只需在坐標(biāo)軸上使用小刻度即可。如果你的讀者要花一些時(shí)間在柱狀圖上并感興趣A數(shù)據(jù)是45.65而B數(shù)據(jù)是37.66,那么使用刻度線將有助于他們理解。

    20.png




    刻度線的顏色

    如果確定要使用刻度線,則需要使它們比作為實(shí)際數(shù)據(jù)的點(diǎn)或者線條要層級(jí)低。因?yàn)檫@些刻度線也屬于背景的一部分。

    總結(jié)來說,不要使用全黑或者全白的線條。如果你的背景顏色是白色或者淺色系,那么你應(yīng)該讓你的線條灰一些。你也同樣可以讓這些線條變成亮灰色,點(diǎn)狀或者虛線.

    21.png


    負(fù)空間的刻度線網(wǎng)格

    你也可以使用灰色的背景,然后將刻度線反白。這是一種很好的利用負(fù)空間做設(shè)計(jì)的方法?;蛘呖潭染€可以用稍微偏黑色一點(diǎn)的灰色,因?yàn)楹苊黠@這樣會(huì)讓刻度線更融入背景一些。

    22.png


    數(shù)據(jù)可視化指南

    坐標(biāo)線

    坐標(biāo)線應(yīng)該比刻度線,線條更粗,顏色更深,才能讓整個(gè)圖表顯得更有主次的區(qū)分。

    23.png



    2. 選擇合適的坐標(biāo)上下限

    選擇合適的坐標(biāo)下限

    一般來講,我們應(yīng)該把我們的坐標(biāo)下限設(shè)置為0。

    有人會(huì)問,這樣的話我們的數(shù)據(jù)就會(huì)變得沒有那么起伏變化了。那可能是因?yàn)槟愕臄?shù)據(jù)本身就沒有那么長勢(shì)喜人。

    但同樣,其實(shí)很多事情可以反過來思考,之所以有人愿意不把坐標(biāo)軸設(shè)定為0為起點(diǎn),其實(shí)就是為了在視覺上讓人形成對(duì)比強(qiáng)烈的感覺,從而突出業(yè)績(jī)。這種方法的使用因人而異。


    24.png




    比如在小米的發(fā)布會(huì)中,為了對(duì)比,小米把數(shù)據(jù)的下限起點(diǎn)設(shè)置為了10000,從而使小米的跑分?jǐn)?shù)據(jù)看似跑贏了友商一倍還多,但其實(shí)小米的數(shù)據(jù)增長,只比友商高出了25%。

    再舉個(gè)例子:這張條形圖也是經(jīng)福克斯新聞準(zhǔn)許使用的。


    25.png



    3月31日目標(biāo)的值為7,066,000,比6,000,000高17.8%,然而第二個(gè)柱形幾乎是第一個(gè)柱形長度的三倍。


    26.png



    這也同時(shí)提醒我們要注意,在觀看別人的圖表時(shí),僅僅觀看柱狀圖的高低趨勢(shì)往往不能得出正確結(jié)論,需要注意坐標(biāo)軸起始位置有沒有被人做過虛假處理。

    同樣的,有些人為了匯報(bào)業(yè)績(jī),也會(huì)使每個(gè)刻度的跨度不一致,從而提高柱狀圖整體的對(duì)比度。這種情況也應(yīng)該多留心觀察,不要被表面的內(nèi)容所迷惑。

    27.png




    選擇合適的坐標(biāo)上限

    坐標(biāo)軸中另一個(gè)需要注意的點(diǎn)即為坐標(biāo)上限。上限界定的方式有兩種,可根據(jù)需求自行判斷。

    如果只是為了比較各個(gè)數(shù)據(jù)的數(shù)值,可以用數(shù)據(jù)的最大值作為坐標(biāo)軸上限。

    如果是需要將數(shù)據(jù)與某個(gè)最大值比較,則用此最大值作為上限.

    28.png



    3. 刻度值

    雖然Y軸的刻度值標(biāo)簽通常放置在刻度線的最左邊,但我們也可以把它們放置在其他的地方,比如刻度線的頂部。(但此時(shí)一定要把握好親密性原則,稍不注意就會(huì)引起觀眾的困惑,這也是我們經(jīng)常會(huì)在看其他圖表時(shí)遇到的問題,到底刻度值標(biāo)記的是哪一條刻度線?)


    29.png



    刻度線和刻度值相輔相成,這會(huì)讓圖表看起來更加規(guī)范??潭戎捣胖迷谀睦餆o所謂好壞,只是需要根據(jù)不同的場(chǎng)合加以使用。

    間隔均勻

    30.png



    在坐標(biāo)軸上應(yīng)該使用均勻的跨度0,5,10,15,20,而非不均勻的跨度0,3,5,16,50。這里即呼應(yīng)上方「坐標(biāo)軸下限」中的最后一點(diǎn),有時(shí)圖表制作人也會(huì)用不均勻的刻度來蒙騙我們對(duì)數(shù)據(jù)產(chǎn)生誤解。

    當(dāng)然,此處的舉例只是夸大了錯(cuò)誤的效果,現(xiàn)實(shí)生活中的不均勻刻度往往更加隱蔽,需要我們仔細(xì)去甄別。

    不要使用非水平和豎直的文字標(biāo)注,也不要使用轉(zhuǎn)行

    有時(shí)坐標(biāo)軸上的注釋文字會(huì)很多,所以很多人為了妥協(xié),在小空間內(nèi)顯示出所有的文字標(biāo)注內(nèi)容,而使用傾斜的文本,或者將文本轉(zhuǎn)行處理。

    不要用過于復(fù)雜的設(shè)計(jì)形式,數(shù)據(jù)可視化的第一要義是簡(jiǎn)單易懂,所以在遇到標(biāo)簽文字過長時(shí),可以采用以下方法進(jìn)行解決。

    31.png


    4. 數(shù)據(jù)的處理與排序

    我們?cè)诿看沃谱髑岸紝?duì)數(shù)據(jù)進(jìn)行排序,而不是隨機(jī)排布。這樣我們可以在圖表中為觀眾展示更多信息,即某個(gè)數(shù)據(jù)在總的數(shù)據(jù)庫里面的序列。

    大小排序

    我們還是從一系列國家的數(shù)據(jù)開始。

    32.png

    目前的排布很隨機(jī),或者是按照字母表排序的。接下來我們要按照數(shù)值從大到小進(jìn)行排列。

    33.png


    我們隨機(jī)挑選一組數(shù)據(jù),比如玻利維亞(Bolivia),再上圖中,我們只能得到玻利維亞的數(shù)據(jù)值,以及他大概在數(shù)據(jù)庫中排在中游的位置,僅此而已。但是下圖中,根據(jù)大小排列好的數(shù)據(jù),我們不僅可以獲得剛才的兩個(gè)信息,同時(shí)還能馬上知道玻利維亞在整個(gè)圖表中的排名(第四名)。同時(shí)你還可以看到吉爾吉斯斯坦(Krygyzstan)和越南(Vietnam)居于榜首而美國(America)是倒數(shù)第一,這就是好的圖表能給我們帶來的「更多的信息」。

    我們?cè)倏匆槐榘凑兆帜副砼判虻膱D表,你能輕易的輸說出「岡比亞(Gambia)」排名第幾嗎?

    34.png36.png



    刻意的序列

    在發(fā)布會(huì)中我們常常見到,為了突出自己產(chǎn)品的強(qiáng)悍,往往要與友商的數(shù)據(jù)做對(duì)比,在這種情況下,我們的數(shù)據(jù)也不是隨機(jī)排布的,我給這種數(shù)據(jù)排布方法起了個(gè)名字,叫「刻意的序列」。

    在 魅族 16th 的發(fā)布會(huì)中,這張旗艦機(jī)重量對(duì)比的圖表很有講究,可以發(fā)現(xiàn),除了索尼(最重的手機(jī))以及 魅族 16th(最輕的手機(jī))外,其余所有的手機(jī)都是按照降序排列。不看顏色對(duì)比,把 236g 的索尼和 152g 的魅族放置在一起進(jìn)行講解,以更加突出魅族的輕薄。

    那么這個(gè)圖表的數(shù)據(jù)排序其實(shí)經(jīng)過了三次處理。

    把重量從高到低排序。

    把重量最高的和的手機(jī)單獨(dú)放置,并給予特殊顏色單獨(dú)顯示。

    把這兩個(gè)數(shù)據(jù)放置在最后,再次突出對(duì)比,吸引觀眾注意。

    這就是我們學(xué)習(xí)數(shù)據(jù)可視化時(shí)非常需要注意的細(xì)節(jié)點(diǎn),在數(shù)據(jù)可視化中,細(xì)節(jié)決定成敗。

    37.png




    5. 關(guān)于圖例的設(shè)計(jì)

    數(shù)字需要四舍五入

    我們有時(shí)為了保證圖表的清晰整潔,并不能完全選擇符合數(shù)據(jù)上限和下限的數(shù)字作為刻度,而是選擇一些取整的數(shù)字。

    同樣的,這不僅僅適用于圖例中的數(shù)字,同樣適用于坐標(biāo)軸上下限的數(shù)字。


    38.png



    標(biāo)記圖例的邊界比標(biāo)記圖例的范圍更好

    在需要用多種顏色做區(qū)分的圖表中,有時(shí)可以通過標(biāo)記圖例邊界而不是標(biāo)記圖例范圍的方式,來提高觀眾的閱讀效率。

    39.png


    水平或者垂直方向的圖例

    對(duì)于數(shù)字的刻度,水平圖例往往比垂直圖例更加容易閱讀,因?yàn)檫@符合我們的閱讀習(xí)慣。

    40.png

    但是,對(duì)于有類別區(qū)分的圖例來說,垂直圖例往往效果更好,因?yàn)槲覀兛梢栽趫D例的右邊放置更長的文本(跟坐標(biāo)軸的注釋同樣的道理)

    41.png



    刪除內(nèi)部邊界

    有時(shí)我們甚至可以更簡(jiǎn)約的表示圖例,當(dāng)你只想表達(dá)一個(gè)漸進(jìn)的過程,24和55之間的差異并不重要,觀眾只需要知道后者比前者大即可。在這種情況下,我們可以嘗試只標(biāo)記出圖例的最大值和最小值,而不必要標(biāo)記出每個(gè)邊界或者顏色,這樣可以給觀眾減少不必要的信息負(fù)擔(dān)。


    42.png




    6. 圖表上的文字信息

    文字標(biāo)注的作用,不是來填充空白的,而是用來強(qiáng)調(diào)相關(guān)信息或拓展額外的背景知識(shí)的。

    引用消息來源

    大多數(shù)情況下,我們制作的圖表都不會(huì)將原數(shù)據(jù)附在旁邊,因此最好在圖表中引用你的數(shù)據(jù)來源。一般來說,引用規(guī)則是在左下角防止數(shù)據(jù)來源信息,往往采用特殊字體



    43.png



    引用消息來源,既可以方便你隨時(shí)索引數(shù)據(jù)來源(就像我文章開頭的每一個(gè)圖表都標(biāo)注出了他的原標(biāo)題+索引網(wǎng)址),也可以增加數(shù)據(jù)的可信度。(有趣的事,人人往往不會(huì)關(guān)注數(shù)據(jù)來源于哪里,只要有來源,就會(huì)大大增加人們的信服感)

    44.png



    用數(shù)字輔助表達(dá)

    有時(shí)你需要在你的圖表中標(biāo)注出數(shù)據(jù)值,而不僅僅應(yīng)該依賴視覺元素向觀眾傳達(dá)信息。

    45.png



    通常來說,不需要太嚴(yán)謹(jǐn)?shù)膱D表,我們會(huì)對(duì)數(shù)據(jù)值進(jìn)行一定程度的處理。

    有小數(shù)的值四舍五入。(234.19 ―― 234)

    在數(shù)據(jù)的量級(jí)非常大時(shí),將一定位數(shù)數(shù)字取整。(52,133 ―― 52,000)

    當(dāng)所有數(shù)據(jù)的量級(jí)都非常大時(shí),將一定位數(shù)的數(shù)字縮進(jìn)單位中。(521,000,000 元 ―― 5.21 億元)

    Y軸刻度值盡量轉(zhuǎn)化為千位分隔符,如K,M,B。

    Y軸最大值取值要恰當(dāng),保證圖表占據(jù)2/3以上。

    如果我們不這樣處理,你就會(huì)發(fā)現(xiàn)你的圖表總是不那么整潔。

    7. 控制字體的數(shù)量

    圖表中的字體數(shù)量以及字體大小的種類加起來不要超過3種(標(biāo)題和副標(biāo)題除外)。通常來說,我們?cè)谥谱鲿r(shí)會(huì)把注釋和坐標(biāo)軸標(biāo)簽設(shè)置為兩種字體樣式,所以只需要確保將這兩者統(tǒng)一起來,那么就可以保證我們的圖表不超過3種字體樣式。

    46.png



    47.png

    柱狀圖的制作規(guī)范

    1. 柱狀過寬或過窄

    48.png



    過寬的柱會(huì)讓圖表看起來笨重,盡量保持柱的輕薄,這樣可以保持優(yōu)雅的外觀,但是太薄了會(huì)讓用戶很難對(duì)數(shù)據(jù)進(jìn)行比較。

    標(biāo)準(zhǔn)的數(shù)值為,柱的寬度為「柱與柱間距」的2倍,當(dāng)然這只是個(gè)參考值,實(shí)際我們根據(jù)不同的情況,對(duì)寬度作出調(diào)整。

    49.png




    2. 盡量不要超過7個(gè)值

    一般進(jìn)行數(shù)據(jù)比較時(shí),柱狀圖建議不要超過5個(gè)數(shù)據(jù)值,對(duì)于條形圖來說,建議不要超過7個(gè)數(shù)據(jù)值。

    折線圖的制作規(guī)范

    1. 有層次區(qū)分的折線/曲線

    當(dāng)我們?cè)谥谱饕粋€(gè)復(fù)雜的折線圖時(shí),我們想要顯示其中的一條數(shù)據(jù),最好的方法就是加強(qiáng)它與其他元素的對(duì)比,從而提高它的重要性層級(jí)。

    利用我們之前的方法,把其他的數(shù)據(jù)變?yōu)榛疑?

    將我們需要強(qiáng)調(diào)的曲線置于頂層。

    50.png



    2. 什么時(shí)候是用折線圖

    2017年1月和2月的大米出口量是相關(guān)的,他們代表一種數(shù)據(jù)在不同時(shí)間下的數(shù)據(jù)值,因此我們可以用折線圖將它們連接起來。但是2017年1月的大米出口量和玉米出口量(16萬噸)是不相關(guān)的,所以我們不能隨便用折線圖來代替柱狀圖。

    51.png



    用折線圖可以很好的表示每天去醫(yī)院的人數(shù),因?yàn)榻y(tǒng)計(jì)每天去醫(yī)院的人數(shù)可以用來觀察趨勢(shì)。

    3. 按照時(shí)間推進(jìn)的數(shù)據(jù)并不能總是用折線圖來表示

    有時(shí)我們也需要進(jìn)行一些區(qū)分。如果我們想要繪制美國大規(guī)模槍擊事件的傷亡人數(shù)隨時(shí)間推移的圖表。這些槍擊事件確實(shí)是一個(gè)接一個(gè)發(fā)生的,但是它們本質(zhì)上卻沒有關(guān)系,所以你不能用折線圖(應(yīng)該用條形圖)。

    但是,如果按年份對(duì)它們進(jìn)行歸類,并計(jì)算每年的傷亡人數(shù)。這樣的情況下可以使用折線圖進(jìn)行統(tǒng)計(jì),因?yàn)榻y(tǒng)計(jì)結(jié)果的趨勢(shì)變化是有意義的,是可以得出相應(yīng)的結(jié)論的。

    4. 使鋸齒狀的線條平滑

    如果你的折線上下浮動(dòng)過于劇烈,那么你應(yīng)該嘗試?yán)L時(shí)間間隔,比如不每天采樣而以周為單位來采樣。觀眾們不會(huì)去閱讀鋸齒狀的線條,或者說他們不會(huì)喜歡這樣的圖表。

    52.png



    5. 在你的折線圖中繪制數(shù)據(jù)點(diǎn)

    當(dāng)有些特定的數(shù)值特別重要時(shí),我們可以在線條上標(biāo)注出他們,如果你有大量的數(shù)據(jù)需要展示,或者你只想展示數(shù)據(jù)的走勢(shì),那么其實(shí)你只需要使用折線就足夠了,不需要增加數(shù)據(jù)點(diǎn)。不信你可以試試,大量的數(shù)據(jù)點(diǎn) = 混亂不堪的界面。

    53.png






    餅圖的制作規(guī)范

    餅圖和圓環(huán)圖在數(shù)據(jù)可視化方面生病狼藉,但卻是使用的最頻繁的圖表之一。餅圖是一種應(yīng)該避免使用的圖表,因?yàn)槿庋蹖?duì)面積大小不敏感,并且?guī)缀鯖]有對(duì)與角度大小的概念。更何況是肉眼完全無法重合比較的圖形。


    54.png



    例如上面左圖,我們很難去比較每日從肉類(Meat)中攝入的卡路里與從糖類(Sugar&Fat)中攝入的卡路里數(shù)量的比例。人眼的直覺中,糖類與肉類的比例應(yīng)該在2:1左右,但實(shí)際的比例卻是1.5:1。

    上述右圖將這一現(xiàn)象放大的更加明顯。人眼的直覺中,辦公與接待的數(shù)值差距非常大(這是由于我們直覺更習(xí)慣從面積上做判斷),但實(shí)際上接待與辦公的比例為1.5:1。

    很多設(shè)計(jì)師認(rèn)為餅圖應(yīng)該是被禁止使用的圖表,我覺得不能說的太絕對(duì),不管怎樣,迄今為止事實(shí)情況是,仍然有很多人在使用餅圖,所以我們至少可以爭(zhēng)取正確的使用他們。

    雖然如此,但是在強(qiáng)調(diào)個(gè)體與總體的比例關(guān)系方面,餅圖還是有其獨(dú)特的優(yōu)勢(shì)。

    1. 避免過度分割餅圖,否則最終會(huì)導(dǎo)致根本無法閱讀

    55.png




    那么有同學(xué)會(huì)問:分割多少塊是過度分割?這是一個(gè)需要在實(shí)際制作時(shí)進(jìn)行判斷的問題。一個(gè)簡(jiǎn)單的方法,如果我們已經(jīng)很難從圖中看出其中一塊扇形是另一塊的兩倍大了,或者好幾塊較小的扇形看起來差不多大時(shí),那么就不能再分割了。此時(shí)可以考慮把較小的類目歸入一個(gè)更大的:「其他」模塊。

    如果一定要給出一個(gè)確切的分類數(shù)目,我認(rèn)為一般不要超過9個(gè),超過的話,建議用條形圖來展示,不要太依賴于餅圖。


    56.png




    例:這張餅圖來自維基百科,它展示了國家的不同區(qū)域。

    左邊這張餅圖已經(jīng)分割出了無數(shù)個(gè)扇形了,但旁邊另分離出一張餅圖,顯示出了左圖中更多的,看不到的更小國家的情況,以此來提供更多的信息。其實(shí)還有很多的方法可以展示這組數(shù)據(jù),例如樹狀圖或者普通的地圖。局限較大的餅圖只適用于展示只有幾組值的數(shù)據(jù)。

    除餅圖外,環(huán)形圖(甜甜圈圖)亦可表示占比,其差異是將餅圖的中間區(qū)域挖空,在空心區(qū)域顯示文本信息,比如標(biāo)題,優(yōu)勢(shì)是其「空間利用率更高」。

    57.png


    數(shù)據(jù)可視化指南

    2. 餅圖的起始位置要得當(dāng)

    人們的閱讀習(xí)慣往往是從12點(diǎn)鐘開始的(跟表盤類似)。所以我們?cè)谥谱黠瀳D時(shí)也要遵循觀眾的閱讀習(xí)慣,從12點(diǎn)鐘方向開始制作,這樣才能呈現(xiàn)出更加清晰的數(shù)據(jù)。

    58.png



    3. 餅圖的順序要得當(dāng)

    這個(gè)規(guī)則與其他的數(shù)據(jù)圖表一致,我們?cè)谀玫綌?shù)據(jù)后,不要急于去進(jìn)行數(shù)據(jù)可視化,而是應(yīng)該對(duì)數(shù)據(jù)進(jìn)行排序處理,一般來講,我們對(duì)于圖表都要進(jìn)行從大到小的數(shù)據(jù)排序,才更有利于我們展示數(shù)據(jù),但是有一個(gè)例外的情況。

    當(dāng)數(shù)據(jù)中包含一個(gè)類別叫「其他」時(shí),無論其他的內(nèi)容占比為多少,我們最好都把他放置在餅圖的最后來展示。


    59.png


    4. 切割的展示方式

    有時(shí),我們可以想一些創(chuàng)意形式來解決餅圖對(duì)比不夠明顯的問題。

    60.png


    當(dāng)我們將餅圖分拆開來設(shè)計(jì)時(shí),將他們?cè)O(shè)置為同一起點(diǎn),我們可以清晰的對(duì)比出數(shù)據(jù)的大小,但嚴(yán)格意義上來講這已經(jīng)不算是餅圖了。

    散點(diǎn)圖的制作范圍

    1. 散點(diǎn)圖可以承載最多四個(gè)維度的變量

    當(dāng)包含多重變量時(shí),散點(diǎn)圖本身包含2個(gè)維度的數(shù)據(jù),當(dāng)出現(xiàn)更多維度時(shí),我們可以通過改變散點(diǎn)的顏色和大小甚至是形狀來對(duì)數(shù)據(jù)進(jìn)行更多維度的劃分,這個(gè)時(shí)候,散點(diǎn)圖即變成了氣泡圖。

    61.png



    2. 盡量為散點(diǎn)圖添加趨勢(shì)線

    通過添加趨勢(shì)線,可以更好的讓觀眾感受數(shù)據(jù)的變化,人們不會(huì)愿意接受未處理的數(shù)據(jù),往往傾向于接受已經(jīng)被處理好的數(shù)據(jù)結(jié)果。

    62.png



    面積圖的制作規(guī)范

    面積圖又叫區(qū)域圖,與折線圖很相近,都可以用來展示隨著連續(xù)時(shí)間的推移數(shù)據(jù)的變化趨勢(shì)。區(qū)別在于,面積圖在折線與類別數(shù)據(jù)的水平軸(X軸)之間填充顏色或者紋理,形成一個(gè)面表示數(shù)據(jù)體積。相對(duì)于折線而言,被填充的區(qū)域可以更好的引起人們對(duì)總值趨勢(shì)的注意,所以面積圖主要用于傳達(dá)趨勢(shì)的大小,而不是確切的單個(gè)數(shù)據(jù)值。面積圖有三種不同的形態(tài),根據(jù)數(shù)據(jù)以及背景的不同,均有其最佳的展示環(huán)境。

    1. 盡量不重疊,使用透明色

    當(dāng)圖表中要展示多組數(shù)據(jù)時(shí),最好保證所有的數(shù)據(jù)都不重疊,這樣才可以更好的展示數(shù)據(jù)。如果無法避免重疊,則應(yīng)該適當(dāng)?shù)脑O(shè)置顏色和透明度,使得重疊的區(qū)域變得更加易讀。

    63.png



    2. 不要超過四個(gè)類別

    面積圖只適合展現(xiàn)少量的數(shù)據(jù),最多建議不要超過四個(gè)類別,否則就會(huì)導(dǎo)致非常難以識(shí)別。因此在多個(gè)類別下,要盡量避免使用面積圖。

    64.png



    突出信息

    1. 重要的內(nèi)容用顏色區(qū)分

    有時(shí)我們?yōu)榱送怀稣宫F(xiàn)某部分?jǐn)?shù)據(jù),需要對(duì)它們進(jìn)行特殊的處理(包括添加輔助線,更改顏色,線條粗細(xì)等方法)來加大它們與其他數(shù)據(jù)的對(duì)比,以吸引用戶注意,并表明你想陳述的觀點(diǎn)。


    65.png




    如上左圖,通過添加輔助線和標(biāo)紅的方式,來顯示快遞公司未達(dá)到60萬件派件標(biāo)準(zhǔn)的月份,從而突出顯示公司業(yè)績(jī)不合格部分。如上右圖,通過對(duì)9月份的顏色區(qū)分,來突出顯示二手房?jī)r(jià)格在9月份達(dá)到前所未有的高度。

    2. 把不重要的內(nèi)容變?yōu)榛疑?/b>

    對(duì)于不太重要的內(nèi)容,我們通常會(huì)把它們的層級(jí)降低,將其變?yōu)榛疑且粋€(gè)好方法。(如上左圖中1-6月與9月數(shù)據(jù)的配色,以及上右圖中1-8月數(shù)據(jù)的配色)

    通常來說,我們會(huì)用灰色來標(biāo)記:

    未被選中的元素或者背景。

    為重要的數(shù)據(jù)點(diǎn)做對(duì)比的數(shù)據(jù)。

    (在交互圖表中)不是當(dāng)前選中的元素。

    66.png


    3. 沒有那么多重點(diǎn)信息

    如果你覺得每個(gè)信息點(diǎn)都很重要,然后為他們都做了特殊的備注,那么請(qǐng)把他們都去掉,因?yàn)槟乔∏∽C明他們都不重要。

    數(shù)據(jù)可視化的精髓就在于你去用視覺元素去幫助用戶做篩選,如果觀眾們真的很想知道每個(gè)數(shù)據(jù)代表什么,那或許你應(yīng)該給他們展現(xiàn)一份表格而不是圖表。

    67.png

    4. 添加必要的輔助說明


    68.png



    關(guān)于這個(gè)圖表,如果我們不進(jìn)行標(biāo)注的話,它只能講述故事的一部分。如果要把故事講述的全面,那么就必須添加一些標(biāo)注。

    如果我告訴你,這個(gè)圖表想告訴我們,在第6天的時(shí)候該團(tuán)隊(duì)使用了敏捷開發(fā),在使用新技術(shù)初期,Bug數(shù)量明顯上升,而后瞬間下降。加上了標(biāo)注,圖表講述了一個(gè)跟之前完全不一樣的故事。

    所以,我們?yōu)榱烁玫恼f明我們的目的,有時(shí)需要對(duì)圖表進(jìn)行特殊處理,包括做一些突出某些信息的標(biāo)注。

    5. 添加必要的輔助線

    這一點(diǎn)主要針對(duì)于柱狀圖和折線圖,比如當(dāng)我們想要呈現(xiàn)兩個(gè)不同時(shí)期的數(shù)據(jù)變化時(shí),添加輔助線可以更直觀地體現(xiàn)出其中的變化。

    比如像這個(gè)圖表,為了體現(xiàn)出響應(yīng)速度有很大的提升,,添加了相關(guān)輔助線并標(biāo)注了相應(yīng)的數(shù)字,使 PRO5 和 SONY Z3+ 之間的對(duì)比更加明顯.

    69.png


    轉(zhuǎn)自:簡(jiǎn)書


    作者:極創(chuàng)設(shè)計(jì)

    鏈接:https://www.jianshu.com/p/a8996c452c2d

    來源:簡(jiǎn)書

    著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。



    藍(lán)藍(lán)設(shè)計(jì)www.lzhte.cn )是一家專注而深入的界面設(shè)計(jì)公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 、平面設(shè)計(jì)服務(wù)



    酷炫的 FUI 圖形設(shè)計(jì)

    前端達(dá)人

    作者通過以進(jìn)度條的設(shè)計(jì)深入淺出的講解關(guān)于FUI的設(shè)計(jì)思路。雖然FUI設(shè)計(jì)看起來很復(fù)雜,只要找準(zhǔn)規(guī)律,從一些作品中總結(jié)分析細(xì)節(jié),再運(yùn)用到我們的設(shè)計(jì)中。想要了解的小伙伴可以嘗試一下。

    前言

    看到上期小伙伴想了解一下 FUI 的設(shè)計(jì)教程,所以這次再次和大家聊一下關(guān)于 FUI 的設(shè)計(jì)風(fēng)格,我們以“進(jìn)度條”的設(shè)計(jì)教程為例,深入淺出的聊一下關(guān)于 FUI 的設(shè)計(jì)思路,因?yàn)橹饕O(shè)計(jì)思路的延展,所以不會(huì)出現(xiàn)具體的數(shù)據(jù)參數(shù),小伙伴們要諒解啊。

    目錄

    1.風(fēng)格介紹

    2.設(shè)計(jì)思路

    3.總結(jié)

    1.風(fēng)格介紹

    關(guān)于 FUI 的定義,閱讀過我上一篇文章的小伙伴可能對(duì) FUI 的定義有了一個(gè)較為清晰的定義,即 FUI 是:虛構(gòu)的、未來的、幻想的用戶界面。

    1.png



    我們仔細(xì)閱讀關(guān)鍵詞:“虛構(gòu)的、未來的、幻想的?!睆膶?duì) FUI 關(guān)鍵詞上我們進(jìn)行粗略的分析可以得出這么一條簡(jiǎn)單的結(jié)論:FUI 的設(shè)計(jì)不依據(jù)現(xiàn)實(shí)為基礎(chǔ)的界面設(shè)計(jì),為設(shè)計(jì)師留有巨大的想象空間。所以朋友們,請(qǐng)把腦洞開大一點(diǎn)吧,不受到當(dāng)前的技術(shù)和硬件載體的制約,F(xiàn)UI 本身就是一種創(chuàng)新發(fā)明。

    2.png




    接下來我會(huì)向大家簡(jiǎn)單介紹一下 FUI 主要的兩大設(shè)計(jì)風(fēng)格:軍事風(fēng)格和機(jī)甲風(fēng)格(也可以叫做機(jī)械風(fēng)格)。 


    1.軍事風(fēng)格

    軍事風(fēng)格的特點(diǎn)在于:“直接明了”。因?yàn)樵跉埧岬膽?zhàn)爭(zhēng)中時(shí)間就是生命,士兵必須保證“快速、準(zhǔn)確、直接”才能保證戰(zhàn)斗的勝利,所以會(huì)盡量避免與操作業(yè)務(wù)無關(guān)的。你也可以理解為當(dāng)下最前沿的的設(shè)計(jì)理念“l(fā)ess is more?!崩缦聢D,在界面設(shè)計(jì)中幾乎都是利用簡(jiǎn)單的幾何設(shè)計(jì)語言完成。

    3.png




    軍事風(fēng)格成為 FUI 的主流設(shè)計(jì)形式有著必然的原因。首先簡(jiǎn)單的從我們熟知的影視作品中來講,在諸多科幻動(dòng)作為主的故事題材的影視作品中,正義的一方都有軍隊(duì)的支持,其中不可避免的會(huì)出現(xiàn)的許多設(shè)備的界面;再則隨著科技的發(fā)展,許多高科技都會(huì)用運(yùn)用到軍事設(shè)備的研發(fā)上,精密的結(jié)構(gòu)線和反復(fù)數(shù)據(jù)讓我們覺得其中的科技含量很高。


    4.png




    2.機(jī)甲風(fēng)格

    機(jī)甲風(fēng)格相對(duì)于軍事風(fēng)格的最大特點(diǎn)就是:“具有一定的裝飾圖形元素,或多或少?!睓C(jī)甲風(fēng)格最大的特點(diǎn)便是具有機(jī)械或者機(jī)甲風(fēng)格的裝飾元素,其中多為異形元素。其靈感來源于工業(yè)設(shè)計(jì),從機(jī)械和機(jī)甲的工業(yè)設(shè)計(jì)語言中提取圖形元素,在運(yùn)用到界面設(shè)計(jì)上。如下圖,異形的機(jī)甲風(fēng)格讓機(jī)器人的頭部設(shè)計(jì)顯得更加統(tǒng)一,如果換成當(dāng)前流行的扁平化設(shè)計(jì),可能就顯得有點(diǎn)奇怪了。

    5.png

    機(jī)甲風(fēng)格的發(fā)展歸功于科幻題材故事的發(fā)展,為人們打開腦洞,暢想更多的可能性。在設(shè)計(jì)上激發(fā)了 FUI 的誕生,無論是賽博朋克、廢土題材、還是漫威、DC宇宙中的科幻影視作品中我們都能看到機(jī)甲風(fēng)格的界面設(shè)計(jì)。

    6.png



    2.設(shè)計(jì)思路

    設(shè)計(jì)樣式 – 軍事風(fēng)格

    我們從以上的設(shè)計(jì)風(fēng)格中抓去我們需要的關(guān)鍵詞進(jìn)行示例設(shè)計(jì),首先我們看軍事風(fēng)格的關(guān)鍵詞是“直接明了、快速、準(zhǔn)確、直接,”我們轉(zhuǎn)換成我們平時(shí)的設(shè)計(jì)語言就是:“極簡(jiǎn)風(fēng)格,”這樣是不是更好理解了。例如圖例中,頁面整體十分統(tǒng)計(jì),利用簡(jiǎn)潔幾何語言進(jìn)行設(shè)計(jì)。

    7.png




    接下來我們做一個(gè)簡(jiǎn)單的軍事風(fēng)格的進(jìn)度條:第一步,找參考?。。∵@一步很重要,很多同學(xué)都很容易就忽視這一點(diǎn),一心一意的閉門造車,絕不借鑒學(xué)習(xí)其它優(yōu)秀作品。這里向大家推薦 HUDS + GUIS 設(shè)計(jì)公司,這里有我們?cè)S多我們耳熟能詳?shù)挠耙曌髌分械?nbsp;FUI 設(shè)計(jì)。

    第二步,臨摹,臨摹可以說是學(xué)習(xí)他人技巧的最快方式,從中我們可以學(xué)習(xí)到許多設(shè)計(jì)中的細(xì)節(jié),日后我們可以運(yùn)用到自己的設(shè)計(jì)當(dāng)中。我借鑒臨摹了下面的進(jìn)度條樣式。


    8.png



    第三部,修改細(xì)節(jié),舉一反三。臨摹就一定是是抄襲么?當(dāng)然不是!創(chuàng)意設(shè)計(jì),是把再簡(jiǎn)單不過的東西或想法不斷延伸給予的另一種表現(xiàn)方式(百度百科),所以我們可以通過對(duì)設(shè)計(jì)組件內(nèi)部進(jìn)行重新組合或者修改其中的細(xì)節(jié)參數(shù)來達(dá)到自己在設(shè)計(jì)的目的。通過總結(jié)分析,我選用了最簡(jiǎn)單直白的結(jié)合圖形作為設(shè)計(jì)元素進(jìn)行設(shè)計(jì),如下圖:

    9.png


    我們可以放入界面當(dāng)中感受一下視覺效果:

    10.png



    設(shè)計(jì)樣式 – 機(jī)甲風(fēng)格

    我們?cè)賮磉M(jìn)階一下,設(shè)計(jì)一個(gè)機(jī)甲元素的的進(jìn)度條。

    機(jī)甲風(fēng)格看似裝飾圖形復(fù)雜,設(shè)計(jì)難度復(fù)雜,但其實(shí)我們只需要掌握好 – “提煉元素”這項(xiàng)技能就能完美應(yīng)對(duì)機(jī)甲風(fēng)格的設(shè)計(jì)。

    我們?cè)倩仡檶?duì)創(chuàng)意設(shè)計(jì)的定義:是把再簡(jiǎn)單不過的東西或想法不斷延伸給予的另一種表現(xiàn)方式。這里我們可以理解為將機(jī)甲元素進(jìn)行提煉總結(jié),延伸到彈框設(shè)計(jì)當(dāng)中。例如下圖,漂亮的小姐姐一秒鐘變機(jī)械美女,就是通過對(duì)機(jī)械元素延展到模特身上。

    11.png12.png13.png

    第一步,照一張你喜歡的不錯(cuò)的參考,這里你可以找成熟的界面設(shè)計(jì)作品,也可以找一張不錯(cuò)的關(guān)于機(jī)甲風(fēng)格的參考,以便于自己進(jìn)行元素提取。這里我們以大家熟悉的高達(dá)為例:

    14.png



    第二部就是元素組合,我們需要提取了我們可能需要的元素,就像我們?cè)O(shè)計(jì)時(shí)面對(duì)自己手機(jī)素材一樣,這個(gè)時(shí)候我們不要急于立馬去設(shè)計(jì),要仔細(xì)思考其設(shè)計(jì)形式,元素的位置安排。我們還是以以高達(dá)為例,途中我圈出了我可能用到的圖形元素。


    15.png



    我們從中提取我們需要的圖形,如下圖:


    16.png

    最后我們我們需要仔細(xì)思考將圖形進(jìn)行組合,多嘗試幾次他們的組合方式。這里我對(duì)提取的元素進(jìn)行了二次加工,將圖形一和圖形四進(jìn)行了結(jié)合,打破固有的組合規(guī)律,讓圖形看起來更加生動(dòng)。

    17.png

    最后我們可以放入界面當(dāng)中感受一下視覺效果:

    18.png



    3.總結(jié)

    FUI 的設(shè)計(jì)看起來復(fù)雜,難以下手,但其實(shí)也是有規(guī)律可循,我們可以從作品中理性的去分析其中的設(shè)計(jì)細(xì)節(jié),提煉總結(jié),最終再落實(shí)到實(shí)際的設(shè)計(jì)作品當(dāng)中。當(dāng)然最好你能先了解一下它的設(shè)計(jì)理念以及發(fā)展,就像 FUI 是“虛構(gòu)的、未來的、幻想的界面設(shè)計(jì)”一樣。

    ---來自姜正


    轉(zhuǎn)載自簡(jiǎn)書

    作者:極創(chuàng)設(shè)計(jì)

    鏈接:https://www.jianshu.com/p/77665c771153

    來源:簡(jiǎn)書

    著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。



    藍(lán)藍(lán)設(shè)計(jì)www.lzhte.cn )是一家專注而深入的界面設(shè)計(jì)公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)、BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 、平面設(shè)計(jì)服務(wù)


    css教程:可讀性可維護(hù)性良好的CSS文件

    seo達(dá)人

    大多數(shù)文章中,我們并未特別注意CSS文件的可維護(hù)與可讀性的問題,當(dāng)完成一項(xiàng)前端的工作之后,許多人都會(huì)忘記該項(xiàng)目的結(jié)構(gòu)與細(xì)節(jié)。然而代碼并不是馬上就能完全定型,在余下的時(shí)間里還有不斷的維護(hù)工作,而這些工作也許不會(huì)是你自己完成。所以,結(jié)構(gòu)優(yōu)良的代碼能很大程度上優(yōu)化它的可維護(hù)性。下面列出四則技巧提高CSS文件可維護(hù)性的方法,以此作為指南,以一種較好的CSS樣式組織習(xí)慣來進(jìn)行WEB前端開發(fā)。



    一、CSS樣式文件分解



    對(duì)于小項(xiàng)目,在寫代碼之前,按頁面結(jié)構(gòu)或頁面內(nèi)容將代碼分為幾塊并給予注釋。例如,可以分別將 全局樣式、布局、字體樣式、表單、評(píng)論和其他分為幾個(gè)不同的塊來繼續(xù)工作。



    而對(duì)于較大的工程,這樣顯然不會(huì)有什么效果。此時(shí),就需要將樣式分解到幾個(gè)不同的樣式表文件。下面的master stylesheet 就是這一方法的例子,它的工作主要是導(dǎo)入其他樣式文件。使用這一方法不僅能優(yōu)化樣式結(jié)構(gòu),而且有利于減少一些不必要的服務(wù)器請(qǐng)求。而分解文件的方法就有許多種,master stylesheet 使用了最常見的一種。



    @import "reset.css";

    @import "layout.css";

    @import "colors.css";

    @import "typography.css";

    @import "flash.css";

    / @import "debugging.css"; /



    同時(shí)對(duì)于大型項(xiàng)目,你也可以加上CSS文件的升級(jí)標(biāo)志或者一些診斷等其他措施,這里不再詳述。大家注意在實(shí)現(xiàn)工作中總結(jié)與思考,也歡迎多參考webjx.com的相關(guān)文章。



    二、為CSS文件建立索引



    為了能夠迅速的了解整個(gè)CSS文件的結(jié)構(gòu),在文件開頭建立文件索引是一個(gè)不錯(cuò)的選擇。

    一種可行的方法是建立樹形的索引,結(jié)構(gòu)上的id 和 class 都可以成為該樹的一個(gè)分支。



    [Layout]

    • body

            + Header / #header

            + Content / #content

                  - Left column / #leftcolumn

                  - Right column / #rightcolumn

                  - Sidebar / #sidebar

                  - RSS / #rss

                  - Search / #search

                  - Boxes / .box

                  - Sideblog / #sideblog

            + Footer / #footer

      Navigation         #navbar

      Advertisements         .ads

      Content header         h2



      或者也可以這樣:



      [Contents]

            1. Body

            2. Header / #header

                  2.1. Navigation / #navbar

            3. Content / #content

                  3.1. Left column / #leftcolumn

                  3.2. Right column / #rightcolumn

                  3.3. Sidebar / #sidebar

                        3.3.1. RSS / #rss

                        3.3.2. Search / #search

                        3.3.3. Boxes / .box

                        3.3.4. Sideblog / #sideblog

                        3.3.5. Advertisements / .ads

            4. Footer / #footer



      新建一個(gè)前端學(xué)習(xí)qun438905713,在群里大多數(shù)都是零基礎(chǔ)學(xué)習(xí)者,大家相互幫助,相互解答,并且還準(zhǔn)備很多學(xué)習(xí)資料,歡迎零基礎(chǔ)的小伙伴來一起交流。



      另一種方式可以只是先簡(jiǎn)單的將內(nèi)容列舉出來,也不需要縮進(jìn)。下面的一個(gè)例子中,如果你需要跳至RSS部分你只需要簡(jiǎn)單的搜索。



      [Contents]
      1. Body
      2. Header / #header
      3. Navigation / #navbar
      4. Content / #content
      5. Left column / #leftcolumn
      6. Right column / #rightcolumn
      7. Sidebar / #sidebar
      8. RSS / #rss
      9. Search / #search
      10. Boxes / .box
      11. Sideblog / #sideblog
      12. Advertisements / .ads
      13. Footer / #footer

        /--[8. RSS / #rss]--/

        rss { ... }

        rss img { ... }



        定義這樣一個(gè)樣式檢索可以很有效的使其他人閱讀學(xué)習(xí)你的代碼變得容易。在制作大項(xiàng)目的時(shí)候,你也可以將檢索打印出來從而在你閱讀代碼的時(shí)候方便查閱。您還可以參考下面的文章。



        三、格式化CSS屬性



        當(dāng)我們編寫代碼的時(shí)候,使用一些特殊的編碼風(fēng)格會(huì)對(duì)提高CSS代碼的可讀性有很大幫助。許多人都有各自不同的編碼風(fēng)格。一部分人習(xí)慣于將顏色和字體的代碼放在前面,另外一部分則更喜歡將類似浮動(dòng)和定位的更“重要”的屬性放在前面。類似的,也可以將頁面元素按照它在布局中的結(jié)構(gòu)進(jìn)行排序:



            body,

                  h1, h2, h3,

                  p, ul, li,

                  form {

                          margin: 0;

                          padding: 0;

                          border: 0;

                   }



        一些開發(fā)者用一種更為有意思的方法:他們將屬性按首字母的順序排列。值得注意的是,這樣一種方法可能對(duì)某些瀏覽器會(huì)產(chǎn)生問題。不管自己的格式如何,你要確保你已經(jīng)清晰的定義了這些格式方法。這樣,你的同事在閱讀你的代碼的時(shí)候?qū)?huì)感謝你的努力。您還可以參考下面的文章。



        四、合理的利用縮進(jìn)



        為了讓你的代碼給人感覺更為直觀,你可以使用一行來定義大綱元素的樣式。當(dāng)指定的選擇器里的屬性超過三個(gè)的時(shí)候,這種方式將帶來混亂。但是,適度的使用這種方式,你可以很清楚的區(qū)分相同類的不同點(diǎn)。


        main-column { display: inline; float: left; width: 300px; }

            #main-column h1 { margin-bottom: 20px; }

            #main-column p { color: #333; }



        同時(shí),樣式修改的維護(hù)也是個(gè)比較麻煩的問題。很多人修改樣式之后就忘記了,結(jié)果后來又發(fā)現(xiàn)修改的樣式導(dǎo)致了頁面出錯(cuò),不得不苦苦尋找。因此,為修改的樣式構(gòu)建一個(gè)特殊的格式就很必要了。一種很簡(jiǎn)單的方式是,給修改過的樣式縮進(jìn),同時(shí),也可以使用一些注釋(比如"@new")來做一個(gè)標(biāo)識(shí)。


        sidebar ul li a {

               display: block;

               background-color: #ccc;

                    border-bottom: 1px solid #999; / @new /

               margin: 3px 0 3px 0;

                    padding: 3px; / @new /

        }



        總的來說,只有建立一個(gè)合適的樣式指南才會(huì)對(duì)樣式表的可讀性有所幫助。記住,移去每一個(gè)對(duì)你理解文件沒有幫助的樣式指南,避免對(duì)過多的元素使用過多的樣式指南。然后,為了一個(gè)可讀性可維護(hù)性良好的CSS文件而努力吧。不要忘記和webjx.com分享您的經(jīng)驗(yàn),歡迎參與評(píng)論


    CSS初學(xué):如何修改Zblog中的CSS

    seo達(dá)人

    在學(xué)習(xí)應(yīng)用css之前我們要先了解一下什么是css。CSS是Cascading Style Sheets(層疊樣式表)的簡(jiǎn)稱.


    • CSS語言是一種標(biāo)記語言,它不需要編譯,可以直接由瀏覽器執(zhí)行(屬于瀏覽器解釋型語言).


    • 在標(biāo)準(zhǔn)網(wǎng)頁設(shè)計(jì)中CSS負(fù)責(zé)網(wǎng)頁內(nèi)容(XHTML)的表現(xiàn).


    • CSS文件也可以說是一個(gè)文本文件,它包含了一些CSS標(biāo)記,CSS文件必須使用css為文件名后綴.


    • 可以通過簡(jiǎn)單的更改CSS文件,改變網(wǎng)頁的整體表現(xiàn)形式,可以減少我們的工作量,所以她是每一個(gè)網(wǎng)頁設(shè)計(jì)人員的必修課.


    • CSS是由W3C的CSS工作組產(chǎn)生和維護(hù)的.



      新建一個(gè)前端學(xué)習(xí)qun438905713,在群里大多數(shù)都是零基礎(chǔ)學(xué)習(xí)者,大家相互幫助,相互解答,并且還準(zhǔn)備很多學(xué)習(xí)資料,歡迎零基礎(chǔ)的小伙伴來一起交流。



      了解了什么是css后我們就可以方便對(duì)其應(yīng)用了,我們可以用以下兩種方式加入你的博客當(dāng)中去,由于css的應(yīng)用方式有就近原則。也就是說最接近目標(biāo)的樣式定義優(yōu)先權(quán)越高。高優(yōu)先權(quán)樣式將繼承低優(yōu)先權(quán)樣式的未重疊定義但覆蓋重疊的定義。



      鏈入外部樣式表文件 (Linking to a Style Sheet)



      你可以先建立外部樣式表文件(.css),然后使用HTML的link對(duì)象。示例如下:



      <head>

      <title>文檔標(biāo)題</title>

      <link rel=stylesheet href="http://www.123-seo,cn/dhtmlet.css" type="text/css">

      </head>



      而在XML中,你應(yīng)該如下例所示在聲明區(qū)中加入:



      <? xml-stylesheet type="text/css" href="http://www.123-seo.cn/dhtmlet.css" ?>



      定義內(nèi)部樣式塊對(duì)象 (Embedding a Style Block)



      你可以在你的HTML文檔的<HTML>和<BODY>標(biāo)記之間插入一個(gè)<STYLE>...</STYLE>塊對(duì)象。 定義方式請(qǐng)參閱樣式表語法。示例如下:



      <html>

      <head>

      <title>文檔標(biāo)題</title>

      <style type="text/css">

      <!--

      body {font: 10pt "Arial"}

      h1 {font: 15pt/17pt "Arial"; font-weight: bold; color: maroon}

      h2 {font: 13pt/15pt "Arial"; font-weight: bold; color: blue}

      p {font: 10pt/12pt "Arial"; color: black}

      -->

      </style>

      </head>

      <body>



      請(qǐng)注意,這里將style對(duì)象的type屬性設(shè)置為"text/css",是允許不支持這類型的瀏覽器忽略樣式表單。


    css對(duì)邊框的屬性控制和鏈接的偽類選擇器

    seo達(dá)人

    邊框(border): css控制的邊框?qū)傩园╞order-width, border-color, border-style.



    Border之所以讓人很困惑主要源于IE5錯(cuò)綜復(fù)雜的BUG, 由于IE5是一個(gè)“will soon be dead” 的瀏覽器, 這里只例舉一個(gè)最為知名的關(guān)于border-width的BUG, 讓大家更好的理解border的含義, 先看下圖:







    如上圖所示, 對(duì)象A(白色矩形)周圍有藍(lán)色邊框B, 可以看出A的實(shí)際寬度為ef, 而IE5不這么認(rèn)為, 它把cd的長度定義為對(duì)象A的寬度, 這個(gè)bug在邊框的寬度小時(shí)幾乎察覺不到, 但在邊框與對(duì)象寬度相差不大時(shí)顯得尤為明顯.



    新建一個(gè)前端學(xué)習(xí)qun438905713,在群里大多數(shù)都是零基礎(chǔ)學(xué)習(xí)者,大家相互幫助,相互解答,并且還準(zhǔn)備很多學(xué)習(xí)資料,歡迎零基礎(chǔ)的小伙伴來一起交流。



    現(xiàn)在, 結(jié)合以上說明, 可以看出border是獨(dú)立于對(duì)象之外, 位于magin與padding之間(后說明), 具有固定寬度, 顏色和樣式的區(qū)域.


    1. border-width: 其可有具體數(shù)值(如1px, 2px等)或是描述性(thin, medium, thick)的屬性值. 由于瀏覽器及個(gè)人設(shè)置的不同導(dǎo)致thin, medium, thick這些屬性值的表現(xiàn)不一, 不推薦使用. css代碼如下:



      border-width: 1px;

      border-width: 2px;

      border-width: thin;

      border-width: medium;

      border-width: thick;



      寬度效果如下(注意不同瀏覽器下的區(qū)別):



       1px    2px    thin    medium    thick 


    2. border-style: 邊框樣式包括solid, dashed, dotted, double, groove, ridge, inset, outset等, 代碼如下:



      border-style: solid;

      border-style: dashed;

      border-style: dotted;

      border-style: double;

      border-style: groove;

      border-style: ridge;

      border-style: inset;

      border-style: outset;



      樣式效果如下(你可能需要Firefox或是Opera才能看到后四種效果):



       solid   



       dashed   



       dotted   



       double   



       groove   



       ridge   



       inset   



       outset   


    3. border-color: 邊框顏色屬性和一般顏色屬性是一樣的, 可以參看屬性篇(1).



      Summary: 以上例舉的都是四邊相同樣式的情況, 其實(shí)可以分別設(shè)置border-top, border-right, border-bottom, border-left四邊的屬性, 比方說想要表現(xiàn)一個(gè)寬2px, 藍(lán)色(blue), 樣式為solid的上下邊框, 代碼如下:



      border-top-width: 2px;

      border-top-color: blue;

      border-top-style: solid;

      border-bottom-width: 2px;

      border-bottom-color: blue;

      border-bottom-style: solid;



      簡(jiǎn)寫為:



      border-top: blue 2px solid;

      border-bottom: blue 2px solid;



      表現(xiàn)如下:



       寬2px,藍(lán)色,樣式為solid的邊框 



      鏈接(link): 在html里用<a></a>標(biāo)明鏈接, 在css里用a作為鏈接的選擇器名.



      css的缺點(diǎn)和它的優(yōu)點(diǎn)一樣明顯, 其最大的缺陷就在于網(wǎng)頁的動(dòng)態(tài)表現(xiàn)不足, 在這一點(diǎn)上和Flash差距尤為突出.



      好在css還是留了一手, 那就是鏈接的偽類選擇器, 所謂偽類就是指依賴于瀏覽器或是用戶的狀態(tài). 對(duì)于鏈接來講, 存在link, hover, visited, active四種狀態(tài), 即四種偽類選擇器: a:link(存在鏈接, 但無鼠標(biāo)動(dòng)作), a:visited(被點(diǎn)擊或訪問過), a:hover(鼠標(biāo)懸停于鏈接上時(shí)的狀態(tài)), a:active(鼠標(biāo)點(diǎn)擊與釋放之間的狀態(tài)).



      css便是以這幾個(gè)偽類選擇器實(shí)現(xiàn)了其為數(shù)不多的動(dòng)態(tài)效果. 目前最為常用的就是導(dǎo)航條和按鈕的動(dòng)態(tài)顯示. 以下用一個(gè)動(dòng)態(tài)按鈕的實(shí)例來說明這四個(gè)偽類選擇器.


    4. 首先準(zhǔn)備一副圖片(button.png), 如下圖(160px240px), 其由四幅160px60px的小圖自上而下排列而成.



       






    5. 接著需要往你的本地調(diào)試文件夾(調(diào)試環(huán)境的建立方法參考屬性(1)中的說明)的index.htm中寫入html代碼, 如下:



      <div id=”button”><a href=”#”></a></div>


    6. 在style.css中寫入以下代碼:



      body {background-color: #FFF;}

      button a{

      width:160px;

      height:60px;

      display:block;

      background:url(../image/button.png) no-repeat 0 0;


      button a:link { background-position:0 0;}

      button a:hover { background-position:0 -60px;} 

      button a:active { background-position:0 -120px;}

      button a:visited { background-position:0 -180px;}



      可以看到如 Example2 的效果.


    7. 代碼解釋:



      <div id=”button”><a href=”#”></a></div>



      在index.htm寫入如上代碼, 目的在于插入一個(gè)id名為”button”的盒子(div),且其內(nèi)含有一個(gè)鏈接<a href=”#”></a>.


      button a{

      width:160px;

      height:60px;

      display:block;

      background:url(../image/button.png) no-repeat 0 0;

      }



      在css文件中寫入以上代碼, 目的在于控制盒子中鏈接的表現(xiàn), 通過名為”#button a”的選擇器來實(shí)現(xiàn). 鏈接的寬高為160px*60px, 背景為圖片button.png.



      在這強(qiáng)調(diào)一下display:block的作用. 由于在html文件中,鏈接<a href=”#”> </a>中沒有任何的內(nèi)容(content)填充, 如果沒有聲明”display:block”, 那么即使聲明了選擇器”#button a”的寬高, 瀏覽器也會(huì)因?yàn)閔tml文件中沒有內(nèi)容而無法顯示鏈接. 所以”display:block”在這里的作用就在于強(qiáng)制瀏覽器顯示沒有內(nèi)容填充的鏈接. 


      button a:link { background-position:0 0;}



      用偽類選擇器a:link聲明鏈接的背景圖片在左上角顯示, 即距離左邊和頂邊分別0, 0. 但由于已經(jīng)在選擇器 “#button a”中聲明了圖片位置, 此代碼可有可無.


      button a:hover { background-position:0 -60px;} 

      button a:active { background-position:0 -120px;}

      button a:visited { background-position:0 -180px;}



      用偽類選擇器a:hover聲明鼠標(biāo)懸停時(shí), 背景圖片上移60px, 而使排在第二位的綠色小圖片顯示出來;



      用偽類選擇器a:active聲明在鼠標(biāo)點(diǎn)擊與釋放之間的狀態(tài)時(shí), 背景圖片上移120px, 而使排在第三位的紅色小圖片顯示;



      用偽類選擇器a:visited聲明在鏈接被點(diǎn)擊或訪問過時(shí), 背景圖片上移180px, 而使排在第四位的灰色小圖片顯示;



      現(xiàn)在你基本了解了css動(dòng)態(tài)按鈕的制作過程, 但以上css代碼還存在一個(gè)嚴(yán)重的缺陷, 相信你會(huì)很快發(fā)現(xiàn)問題所在——這個(gè)按鈕居然是一個(gè)”一次性按鈕“, 也就是說這個(gè)按鈕在點(diǎn)擊第一次后, 就一直顯示那個(gè)灰色小圖片, 你能想出解決方法嗎?


    JavaScript中的this/call/apply/bind

    seo達(dá)人

    文章目錄

    一、this

    1.什么是this

    2.this 代表什么

    3.綁定 this 的方法

    4.this的指向

    5.改變指向

    二、Function.prototype.bind()

    三、call/apply

    1.定義

    2.語法

    3.異同

    一、this

    1.什么是this

    this 關(guān)鍵字在大部分語言中都是一個(gè)重要的存在,JS中自然不例外,其表達(dá)的意義豐富多樣甚至有些復(fù)雜,深刻理解this是學(xué)習(xí)JS、面向?qū)ο缶幊谭浅V匾囊画h(huán)。



    2.this 代表什么

    this代表函數(shù)(方法)執(zhí)行的上下文環(huán)境(上下文,類似與你要了解一篇文章,了解文章的上下文你才能清晰的了解各種關(guān)系)。



    但在 JavaScript 中 this 不是固定不變的,它會(huì)隨著執(zhí)行環(huán)境的改變而改變。



    1.在方法中,this 表示該方法所屬的對(duì)象。



    2.如果單獨(dú)使用,this 表示全局對(duì)象。



    3.在函數(shù)中,this 表示全局對(duì)象。



    4.在函數(shù)中,在嚴(yán)格模式下,this 是未定義的(undefined)。



    5.在事件中,this 表示接收事件的元素。



    6.類似 call() 和 apply() 方法可以將 this 引用到任何對(duì)象。



    3.綁定 this 的方法

    this的動(dòng)態(tài)切換,固然為 JavaScript 創(chuàng)造了巨大的靈活性,但也使得編程變得困難和模糊。有時(shí),需要把this固定下來,避免出現(xiàn)意想不到的情況。JavaScript 提供了call、apply、bind這三個(gè)方法,來切換/固定this的指向。



    4.this的指向

    1.在一般函數(shù)方法中使用 this 指代全局對(duì)象



    function test(){

    this.x = 1;  //這里this就是window

    console.log(this.x);

    }

    test(); // 1



    JS規(guī)定,函數(shù)中的this,在函數(shù)被調(diào)用時(shí)確定,它指函數(shù)當(dāng)前運(yùn)行的環(huán)境。



    2.作為對(duì)象方法調(diào)用,this 指代上級(jí)對(duì)象



    var x =3;

    function test(){

    alert(this.x);

    }

    var o = {

      x:1,

      m:test 

    };

    o.m(); // 1



    如果函數(shù)作為對(duì)象的方法時(shí),方法中的 this 指向該對(duì)象。



    3.作為構(gòu)造函數(shù)調(diào)用,this 指代new 出的對(duì)象



    function test(){

    console.log(this);

    }

    var o = new test();

           test();

    //可以看出o代表的不是全局對(duì)象



    new關(guān)鍵詞的作用是調(diào)用某個(gè)函數(shù)并拿到其中的返回值,只是調(diào)用過程稍特殊。在上面的代碼實(shí)例中。test函數(shù)被new關(guān)鍵詞調(diào)用時(shí),內(nèi)部依次執(zhí)行了以下步驟:



    (1)創(chuàng)建一個(gè)空對(duì)象。



    (2)將這個(gè)空對(duì)象的原型,指向這個(gè)構(gòu)造函數(shù)的prototype。



    (3)將空對(duì)象的值賦給函數(shù)內(nèi)部的this(this就是個(gè)空對(duì)象了)。



    (4)執(zhí)行函數(shù)體代碼,為this這個(gè)對(duì)象綁定鍵值對(duì)。



    (5)返回this,將其作為new關(guān)鍵詞調(diào)用oop函數(shù)的返回值。



    所以構(gòu)造函數(shù)中的this,依舊是在構(gòu)造函數(shù)被new關(guān)鍵詞調(diào)用時(shí)確定其指向,指向的是當(dāng)前被實(shí)例化的那個(gè)對(duì)象。



    4.箭頭函數(shù)中的this

    箭頭函數(shù)是ES6的新特性,最重要的特點(diǎn)是它會(huì)捕獲其所在上下文的this作為自己的this,或者說,箭頭函數(shù)本身并沒有this,它會(huì)沿用外部環(huán)境的this。也就是說,箭頭函數(shù)內(nèi)部與其外部的this是保持一致的。



    this.a=20

    var test={

        a:40,

        init:()=>{

            console.log(this.a)

            function go(){

                this.a=60

                console.log(this.a)

            }

            go.prototype.a=50

            return go

        }   

    }



    var p=test.init()

    p()

    new (test.init())()

    //輸出 20 60 60 60



    5.改變指向

    this的動(dòng)態(tài)切換,固然為 JavaScript 創(chuàng)造了巨大的靈活性,但也使得編程變得困難和模糊。有時(shí),需要把this固定下來,避免出現(xiàn)意想不到的情況。JavaScript 提供了call、apply、bind這三個(gè)方法,來切換/固定this的指向。



    bind方法和apply、call稍有不同,bind方法返回一個(gè)新函數(shù),以后調(diào)用了才會(huì)執(zhí)行,但apply、call會(huì)立即執(zhí)行。



    二、Function.prototype.bind()

    bind()方法主要就是將函數(shù)綁定到某個(gè)對(duì)象,bind()會(huì)創(chuàng)建一個(gè)函數(shù),函數(shù)體內(nèi)的this對(duì)象的值會(huì)被綁定到傳入bind()中的第一個(gè)參數(shù)的值,例如:f.bind(obj),實(shí)際上可以理解為obj.f(),這時(shí)f函數(shù)體內(nèi)的this自然指向的是obj;



    示例:



    function f(y, z){

        return this.x + y + z;

    }

    var m = f.bind({x : 1}, 2);

    console.log(m(3));

    //6

    1

    2

    3

    4

    5

    6

    這里bind方法會(huì)把它的第一個(gè)實(shí)參綁定給f函數(shù)體內(nèi)的this,所以這里的this即指向{x : 1}對(duì)象,從第二個(gè)參數(shù)起,會(huì)依次傳遞給原始函數(shù),這里的第二個(gè)參數(shù)2,即是f函數(shù)的y參數(shù),最后調(diào)用m(3)的時(shí)候,這里的3便是最后一個(gè)參數(shù)z了,所以執(zhí)行結(jié)果為1 + 2 + 3 = 6分步處理參數(shù)的過程其實(shí)是一個(gè)典型的函數(shù)柯里化的過程(Curry)。



    三、call/apply

    1.定義

    每個(gè)函數(shù)都包含兩個(gè)非繼承而來的方法:call()方法和apply()方法。



    call和apply可以用來重新定義函數(shù)的執(zhí)行環(huán)境,也就是this的指向;call和apply都是為了改變某個(gè)函數(shù)運(yùn)行時(shí)的context,即上下文而存在的,換句話說,就是為了改變函數(shù)體內(nèi)部this的指向。



    2.語法

    call()



    調(diào)用一個(gè)對(duì)象的方法,用另一個(gè)對(duì)象替換當(dāng)前對(duì)象,可以繼承另外一個(gè)對(duì)象的屬性,它的語法是:



    Function.call(obj[, param1[, param2[, [,...paramN]]]]);

    1

    obj:這個(gè)對(duì)象將代替Function類里this對(duì)象

    params:一串參數(shù)列表



    說明:call方法可以用來代替另一個(gè)對(duì)象調(diào)用一個(gè)方法,call方法可以將一個(gè)函數(shù)的對(duì)象上下文從初始的上下文改變?yōu)閛bj指定的新對(duì)象,如果沒有提供obj參數(shù),那么Global對(duì)象被用于obj。



    apply()



    和call()方法一樣,只是參數(shù)列表不同,語法:



    Function.apply(obj[, argArray]);



    obj:這個(gè)對(duì)象將代替Function類里this對(duì)象

    argArray:這個(gè)是數(shù)組,它將作為參數(shù)傳給Function



    說明:如果argArray不是一個(gè)有效數(shù)組或不是arguments對(duì)象,那么將導(dǎo)致一個(gè)TypeError,如果沒有提供argArray和obj任何一個(gè)參數(shù),那么Global對(duì)象將用作obj。



    3.異同

    相同點(diǎn)



    call()和apply()方法的相同點(diǎn)就是這兩個(gè)方法的作用是一樣的。都是在特定的作用域中調(diào)用函數(shù),等于設(shè)置函數(shù)體內(nèi)this對(duì)象的值,以擴(kuò)充函數(shù)賴以運(yùn)行的作用域。



    一般來說,this總是指向調(diào)用某個(gè)方法的對(duì)象,但是使用call()和apply()方法時(shí),就會(huì)改變this的指向,看個(gè)例子:



    function add(a, b) {

        return a + b;

    }



    function sub(a, b) {

        return a - b;

    }



    console.log(add.call(sub, 2, 1));//3



    為什么add.call(sub, 2, 1)的執(zhí)行結(jié)果是3呢,因?yàn)閏all()方法改變了this的指向,使得sub可以調(diào)用add的方法,也就是用sub去執(zhí)行add中的內(nèi)容,再來看一個(gè)例子:



    function People(name, age) {

        this.name = name;

        this.age = age;

    }



    function Student(name, age, grade) {

        People.call(this, name, age);

        this.grade = grade;

    }



    var student = new Student('小明', 21, '大三');

    console.log(student.name + student.age + student.grade);//小明21大三



    在這個(gè)例子中,我們并沒有給Student的name和age賦值,但是存在這兩個(gè)屬性的值,這還是要?dú)w功于call()方法,它可以改變this的指向。

    在這個(gè)例子里,People.call(this, name, age);中的this代表的是Student,這也就是之前說的,使得Student可以調(diào)用People中的方法,因?yàn)镻eople中有this.name = name;等語句,這樣就將name和age屬性創(chuàng)建到了Student中。



    總結(jié)一句話就是call()可以讓括號(hào)里的對(duì)象來繼承括號(hào)外函數(shù)的屬性。



    至于apply()方法作用也和call()方法一樣,可以這么寫:



    People.apply(this, [name, age]);

    1

    或者這么寫:



    People.apply(this, arguments);

    1

    在這里arguments和[name, age]是等價(jià)的。



    不同點(diǎn)



    從定義中也可以看出來,call()和apply()的不同點(diǎn)就是接收參數(shù)的方式不同。



    1.apply()方法接收兩個(gè)參數(shù),一個(gè)是函數(shù)運(yùn)行的作用域(this),另一個(gè)是參數(shù)數(shù)組。

    2.call()方法不一定接受兩個(gè)參數(shù),第一個(gè)參數(shù)也是函數(shù)運(yùn)行的作用域(this),但是傳遞給函數(shù)的參數(shù)必須列舉出來。



    在給對(duì)象參數(shù)的情況下,如果參數(shù)的形式是數(shù)組的時(shí)候,比如之前apply()方法示例里面?zhèn)鬟f了參數(shù)arguments,這個(gè)參數(shù)是數(shù)組類型,并且在調(diào)用Person的時(shí)候參數(shù)的列表是對(duì)應(yīng)一致的(也就是Person和Student的參數(shù)列表前兩位是一致的)就可以采用apply()方法。



    但是如果Person的參數(shù)列表是這樣的(age,name),而Student的參數(shù)列表是(name,age,grade),這樣就可以用call()方法來實(shí)現(xiàn)了,也就是直接指定參數(shù)列表對(duì)應(yīng)值的位置Person.call(this,age,name)。


    Web前端學(xué)習(xí)—如何在網(wǎng)頁中插入字體圖標(biāo)詳細(xì)步驟

    seo達(dá)人

    一、什么是字體圖標(biāo)

    字體圖標(biāo):簡(jiǎn)單的說,就是一種特殊的字體,通過這種字體,顯示給用戶的就像一個(gè)個(gè)圖片一樣,但它的本質(zhì)是文字。目前在移動(dòng)端應(yīng)用比較廣泛!







    二、字體圖標(biāo)的使用步驟

    這里以阿里巴巴矢量圖標(biāo)庫為例?。。?br />


    sep1:

    百度搜索iconfont,找到阿里巴巴矢量圖標(biāo)庫官網(wǎng)



    網(wǎng)址在這里https://www.iconfont.cn/

    進(jìn)去之后注冊(cè)或登錄,共有3種登錄方式,在這里我使用新浪微博賬號(hào)登錄





    好了,登錄之后我們就可以在里面選擇自己想要的字體圖標(biāo)啦!??!那么,如何選擇下載并應(yīng)用到自己的項(xiàng)目中呢??別著急,跟著我走!



    sep2:下載字體圖標(biāo)字體庫

    在這里我們可以根據(jù)自己的需求輸入相應(yīng)的關(guān)鍵字進(jìn)行搜索(中英文都可以)



    鼠標(biāo)放上去,然后就可以把自己喜歡的寶貝加入購物車?yán)玻?br />


    網(wǎng)購的趕腳有木有,

    我知道,看到這里大家就該有疑問了,

    還要花錢買嗎?

    放心!

    答案是:不需要!



    我們選的東西都在購物車?yán)锢玻?br />


    打開購物車,就能看到你選的圖標(biāo)了!!

    接下來你要做的是把它們下載到本地。



    由于要在網(wǎng)頁中使用

    在這里我們選擇 下載代碼



    下載后將壓縮包解壓,為了方便后續(xù)使用我們改一下文件夾名稱,在這里我改為 icon (注意:在HTML中導(dǎo)入路徑時(shí),記得帶上你所改的文件夾名稱)



    打開之后你會(huì)發(fā)現(xiàn)里面有不同類型的文件(建議都不要?jiǎng)h除)



    打開后綴名為.html的這個(gè)文件(可以更直觀地查看自己下載的字體圖標(biāo))







    step3:在項(xiàng)目中引用字體圖標(biāo)

    不要走開,重點(diǎn)來了!??!

    官方提供了三種引用方法(下面對(duì)應(yīng)的都有步驟)





    Unicode 引用

    Unicode 是字體在網(wǎng)頁端最原始的應(yīng)用方式,特點(diǎn)是:

    兼容性最好,支持 IE6+,及所有現(xiàn)代瀏覽器。

    支持按字體的方式去動(dòng)態(tài)調(diào)整圖標(biāo)大小,顏色等等。

    但是因?yàn)槭亲煮w,所以不支持多色。只能使用平臺(tái)里單色的圖標(biāo),就算項(xiàng)目里有多色圖標(biāo)也會(huì)自動(dòng)去色。

    注意:新版 iconfont 支持多色圖標(biāo),這些多色圖標(biāo)在 Unicode 模式下將不能使用,如果有需求建議使用symbol 的引用方式

    Unicode 使用步驟如下

    第一步:拷貝項(xiàng)目下面生成的 @font-face

    @font-face { font-family: 'iconfont'; src: url('iconfont.eot'); src: url('iconfont.eot?#iefix') format('embedded-opentype'), url('iconfont.woff2') format('woff2'), url('iconfont.woff') format('woff'), url('iconfont.ttf') format('truetype'), url('iconfont.svg#iconfont') format('svg'); }

    第二步:定義使用 iconfont 的樣式

    .iconfont { font-family: "iconfont" !important; font-size: 16px; font-style: normal; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

    第三步:挑選相應(yīng)圖標(biāo)并獲取字體編碼,應(yīng)用于頁面

    <span class="iconfont">&#x33;</span>



    font-class 引用

    font-class 是 Unicode 使用方式的一種變種,主要是解決 Unicode 書寫不直觀,語意不明確的問題。

    與 Unicode 使用方式相比,具有如下特點(diǎn):

    兼容性良好,支持 IE8+,及所有現(xiàn)代瀏覽器。

    相比于 Unicode 語意明確,書寫更直觀??梢院苋菀追直孢@個(gè) icon 是什么。

    因?yàn)槭褂?class 來定義圖標(biāo),所以當(dāng)要替換圖標(biāo)時(shí),只需要修改 class 里面的 Unicode 引用。

    不過因?yàn)楸举|(zhì)上還是使用的字體,所以多色圖標(biāo)還是不支持的。

    使用步驟如下:

    第一步:引入項(xiàng)目下面生成的 fontclass 代碼:

    <link rel="stylesheet" href="./iconfont.css">

    第二步:挑選相應(yīng)圖標(biāo)并獲取類名,應(yīng)用于頁面:

    <span class="iconfont icon-xxx"></span>



    symbol 引用

    這是一種全新的使用方式,應(yīng)該說這才是未來的主流,也是平臺(tái)目前推薦的用法。相關(guān)介紹可以參考這篇文章 這種用法其實(shí)是做了一個(gè) SVG 的集合,與另外兩種相比具有如下特點(diǎn):

    支持多色圖標(biāo)了,不再受單色限制。

    通過一些技巧,支持像字體那樣,通過 font-size, color 來調(diào)整樣式。

    兼容性較差,支持 IE9+,及現(xiàn)代瀏覽器。

    瀏覽器渲染 SVG 的性能一般,還不如 png。

    使用步驟如下:

    第一步:引入項(xiàng)目下面生成的 symbol 代碼:

    <script src="./iconfont.js"></script>

    第二步:加入通用 CSS 代碼(引入一次就行):

    <style> .icon { width: 1em; height: 1em; vertical-align: -0.15em; fill: currentColor; overflow: hidden; } </style>

    第三步:挑選相應(yīng)圖標(biāo)并獲取類名,應(yīng)用于頁面:

    <svg class="icon" aria-hidden="true"> <use xlink:href="#icon-xxx"></use> </svg>



    下面,我就跟大家詳細(xì)說說 font-class 引用的引用方式:



    打開編輯器(在這里我使用的是 VS Code編輯器),新建一個(gè)項(xiàng)目文件夾(demo)





    將解壓后的字體圖標(biāo)文件夾(icon)直接放到demo目錄下





    在demo文件夾下面新建一個(gè)html文件 demo.html



    導(dǎo)入icon文件夾里面的外部樣式表

    <link rel="stylesheet" href="./icon/iconfont.css">



    iconfont.css 里面就是我們下載的字體圖標(biāo)的所有css樣式了,我們打開看看吧!

    你會(huì)發(fā)現(xiàn)里面有一個(gè) iconfont類名(這里劃重點(diǎn)!后面要用),它是所有字體圖標(biāo)的公用樣式。





    這時(shí)我們就可以在頁面中使用這些字體圖標(biāo)啦!上面我們只是導(dǎo)入了整個(gè)css樣式表,現(xiàn)在我們要針對(duì)性地把某個(gè)圖標(biāo)引用到html頁面中,并在網(wǎng)頁中顯示出來。

    下面 我們就開始寫頁面的主體部分吧!



    <p> 我有一個(gè)夢(mèng)想:能夠擁有一套 <span class="iconfont icon-home"></span> </p>

    這里的span標(biāo)簽里面放的就是要用的某個(gè)字體圖標(biāo)了,你會(huì)發(fā)現(xiàn)它用了兩個(gè)class類名。

    第一個(gè)是iconfont,也就是我前面劃的重點(diǎn)(到這里不明白的話,可以再回頭看看)

    第二個(gè)是icon-home,這個(gè)類名從何而來呢?

    來,繼續(xù)往下看,再次打開icon文件夾下的



    話不多說,直接看圖



    是不是對(duì)應(yīng)上啦!簡(jiǎn)單地說就是你要用那個(gè)圖標(biāo)就添加它的class類名。



    到這里,恭喜你已經(jīng)學(xué)會(huì)了如何在網(wǎng)頁中插入字體圖標(biāo)啦?。。?br />
    那么,趕快運(yùn)行一下看看效果吧!



    到這里是不是還滿足不了你的需求,會(huì)有這樣的疑問:如果是這樣的效果,跟一張圖片有什么區(qū)別呢???

    當(dāng)然不是啦!

    之所以叫做字體圖標(biāo),顧名思義,它在網(wǎng)頁中就是一種字體的存在,不過它比普通字體長得好看些有木有!

    我們可以像更改文字樣式一樣去更改它的樣式,比如說 大小、顏色、陰影…



    Symbol 引用方式還可以實(shí)現(xiàn)下面原圖標(biāo)的彩色效果哦!可以自己照著官方提供的步驟試試看





    下面附上Font class引用方法的 源代碼 供參考

    前面的步驟一定要看?。?!

    如果前期工作沒做的話,直接用我的源代碼是實(shí)現(xiàn)不了的。



    <!DOCTYPE html>

    <html lang="en">

    <head>

        <meta charset="UTF-8">

        <meta name="viewport" content="width=device-width, initial-scale=1.0">

        <title>字體圖標(biāo)</title>

        <link rel="stylesheet" href="./icon/iconfont.css">

        <style>

            .iconfont{

                font-size: 200px;

                color: palevioletred;

                text-shadow: 18px 17px 17px gray;

            }

        </style>

    </head>

    <body>

        <p>

            我有一個(gè)夢(mèng)想:能夠擁有一套

            <span class="iconfont icon-home"></span>

        </p>

    </body>

    </html>

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    花費(fèi)了很長時(shí)間整理出來的。

    很簡(jiǎn)單是不是!??!

    看到這里還不會(huì)的話,建議重新再看一遍!



    其中有錯(cuò)誤的話,還請(qǐng)指出,我會(huì)虛心接受并改正?。。?br />
    ————————————————

    版權(quán)聲明:本文為CSDN博主「Humy.」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。

    原文鏈接:https://blog.csdn.net/weixin_42678796/article/details/104569773

    日歷

    鏈接

    個(gè)人資料

    存檔

    主站蜘蛛池模板: 亚洲大成色WWW永久网站| 亚洲男人AV天堂午夜在| 亚洲Aⅴ无码专区在线观看q| 在线看片免费人成视频无毒| 国产免费午夜福利蜜芽无码| 波多野结衣免费一区视频 | 久久国产亚洲一区二区三区| 中文字幕成人精品久久不卡| 国产一区二区丝袜美腿| 日本午夜爱爱一区二区| 亚洲AV乱码毛片在线播放| 国产va免费精品观看| 四虎国产精品永久在线| 日韩av一区二区精品不卡| 国产精品久久| 亚洲精品午夜无码电影网| 亚洲午夜免费福利视频| 亚洲—日韩aV在线| 在线观看国产一区亚洲bd| 国产成人亚洲精品电影| 国产高清videossex| 青青草视频华人绿色在线| 野花社区视频www官网| 日韩国产欧美| 亚洲欧美成人一区二区三区 | 亚洲成AV人不卡无码影片| 野花社区www视频日本| 中文字幕在线观看亚洲日韩| 亚洲成在线人视频观看| 国模无码人体一区二区| 中文字幕国产精品日韩| 91pao强力打造免费高清| 久久国产精品国产自线拍免费| 五月婷综合| 国产精品久久久久久久久久| 亚洲精品中文字幕二区| 宅男午夜| 日本高清一区二区不卡视频| 99精品高清在线播放| 国产成人av在线免播放观看| 九九免费精品视频在线观看|