<address id="ttjl9"></address>

      <noframes id="ttjl9"><address id="ttjl9"><nobr id="ttjl9"></nobr></address>
      <form id="ttjl9"></form>
        <em id="ttjl9"><span id="ttjl9"></span></em>
        <address id="ttjl9"></address>

          <noframes id="ttjl9"><form id="ttjl9"></form>

          首頁

          Lottie 動效設計

          純純

          動效設計,是 UI 設計當中不可或缺的一環。大家對動效的認知也從最初認為動效只是為了美觀酷炫,到逐漸理解了動效對于提升用戶體驗和產品需求的重要作用。而導致這種認知的轉變,相當一部分原因是因為硬件性能的發展和動效輸出方式的優化。

          因為動效實現的過程就是設計師和開發之間互相博弈的過程。設計師可能通過 AE 或者其他工具做出炫酷的效果,和開發對接就懵了。要么無法實現,要么極其復雜。畢竟開發工程師要通過代碼把動效實現出來,設計師得用開發所能理解的語言來描述。就如同你能完美地解出一道數學題一樣,讓你把解題思路教給別人,你可能就沒那么順暢了。一方面取決于你的表述能力,而更重要的是對方的理解能力。過去所廣泛采用的通過動效標注輸出給開發的方式,都存在還原度的問題。很多時候還原度達到 80% 可能都算比較好的了。

          而今天要說到的 Lottie 不僅可以 100% 還原動效,而且無需動效標注。直接通過 AE 輸出動效文件給開發。開發人員直接調用,然后完美還原。

          Lottie是什么?

          Lottie 是 Airbnb 開源的一個動畫渲染庫,同時支持 Android、iOS、React Native 平臺。Lottie 支持渲染播放 AE 動畫。通過 AE 插件 bodymovie 導出 json 文件作為動畫數據。


          Lottie有什么用?

          Lottie 可以應用在 UI 設計的很多場景中。以下舉出幾個常用例子。

          1. 動態啟動頁


          2. 動態圖標/按鈕

          3. 空頁面




          以上僅列舉了部分常用案例,其實 Lottie 的應用場景遠不止這些。在 APP 的多個模塊中都可以運用,那么我們要如何將 Lottie 運用在自己的工作項目中呢?那就要了解 Lottie 的原理了。


          Lottie的原理是什么?

          前面已經提過 Lottie 是 Airbnb 開源的一個動畫渲染庫。我們可以理解為它是一個多功能的視頻播放器,開發人員需要將這個播放器部署到相應的環境中。然后設計人員提供視頻(動效文件)給開發人員,讓開發人員按照要求播放視頻文件,即可完成動效的應用。


          假設該按鈕動效一共10幀,整個按鈕切換分為兩部分,第一部分:從菜單切換到關閉(1-10幀);第二部分:從關閉切換到菜單(10-1)。我們可以讓開發通過以下控制方式,完成我們想要的效果。

          按鈕動效默認顯示第1幀(菜單狀態),點擊按鈕以后開始播放動效,動效播放到第10幀的時候停止,并停在第10幀(關閉狀態)。當按鈕為關閉狀態(第10幀)時,點擊按鈕以后動效從第10幀倒放到第1幀(關閉狀態),并停在第1幀(菜單狀態)。

          通過以上方式就完成了對一個動效按鈕的控制。而日常工作中我們可以靈活地運用多種控制方式。

          首先動效的觸發,可以是一次交互事件,比如點擊、滑動;也可以是監聽到了廣播,比如網絡異常等。而觸發以后的動效控制也多種多樣,可以從開始播放到結束,也可以進行倒放;可以循環播放某一段動效;也可以從某一幀播放到另一幀,或者某一個時間點播放到另一個時間點;更多的控制方式需要大家在工作中慢慢挖掘。

          Lottie支持的AE屬性

          Lottie雖然能夠滿足多種場景需要,但是并非支持所有的 AE 效果。設計制作時,需要考慮該效果是否支持。否則,會導致出錯或者所用效果無法生效。



          上圖為 Lottie 支持的主要 AE 屬性,此處有刪減掉部分不常用的屬性??梢源蜷_以下鏈接查看完整版http://airbnb.io/lottie/#/supported-features

          需要注意的是文檔中雖然說支持漸變,但是會出錯,所以大家在使用矢量圖形時,請勿使用漸變效果。關于漸變效果的修復后續文章會提到,官網以后也會修復相關問題,但是沒有確切時間。

          通過上圖我們可以了解到,Lottie 支持的 AE 屬性基本包含以下幾類:

          • 基礎的形狀比如圓形、矩形、星形等,也可以支持鋼筆工具繪制的矢量形狀和從 AI 中導入的矢量圖形。
          • 支持位移、大小縮放、透明度、旋轉、修剪路徑、蒙版、遮罩這些基礎動畫屬性。
          • 支持圖層間建立父子級關系(只支持圖層與圖層之間建立,當圖層的屬性之間建立父子關系會失效,比如 A 圖層可以和 B 圖層建立父子關系,但是 A 圖層的位移屬性和 B 圖層的位移屬性單獨建立父子關系則不生效)。
          • 支持速度貝塞爾插值,可以搭配 Flow 插件生成各種緩動效果。
          • 支持導入圖片。
          • 支持時間拉伸和時間重映射來通知時間和速度。

          (原文章來源于:https://www.uisdc.com/lottie-dynamic-design-guide





          inheritAttrs和$attrs的使用

          seo達人

          禁用繼承屬性inheritAttrs和$attrs的使用

          Index.html:



          <div id="app">

                  <test-input

                   v-bind:class="class1"

                   v-bind:style="{fontSize:17+'px'}"

                   v-bind:test1='test1'

                   test2="test2"

                   placeholder="placeholder test3"

                  ></test-input>

              </div>



          Index.js:



          Vue.component('test-input', {

            inheritAttrs: false,

            template: &lt;label &gt;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;p v-bind="$attrs"&gt;測試&lt;/p&gt;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;input&nbsp; v-bind="$attrs"&gt;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/label&gt;

          })

          new Vue({

            el:'#app',

            data:{

              class1:'class1note',

              test1:'test1note',

              test2:'test2note',

          },

          })



          頁面結果:



          當將屬性修改為:inheritAttrs: true,的時候

          頁面的結果:



          包含了所有的屬性:



          最后總結:

          當inheritAttrs的屬性值為true(不寫該行屬性的結果同true,也就是inheritAttrs默認為true),組件的根元素會自動繼承所有的屬性!當為false的時候,根元素只會繼承注冊的屬性,自建的屬性不會繼承??!

          attrs:它包含了父組件所有的自建屬性!可以通過v?kind=“ attrs:它包含了父組件所有的自建屬性!可以通過v-kind=“attrs:它包含了父組件所有的自建屬性!可以通過v?kind=“attrs”將所有自建屬性賦給想要的元素上?。?br />



          交互設計:如何做到周到?

          資深UI設計者

          在涉及體驗細節的小需求上,避免所有的不周到,方才是周到


          前兩篇,探討了個人對交互設計價值觀的理解,以及其對從業者和用戶的價值。


          這一篇,我們就來探討一下,如何做到之前提到的 4 點價值觀。


          先從“周到“開始。

          僅為一家之言。歡迎留言交流,說出你的看法。



          01 怎樣算是周到?


          本著嚴謹的態度,先捋一捋概念。


          常言道,金杯銀杯,不如百姓口碑。


          同理,周不周到,最終還是用戶說了算。那用戶是怎么評判的呢?通常是憑主觀感受。


          拿上篇文章中網易號文章編輯頁面的例子來說,因為“保存”和“存草稿”功能做的不夠好,所以給筆者留下了不夠周到的印象。


          翻譯過來,就是,一些體驗細節,影響了用戶的印象。


          《設計師要懂心理學》這本書中有條原則,叫“整體認知主要依靠周邊視覺而非中央視覺”。


          講的是視覺和 UI 層面的用戶認知。就是說,用戶會關注并不顯眼的邊邊角角的設計,而且這些邊邊角角的設計會影響用戶對整體設計的認知和印象。


          舉個例子。假如說,微博信息流頁面的掃一掃圖標,在風格、大小等方面和其它圖標不統一,就會給用戶留下比較糟糕的印象,用戶很可能會覺得微博的設計不夠專業。


          這些是 UI 設計層面的。在交互設計層面,也是類似的道理:體驗細節會影響用戶的認知。


          總的來說,至少在常用的交互細節上,不要給用戶留下負面印象,也不要讓用戶產生負面情緒,避免所有的不周到,才算是周到。



          02 如何做到周到?


          個人覺得,最關鍵的地方,是滿足好小需求。



          啥是小需求?


          個人觀點,籠統的講, 小需求是一種共性需求, 主要是一些體驗細節。比如信息的分類與展示、銜接不同頁面的各種彈窗與提示、對各種狀態的提示、對各種情況的到位解釋,等等。


          有小需求,就有大需求。


          所謂大需求,更多是一種個性需求, 不同的產品,會有不同的大需求。比如短視頻產品,它的大需求會包含視頻的拍攝、上傳、播放等;資訊類產品,它的大需求則包含文章的撰寫、編輯、發布、查看等。



          工作經歷,筆者見過一些交互設計不夠周到的產品。它們的共同特點就是: 大需求基本上得到了很好的滿足,小需求沒有得到很好的滿足。


          這一大段,就圍繞如何更好的滿足小需求來展開。主要建議如下。



          1 工欲善其事,必先利其器


          筆者有個客戶,是從事教育行業的,之前并沒有接觸過互聯網行業的產品與設計工作。


          這位客戶找到筆者的時候,是想要設計一款小程序的界面。當時客戶非常自豪的對筆者說,這個(原型)是我用墨刀畫的,現學現做。


          說起墨刀,本人也用過。和 Axure 相比,確實好用太多,在簡潔性和智能性方面,感覺和 Sketch 有異曲同工之處。


          關于墨刀如何好用,網上已經有太多溢美之詞。筆者就結合自己的使用經歷,簡單總結一下:

          1 好用,上手快。零基礎,只要會操作常用辦公軟件,簡單學一下就能上手

          2 內置主流控件(iOS,安卓,WeUI等),非常方便

          3 能在手機端預覽。加入鏈接和動效后,會很酷

          4 能查看頁面之間的跳轉邏輯。借助工作流功能,可實現這一點


          以上主要是墨刀自身的優點。結合本段主題,我們再探討一下,對于日常工作,墨刀這把利器有哪些優勢。


          1.1 可以把更多精力花在創作上


          當我們不會用一款工具時,通常會有一些挫敗感。如果必須要用,接著很可能就會有一點焦灼了。


          而墨刀,基本上不會讓我們體會到這些感覺。


          我們也不用花無謂的時間去學習一些艱難的高深的技法,而是可以把更多的時間花在“創作”這件事上。


          1.2 可以更好的去滿足小需求


          部分公司,可能面臨如下情況。


          公司沒有專門的交互設計師,產品的原型由產品經理來畫。產品經理本身還兼任項目經理。


          如果項目又特別趕,客觀上,產品經理確實沒有太多時間去關注交互的體驗細節。

          主觀上,如果產品經理對這些交互細節的興趣或重視程度不足、同時產品經理上面的決策層也不去抓這些體驗細節,最終的結果,就是產品的原型上可能會丟失很多體驗細節。


          筆者就有類似的經歷。


          一款 App,產品經理用 Axure 畫的原型。評審或宣講需求的時候,大家都是在電腦或會議室大屏幕上來看這個原型,同時所有人關注的是大需求。


          理解完大需求,會有部分同學就大需求提出自己的看法或建議。最后,才會有部分同學就小需求指出不足并提出建議。


          受限于職責、時間等各種因素,大家也不可能針對小需求提出太多建議。結果就是,仍然會有相當數量的小需求被遺漏,或者沒有被很好的滿足。


          墨刀有兩個功能,可以較好的規避這些問題。一個是工作流功能,一個是手機端預覽功能。


          工作流功能,類似流程圖,即把所有頁面以合乎邏輯的方式鏈接起來??陀^上,會促使我們畫出所有包含小需求的頁面,包括彈窗、狀態提示等。


          支持多人的手機端預覽功能,使得我們在手機上,可以通過點擊等方式來模擬體驗這款 App。這樣的環境下,我們會更容易理解大需求,也更容易發現小需求存在的問題。


          所以,個人的建議,就是用墨刀來畫原型,同時把工作流和多人手機端預覽(針對 App、小程序)這兩項,作為硬性標準。


          2 去用去感受


          一款產品,在體驗或使用時,非常容易發現問題。


          因為這時候,我們可以松弛下來,把自己切換成普通用戶。忘掉所有費腦子的需求和設計原理,只依賴經驗和直覺來用這款產品。我們的主觀感受,會告訴我們,這款產品的交互,到底周不周到。


          據陸樹燊的《微信團隊的實驗室文化》一文顯示,張小龍評審微信的功能,不看原型圖,不看設計稿,也不看 Demo,而是體驗前后臺代碼開發好后的產品。這就意味著,如果一個功能在給到用戶前有 N 個方案,就會有 N 個方案對應的前后臺代碼。


          一定程度上,微信團隊就是通過這種在正式發布前反復試錯、不斷打磨的方式,最終給用戶提供了優秀的交互體驗。


          估計,絕大部分團隊和公司,都做不到微信這樣,開發 N 個版本,并去一一體驗和比較這 N 個版本。


          無法體驗已經開發好的 N 個版本。但是,在真實的設備上體驗 N 個原型,我們還是可以做到的。


          原型雖然沒有開發好的產品那么順暢和流暢,但是,如果用墨刀在手機端體驗一款加了鏈接和動效的 App 原型,一樣可以發現很多問題。


          不過,根據經歷和觀察,筆者發現,我們人類,是不喜歡體驗原型的。

          想一想,平常工作中,我們可能會樂此不疲的去體驗開發好的測試版產品。但對于原型,大部分時候,都是匆匆忙忙就過掉了。


          個人有個猜測,就好像人類喜歡逗貓遛狗、卻不太喜歡逗桌子上的模型貓和模型狗一樣,我們人類是不太愿意花費太多時間和精力去和原型這種“假產品”互動的。


          所以,某種程度上,體驗原型,是一種反人性的行為。


          但卻是一種非常經濟和的方法。


          因為首先,大部分時候,我們都是先選中一個原型方案,然后去設計、去開發;其次,等到開發好進入測試環節,這時候,原型往往就成了測試的標準,依靠測試來優化原型是不現實的。


          所以,結合現狀,綜合來看,小需求能不能得到很好的滿足,很大程度上還是要依靠原型。


          也就是說,很有必要對原型進行優化。具體方法,就是在真實的設備上體驗原型、反復體驗、多人體驗,并進行相應優化。


          3 參考設計規范


          如前所述,用利器來創作原型,反復在原型里體驗產品,這些強調的是內部力量,即自身的努力。


          下面,再談一談外部力量,即外界海量的知識與經驗。


          說起外界知識,除了直接參考其他產品的設計以外,大家參考最多的,可能就是《iOS Human Interface Guidelines》和《Material Design》這些設計規范了。


          根據筆者的實際經驗,這兩個來自蘋果和谷歌的設計規范,很多時候,我們都是拿它們當字典用。即哪一點不會或不太確定的時候,去翻一翻查一查。


          雖然這倆規范很優秀,但是卻很難被我們“物盡其用”,因為它們的知識體系過于龐大,有點像一本字典。拿著“字典”里的每一條原則去檢驗我們的交互設計,這是很難做到的。


          但是有一個設計規范,去非常適合拿來檢驗我們的交互設計,那就是尼爾森十大可用性原則。


          太詳細的就不贅述了,這里我們再簡單回顧下這十條原則。


          1) 狀態可見
          用戶時刻清楚,正在發生什么


          2) 環境貼切
          營造一個用戶熟悉的環境,比如語言、詞語、圖標等


          3) 用戶可控
          控制權交給用戶,并且多數時候,考慮支持撤銷重做


          4) 一致性
          方方面面的統一,比如文案、視覺、操作等


          5) 防錯
          盡最大可能,幫助用戶,避免用戶犯錯


          6) 易取:識別比記憶好
          通過把組件、按鈕等元素可見化,降低用戶記憶負擔


          7) 靈活
          優先考慮人數最多的中級用戶,同時兼顧高級和初級用戶


          8) 易掃:優美且簡約
          閱讀體驗要好,掃視體驗也要好;保持簡約和美觀


          9) 容錯
          幫助用戶識別、診斷,并從錯誤中恢復


          10) 人性化幫助
          日常的使用最好脫離幫助文檔,但有必要提供幫助文檔



          個人非常建議,在日常工作中,把尼爾森十大可用性原則作為一把標尺,來時時刻刻檢驗我們的交互設計。



          結語


          交互設計,在涉及體驗細節的小需求上,避免所有的不周到,方才是周到。


          用利器創作原型,要包含流程圖;多體驗原型或產品,以體驗結果為準、而非討論結果為準;參考優秀的設計規范,用尼爾森十大可用性原則來檢驗原型。


          以上三點,可以幫助我們做到交互設計的周到。

          其中,個人認為,最為核心的是第二點:多體驗原型或產品,直到自己覺得周到為止。



          文章來源:站酷

          快速掌握黃金分割構圖法

          資深UI設計者

          自從做設計以來經常會看到一些很高大上的理論,例如:格式塔法則、網格系統、黃金分割法等等,這些詞語給人第一印象就是很高大上,很難學會,也有很多設計師看到這些理論就被嚇到,認為自己學不會,也不想學,因為理論知識確實是學起來很枯燥。對于初學者的設計師來說,這些理論可以在短時間不用學太多,但是對已經工作幾年的設計師來說,這些設計理論知識也是必不可少的。

          只有掌握設計中必要的設計知識,才能讓自己的設計眼界、技能得到提升。就我個人而言,我在設計初期也是很反感這些所謂的理論知識,對于我來說簡單通俗的教學才是最容易讓人接受的,理論太深奧,我真的無法從中體會到真正的奧秘。但是,越到后面,我越喜歡研究那些設計理論知識,因為我越來越懂得那些理論的重要性,對我的設計也有很大的幫助。所以今天我采用通俗易懂的方法,教大家去理解和掌握這些高大上的設計理論知識。

          今天主要分享我們經常聽到的黃金分割構圖法。

          黃金分割構圖法:是一種由古希臘人發明的幾何學公式,遵循這一規則的構圖形式被認為是「和諧」的,在欣賞一件形象作品時這一規則的意義在于提供了一條被合理分割的幾何線段。

          黃金分割構圖法的基本理論來自于黃金比例 ── 1 : 1.618。

          黃金分割構圖法運用到海報設計、畫冊設計、網頁設計、繪畫、服裝設計、logo 設計、電視電影、建筑等等領域。在攝影中也經常會引入黃金分割比例,可以讓照片感覺更自然、舒適,更能吸引觀賞者,給人一種賞心悅目的視覺感受。

          優秀案例分析

          我們先賞析一些運用黃金分割法的優秀案例,通過賞析能讓我們體會到它的美和重要性。

          1. 在海報中的應用

          從上面的 2 張人物海報案例中,可以看出都利用了黃金分割螺旋法的技巧,當整張圖作為背景時,我們不知道圖片主題位置的掌控時,就可以采用黃金分割法的原則。對于人物,可以根據想要突出的人物某一部位,直接采用這種分割方法快速找到版面位置

          下面2張海報是通過圖形和文字的結合,主題文字排版的位置也都剛剛好是黃金分割的編排,帶給人一種美的、舒適的畫面感,圖片和文字在版面的比例剛好是 1 : 0.618。

          2. 在網頁中的應用

          上面 2 個網頁都采用了黃金分割的原則,大體將版面分為圖片區+文案區,比例為 1 : 0.618。上面同時采用了網格重疊的形式,而下面的就是最基本的黃金分割比例。版面的編排整體給人一種呼吸感、有序的、層次分明的視覺感受,并且瀏覽的順序也是井井有條,如下圖閱讀順序指引:

          3. 在繪畫上的應用

          像我們看熟悉的名畫「蒙娜麗莎」、「維納斯的誕生」等也符合黃金分割的比例。黃金分割比例也在這些作品上經過了歷史認證,利用黃金分割布局,讓畫面更耐看、更精致。

          4. 在攝影上的應用

          在攝影中也經常會引入黃金分割比例,可以讓照片感覺更自然、舒適,更能吸引觀賞者,給人一種賞心悅目的視覺感受。使用黃金分割的攝影可以制造出一種空曠、寂靜的視覺效果,也可以制造出一種特寫鏡頭的效果。不知道怎么拍照好看,學會這一招你的攝影立馬高大上。

          5. 在建筑上的應用

          在建筑設計中的運用也有很多案例,例如上面的金字塔和泰姬陵的多處布局都能看出黃金分割,第三張中國古建筑也都運用了黃金分割構圖。自古以來很多文化建筑都采用了這個構圖,讓建筑看起來更加美觀、耐看、精致。

          怎么畫螺旋黃金分割圖

          了解了螺旋黃金分割法的用途和好處,我們最主要的是需要知道怎么來畫這個螺旋黃金圖。

          1. 新建畫布

          2. 畫正方形

          這里畫正方形是最關鍵的一步,我們只要知道螺旋黃金圖的比例就可以很快的畫出來。

          螺旋黃金圖比例為:13 : 8 : 5 : 3 : 2 : 1

          只要知道螺旋黃金圖的比例我們就可以開始畫正方形了,簡單的正方形不用我多說吧。我們按 10 倍的比例來畫圖,簡單的意思就是前面的螺旋黃金圖比例都乘 10,變為 130 : 80 : 50 : 30 : 20 : 10,再根據這個數字畫出 6 個正方形。

          正方形畫好后按照這個轉圈的順序排好即可。

          3. 畫圓弧線

          正方形畫好后,畫圓弧線,可以通過畫正圓得到。

          圓弧線為正圓的四分之一,圓的半徑為每個不同正方形的邊長,通過不同大小的正方形畫出不同大小的圓弧即可。

          開始畫圓?。阂源笳叫蔚挠蚁陆菫閳A心畫正圓,注意相切位置,畫好后刪除多余的錨點。

          △ 圓心位置

          △ 相切位置

          △ 刪除多余錨點

          △ 圓弧畫完后

          到了這一步基本也就出現我們想要的螺旋黃金圖,最后只需要將我們的正方形改成描邊的模式即可。

          △ 最終圖形

          這里展示一下第二種方法:

          螺旋黃金比1 : 1.618在畫面中怎么看?

          利用黃金分割法的案例實操

          說了這么多,沒有實際的操作案例你們是不是也很頭痛,到底拿到這個技巧怎么去使用呢?在我這里例舉一個橫版和一個豎版的案例。

          1. 橫版

          找素材

          這里找來幾張圖片,因為是做分析案例,所以我就選擇我自己喜歡的圖,我選擇的是圖1。

          圖片調整

          圖片確定后,我們就需要把圖放到我們的畫布中。

          但是問題來了,一般我們的設計尺寸基本是不會和找到的素材是一樣大的,我們到底要怎樣放大圖片呢?圖片中哪些元素可以忽略,哪些需要重視?螺旋黃金分割法就可以用上了。

          利用我們的螺旋黃金分割圖,放在我們的版面中。接下來就放大我們的素材圖片,分析圖片結構。圖片上方都是天空,左邊是海和天空,只有右下比較復雜,有人和零碎的石頭,所以我們這里圖片就以人為畫面中的焦點,那么我們的螺旋圖就需要改變一下位置。

          調整圖片大小和位置,將圖片中的人物放在螺旋圖的焦點位置,這樣我們的版面就快速地確定了視覺焦點。

          文字排版

          將文字排版在畫布中,再根據文字豎排的樣式,和人閱讀的習慣,調整圖的方向和文字位置,使人看向主題文字,給人一種指引的方向。

          總結:主要利用螺旋黃金分割法調整圖片的位置焦點,使畫面中心達到舒適耐看和精致的視覺效果。

          標記分析圖:

          這個案例我就不做太多的講解,因為很簡單,直接利用螺旋黃金分割構圖的方法,將版面按1 : 0.618的比例劃分,然后在這個比例畫布中排版文案和圖片。

          2. 豎版案例

          圖片位置排版

          素材選擇上面的圖2,這里就做一張豎版的海報。

          將素材圖放在畫布中,準備好我們的螺旋黃金分割圖,也放在畫布中。根據圖片本身的特點,人物只有上半身,所以將圖片放在底部最為合適。至于人物應該靠中間還是靠邊,我們同可以根據圖片人物本身的姿勢判斷,根據人物是微抬頭向上看,角度約 30 度,所以選擇將人物靠邊。

          再就是人物具體位置的掌控,我們同樣和上面的案例一樣直接利用螺旋黃金分割圖做參考位置選擇,所以就很快找到合適的位置,如上面右圖。

          填充背景和文案

          我們將背景顏色填充為天空統一的色彩,建立網格,將文案排版在畫布中,上面主要是海報中的主要文案及主題文案,文案和圖片的總體比例為1 : 0.618,遵循我們的黃金法則。

          根據圖片的氣質,圖片中的色彩和人物都屬于文藝氣質,清新、寂靜、雅致的感覺,所以我們這里可以選襯線體宋體,結合韓文來體現整體的氣質。

          效果展示

          最后看看海報效果吧,主要講解螺旋黃金分割圖的使用,所以排版方面講解的比較簡單,以及主題文字都采用最簡單粗暴的字體,沒有過多的修飾。

          總結

          文章分享了螺旋黃金分割構圖的用途,很廣泛,包含海報設計、畫冊設計、網頁設計、繪畫、服裝設計、logo設計、電視電影、建筑、攝影等等領域,以及分享了黃金分割圖形的畫法,3 個簡單的案例實操,利用黃金分割構圖來幫助我們構圖和排版,最有利于我們對圖片焦點位置的選擇和排版分布的掌控。

          文章來源:優設

          需求太多做不過來?試試KANO 模型!

          資深UI設計者

          在做項目做產品的過程中,作為互聯網產品設計師的我們,經常會接到來自 PM/領導/業務方等等的各種需求。有的時候,哪怕一個小功能、次次次級頁面都會爭得不可開交。這個時候怎么辦呢?到底應該聽誰的呢?哪個需求優先級高?哪種呈現方法是更靠譜的呢?

          今天我們就來聊聊一個非常實用的需求分級方法 — KANO模型。

          什么是KANO模型?

          KANO 模型是東京理工大學教授狩野紀昭(Noriaki Kano)發明的對用戶需求分類和排序的工具。通過分析用戶對產品功能的滿意程度,對產品功能進行分級,從而確定產品實現過程中的優先級。

          KANO 模型是一個典型的定性分析模型,一般不直接用來測量用戶的滿意度,常用于識別用戶對新功能的接受度。幫助企業了解不同層次的用戶需求,找出顧客和企業的接觸點,挖掘出讓顧客滿意至關重要的因素。

          1. KANO模型的需求分類

          在 KANO 模型中,根據不同類型的需求與用戶滿意度之間的關系,可將影響用戶滿意度的因素分為五類:基本型需求、期望型需求、興奮型需求、無差異需求、反向型需求。

          興奮型需求

          所謂暗處,用戶意想不到的,需要挖掘/洞察。若不提供此需求,用戶滿意度不會降低;若提供此需求,用戶滿意度會有很大的提升。

          當用戶對一些產品或服務沒有表達出明確的需求時,企業提供給顧客一些完全出乎意料的產品屬性或服務行為,使用戶產生驚喜,用戶就會非常滿意,從而提高用戶忠誠度。

          這類需求往往是代表顧客的潛在需求,企業的做法就是去尋找發掘這樣的需求,領先對手。

          期望型需求

          所謂癢處。當提供此需求,用戶滿意度會提升;當不提供此需求,用戶滿意度會降低。

          它是處于成長期的需求,客戶、競爭對手和企業自身都關注的需求,也是體現競爭能力的需求。

          對于這類需求,企業的做法應該是注重提高這方面的質量,力爭超過競爭對手。

          基本型需求

          所謂痛點。對于用戶而言,這些需求是必須滿足的,理所當然的。當不提供此需求,用戶滿意度會大幅降低,但優化此需求,用戶滿意度不會得到顯著提升。

          對于這類需求,是核心需求,也是產品必做功能,企業的做法應該是注重不要在這方面減分,需要企業不斷調查和了解用戶需求,并通過合適的方法在產品中體現這些要求。

          無差異需求

          用戶根本不在意的需求,對用戶體驗毫無影響。

          無論提供或不提供此需求,用戶滿意度都不會有改變。對于這類需求,企業的做法應該是盡量避免。

          反向型需求

          用戶根本都沒有此需求,提供后用戶滿意度反而下降。

          總而言之,我們做產品設計時,需要盡量避免無差異型需求、反向型需求,至少做好基本型需求、期望型需求,如果可以的話再努力挖掘興奮型需求。

          如何使用KANO模型?

          KANO 模型分析方法主要是通過標準化問卷進行調研,根據調研結果對各因素屬性歸類,解決需求屬性的定位問題,以提高用戶滿意度。

          1. 明確目的

          做之前,必須明白調研的目的是什么,是否合適用 KANO 模型解決,為什么要用 KANO 模型解決。

          例如:企業為賣家開發的 CRM 工具,隨著賣家客戶的不斷增長,CRM 系統中需引入一些新的功能滿足其管理需求。而我們作為產品開發設計者,需要知道這些功能哪些是基本功能,哪些是增值功能,功能的優先級又該如何排列等等。

          KANO 模型就可以幫助我們很好的貼和業務需求,從具備程度和滿意程度這兩個維度出發,將 CRM 中新增的功能進行區分和排序,從而知道:哪些功能是一定要有,否則會直接影響用戶體驗的(基礎屬性、期望屬性);哪些功能是沒有時不會造成負向影響,擁有時會給用戶帶來驚喜的(興奮屬性);哪些功能是可有可無,具備與否對用戶都不會有大影響的(無差異因素)。

          2. 設計問卷

          此問卷調查表劃分維度有兩個:提供時的滿意程度、不提供時的滿意程度。而滿意程度被劃分為 5 級(非常滿意、滿意、一般、不滿意、很不滿意),因為人的滿意程度往往是漸變的,而不是突變的。

          滿意程度的文案可根據實際問題靈活修改,如使用(非常喜歡、理應如此、無所謂、勉強接受、很不喜歡 或者 非常有用、挺實用、無所謂、不實用、很不實用 )更加形象的描述。

          例如:在「通訊錄」中,是否需要直接提供「撥打電話」的按鈕?問卷設置正反兩題:

          如果我們在「通訊錄」的客戶列表中,提供「撥打電話」的按鈕,你的感受是:

          A.非常喜歡 B.理應如此 C.無所謂 D.勉強接受 E.很不喜歡

          如果我們在「通訊錄」的客戶列表中,沒有提供「撥打電話」的按鈕,你的感受是:

          A.非常喜歡 B.理應如此 C.無所謂 D.勉強接受 E.很不喜歡

          為了更加形象且一目了然,我們可以如下設計。填問卷的人只需要在空白處打勾打叉就好了,非常方便。

          設計問卷的過程中,有幾點要注意:

          • 問卷中的每道題都涉及到正反兩面,應適當給予強調,防止用戶看錯(比如正反對立詞字體加粗/標紅等等);
          • 在設計問卷時,盡量做到清晰易懂、語言盡量簡單具體,避免語意產生歧義;
          • 選項給予說明:由于每個人對「非常喜歡、理應如此、無所謂、勉強接受、很不喜歡」等形容詞的理解都不一樣,所以最好有一個明確統一的說明,讓用戶可以有個對照,方便填寫。

          例如:

          • 非常喜歡:讓你感到滿意、開心、驚喜。
          • 理應如此:你覺得是應該的、必備的功能/服務。
          • 無所謂:無所謂喜不喜歡,都可以接受。
          • 勉強接受:你不喜歡,最好是沒有,有的話就勉強湊合。
          • 很不喜歡:讓你感到不開心、甚至沮喪,無法接受。

          3. 清洗數據

          在收集所有問卷之后,注意清洗掉個別的明顯胡亂回答的個例。如全部問題都選擇「我很喜歡」或「很不喜歡」的,這種回答毫無參考價值。

          4. 整理分類

          為了能夠將需求區分為基本型需求、期望型需求和興奮需求,需按照正向和負向問題的回答對屬性進行分類,具體分類對照下表。

          當正向問題的回答是「我喜歡」,負向問題的回答是「我不喜歡」,那么 KANO 評價表中,這項功能特性就為「O」,即期望型。

          如果將用戶正負向問題的回答結合后,為「M」或「A」,則該功能被分為基本型需求或興奮型需求。

          其中,R 表示用戶不需要這種功能,甚至對該功能有反感;I 類表示無差異需求,用戶對這一功能無所謂。

          Q 表示有疑問的結果,一般不會出現這個結果(除非這個問題的問法不合理,或者是用戶沒有很好的理解問題,或者是用戶在填寫問題答案時出現錯誤)。

          簡單來說就是:

          A:興奮型;O:期望型;M:必備型;I:無差異型;R:反向型;Q:可疑結果

          注意:以上對照表只是的最常見的一種歸類方式。實際操作中,可因人而異,因產品、公司、地域而異(尤其是關于「R」和「O」的定義),因為滿意度本身就難以衡量。

          5. 量化表格

          判斷 KANO 屬性

          記錄所有合理的數據,計算出各項占比,填寫在下面的對照表里面。

          從上表中不難看出,「通訊錄中「撥打電話」「這個功能在 6 個維度上均可能有得分,將相同維度的比例相加后,可得到6 個屬性維度的占比總和。 總和最大的一個屬性維度,便是該功能的屬性歸屬。

          可看出「在通訊錄中提供 ‘撥打電話’ 功能屬于興奮型需求。即說明沒有這個功能,用戶不會有強烈的負面情緒,但是有了這個功能,會讓用戶感受到滿意和驚喜。

          如果你只判斷這一個需求,那么進行到這一步就可以到此為止了。如果涉及到多個需求的排序分級,你還需進行下一步。

          計算 better-worse系數

          Better-worse 系數,表示某功能可以增加滿意或者消除不喜歡的影響程度。

          Better,可以解讀為增加后的滿意系數。Better 的數值通常為正,代表如果產品提供某種功能或服務,用戶滿意度會提升。正值越大/越接近 1,則表示用戶滿意度提升的效果會越強,滿意度上升的越快。

          Worse,可以叫做消除后的不滿意系數。Worse 的數值通常為負,代表產品如果不提供某種功能或服務,用戶的滿意度會降低。其負值越大/越接近 -1,則表示對用戶不滿意度的影響最大,滿意度降低的影響效果越強,下降的越快。

          因此,根據 better-worse 系數,對兩者系數絕對分值較高的項目應當優先實施。

          其計算公式如下:

          • 增加后的滿意系數 Better/SI=(A+O)/(A+O+M+I)
          • 消除后的不滿意系數 Worse/DSI= -1 *(O+M)/(A+O+M+I)

          結果產出

          例如:某產品希望優化 5 項功能,但是不知道哪些是用戶需要的。通過 KANO 調研分析,可以分別計算出 5 項功能的better-worse 系數。

          根據 5 項功能的 better-worse 系數值,將散點圖劃分為四個象限,以確立需求優先級。

          • 第一象限表示:better 系數值高,worse 系數絕對值也很高的情況。落入這一象限的因素,稱之為期望型因素(一維因素)。功能 2 落入此象限,即表示產品提供此功能,用戶滿意度會提升,當不提供此功能,用戶滿意度就會降低。
          • 第二象限表示:better 系數值高,worse 系數絕對值低的情況。落入這一象限的因素,稱之為興奮型因素。功能 1 落入此象限,即表示不提供此功能,用戶滿意度不會降低,但當提供此功能,用戶滿意度會有很大提升。
          • 第三象限表示:better 系數值低,worse 系數絕對值也低的情況。落入這一象限的因素,稱之為無差異因素。功能 3落入此象限,即無論提供或不提供這些功能,用戶滿意度都不會有改變,這些功能點是用戶并不在意的功能。
          • 第四象限表示:better 系數值低,worse 系數絕對值高的情況。落入這一象限的因素,稱之為必備型因素。功能 4 落入此象限,即表示當產品提供此功能,用戶滿意度不會提升,當不提供此功能,用戶滿意度會大幅降低;說明落入此象限的功能是最基本的功能。

          在實際項目中:

          • 我們首先要全力以赴地滿足用戶最基本的需求,即第四象限表示的必備型因素,這些需求是用戶認為我們有義務做到的事情。
          • 在滿足最基本的需求之后,再盡力去滿足用戶的期望型需求,即第一象限表示的期望因素,這是質量的競爭性因素。提供用戶喜愛的額外服務或產品功能,使其產品和服務優于競爭對手并有所不同,引導用戶加強對本產品的良好印象。
          • 最后爭取實現用戶的興奮型需求,即第二象限表示的興奮型因素,提升用戶的忠誠度。

          結論:

          根據 KANO 模型計算出的 better-worse 系數值,說明該產品先滿足功能 5 和 4,再優化功能 2,最后滿足功能 1。而功能 3對用戶來說有或者沒有都無所謂,屬無差異型需求,并沒有必要花大力氣去實現。

          總結

          KANO 模型定義了三個層次的需求:基本型需求、期望型需求和興奮型需求。

          • 基本型需求:產品「必須有」的功能,也是 MVP 產品要求具有的功能;
          • 期望型需求:非必須功能需求,但通常作為競品之間比較的重點;
          • 興奮型需求:屬于驚喜型產品功能,超出用戶預期,往往能帶來較高的忠誠度。

          根據 KANO 模型建立產品需求分析優先級,運用到產品設計中就是要抓住用戶的核心需求,解決用戶痛點(基本型需求),抓住用戶癢點(期望型需求)。在確保這兩者都解決的前提下,再給用戶一些 high 點(興奮型需求)。

          嚴格來說,KANO 模型并不是一個測量用戶滿意度的模型,而是對用戶需求的分類,通常在滿意度評價工作前期作為輔助研究的 典型定性分析模型。

          KANO 模型的目的是通過對用戶的不同需求進行區分處理,了解不同層次的用戶需求,幫助企業找出提高產品用戶滿意度的切入點,或者識別出使用戶滿意至關重要的因素。

          但需求會因人而異,會因文化差異而不同; 也會隨著時間變化??赡芮岸螘r間的期望型需求,甚至興奮型需求,到如今已變成了基礎型需求。所以作為產品設計者,我們應該持續調研需求,對產品進行迭代優化。

          BI PUBLISHER RTF模板制作PIVOT表和重分組

          seo達人

          重分組介紹

          語法:<?for-each-group: BASE-GROUP;GROUPING-ELEMENT?>

          用法:重分組可以把XML數據做重新分組,這樣數據的展示就不一定必須按照XML數據的結構顯示。例如原來的XML數據結構是CD類別->CD信息(名稱,年份,國家,價格),我們可以用重分組功能按CD年份->CD國家來顯示.



          重分組應用

          1 按照和XML數據不同的結構顯示數據

          XML數據格式如下:



          <CATALOG>

             <CD>

                <TITLE>Empire Burlesque</TITLE>

                <ARTIST>Bob Dylan</ARTIST>

                <COUNTRY>USA</COUNTRY>

                <COMPANY>Columbia</COMPANY>

                <PRICE>10.90</PRICE>

                <YEAR>1985</YEAR>

             </CD>

          。。。。。

          </CATALOG>



          報表打算按照國家和年份重新分組,用到的重分組如下:



          <?for-each-group:CD;COUNTRY?>

          <?for-each:current-group();YEAR?> 

          1

          2

          這里的current-group()表示當前COUNTRY組下的子分組



          2 顯示PIVOT報表

          XML數據如下:



          <ROWSET>

          <RESULTS>

           <INDUSTRY>Motor Vehicle Dealers</INDUSTRY>

           <YEAR>2005</YEAR>

           <QUARTER>Q1</QUARTER>

           <SALES>1000</SALES>

          </RESULTS>

          <RESULTS>

           <INDUSTRY>Motor Vehicle Dealers</INDUSTRY>

           <YEAR>2005</YEAR>

           <QUARTER>Q2</QUARTER>

           <SALES>2000</SALES>

          </RESULTS>

          <RESULTS>

           <INDUSTRY>Motor Vehicle Dealers</INDUSTRY>

           <YEAR>2004</YEAR>

           <QUARTER>Q1</QUARTER>

           <SALES>3000</SALES>

          </RESULTS>

          。。。。

                   

          </ROWSET>



          如果想按年份生成PIVOT表,可以用如下TAG實現:



          <?for-each-group@column:RESULTS;YEAR?>

          <?YEAR?>

          <?end for-each-group?>

          <?for-each-group:RESULTS;INDUSTRY?>

          <?for-each-group@cell:current-group();YEAR?>

          <?sum(current-group()//SALES)?>

          <?end for-each-group?>

          <?end for-each-group?>



          這里的@cell是給每個組生成一個CELL




          深入理解vue中的slot與slot-scope

          seo達人

          寫在前面

          vue中關于插槽的文檔說明很短,語言又寫的很凝練,再加上其和methods,data,computed等常用選項使用頻率、使用先后上的差別,這就有可能造成初次接觸插槽的開發者容易產生“算了吧,回頭再學,反正已經可以寫基礎組件了”,于是就關閉了vue說明文檔。

          實際上,插槽的概念很簡單,下面通過分三部分來講。這個部分也是按照vue說明文檔的順序來寫的。

          進入三部分之前,先讓還沒接觸過插槽的同學對什么是插槽有一個簡單的概念:插槽,也就是slot,是組件的一塊HTML模板,這塊模板顯示不顯示、以及怎樣顯示由父組件來決定。 實際上,一個slot最核心的兩個問題這里就點出來了,是顯示不顯示怎樣顯示。

          由于插槽是一塊模板,所以,對于任何一個組件,從模板種類的角度來分,其實都可以分為非插槽模板插槽模板兩大類。
          非插槽模板指的是html模板,指的是‘div、span、ul、table’這些,非插槽模板的顯示與隱藏以及怎樣顯示由插件自身控制;插槽模板是slot,它是一個空殼子,因為它顯示與隱藏以及最后用什么樣的html模板顯示由父組件控制。但是插槽顯示的位置確由子組件自身決定,slot寫在組件template的哪塊,父組件傳過來的模板將來就顯示在哪塊

          單個插槽 | 默認插槽 | 匿名插槽

          首先是單個插槽,單個插槽是vue的官方叫法,但是其實也可以叫它默認插槽,或者與具名插槽相對,我們可以叫它匿名插槽。因為它不用設置name屬性。

          單個插槽可以放置在組件的任意位置,但是就像它的名字一樣,一個組件中只能有一個該類插槽。相對應的,具名插槽就可以有很多個,只要名字(name屬性)不同就可以了。

          下面通過一個例子來展示。

          父組件:

           
          
          1. <template>
          2. <div class="father">
          3. <h3>這里是父組件</h3>
          4. <child>
          5. <div class="tmpl">
          6. <span>菜單1</span>
          7. <span>菜單2</span>
          8. <span>菜單3</span>
          9. <span>菜單4</span>
          10. <span>菜單5</span>
          11. <span>菜單6</span>
          12. </div>
          13. </child>
          14. </div>
          15. </template>

          子組件:

           
          
          1. <template>
          2. <div class="child">
          3. <h3>這里是子組件</h3>
          4. <slot></slot>
          5. </div>
          6. </template>

          在這個例子里,因為父組件在<child></child>里面寫了html模板,那么子組件的匿名插槽這塊模板就是下面這樣。也就是說,子組件的匿名插槽被使用了,是被下面這塊模板使用了。

           
          
          1. <div class="tmpl">
          2. <span>菜單1</span>
          3. <span>菜單2</span>
          4. <span>菜單3</span>
          5. <span>菜單4</span>
          6. <span>菜單5</span>
          7. <span>菜單6</span>
          8. </div>

          最終的渲染結果如圖所示:


           
          
          1. 注:所有demo都加了樣式,以方便觀察。其中,父組件以灰色背景填充,子組件都以淺藍色填充。

          具名插槽

          匿名插槽沒有name屬性,所以是匿名插槽,那么,插槽加了name屬性,就變成了具名插槽。具名插槽可以在一個組件中出現N次。出現在不同的位置。下面的例子,就是一個有兩個具名插槽單個插槽的組件,這三個插槽被父組件用同一套css樣式顯示了出來,不同的是內容上略有區別。

          父組件:

           
          
          1. <template>
          2. <div class="father">
          3. <h3>這里是父組件</h3>
          4. <child>
          5. <div class="tmpl" slot="up">
          6. <span>菜單1</span>
          7. <span>菜單2</span>
          8. <span>菜單3</span>
          9. <span>菜單4</span>
          10. <span>菜單5</span>
          11. <span>菜單6</span>
          12. </div>
          13. <div class="tmpl" slot="down">
          14. <span>菜單-1</span>
          15. <span>菜單-2</span>
          16. <span>菜單-3</span>
          17. <span>菜單-4</span>
          18. <span>菜單-5</span>
          19. <span>菜單-6</span>
          20. </div>
          21. <div class="tmpl">
          22. <span>菜單->1</span>
          23. <span>菜單->2</span>
          24. <span>菜單->3</span>
          25. <span>菜單->4</span>
          26. <span>菜單->5</span>
          27. <span>菜單->6</span>
          28. </div>
          29. </child>
          30. </div>
          31. </template>

          子組件:

           
          
          1. <template>
          2. <div class="child">
          3. // 具名插槽
          4. <slot name="up"></slot>
          5. <h3>這里是子組件</h3>
          6. // 具名插槽
          7. <slot name="down"></slot>
          8. // 匿名插槽
          9. <slot></slot>
          10. </div>
          11. </template>

          顯示結果如圖:


          可以看到,父組件通過html模板上的slot屬性關聯具名插槽。沒有slot屬性的html模板默認關聯匿名插槽。

          作用域插槽 | 帶數據的插槽

          最后,就是我們的作用域插槽。這個稍微難理解一點。官方叫它作用域插槽,實際上,對比前面兩種插槽,我們可以叫它帶數據的插槽。什么意思呢,就是前面兩種,都是在組件的template里面寫

           
          
          1. 匿名插槽
          2. <slot></slot>
          3. 具名插槽
          4. <slot name="up"></slot>

          但是作用域插槽要求,在slot上面綁定數據。也就是你得寫成大概下面這個樣子。

           
          
          1. <slot name="up" :data="data"></slot>
          2. export default {
          3. data: function(){
          4. return {
          5. data: ['zhangsan','lisi','wanwu','zhaoliu','tianqi','xiaoba']
          6. }
          7. },
          8. }

          我們前面說了,插槽最后顯示不顯示是看父組件有沒有在child下面寫模板,像下面那樣。

           
          
          1. <child>
          2. html模板
          3. </child>

          寫了,插槽就總得在瀏覽器上顯示點東西,東西就是html該有的模樣,沒寫,插槽就是空殼子,啥都沒有。
          OK,我們說有html模板的情況,就是父組件會往子組件插模板的情況,那到底插一套什么樣的樣式呢,這由父組件的html+css共同決定,但是這套樣式里面的內容呢?

          正因為作用域插槽綁定了一套數據,父組件可以拿來用。于是,情況就變成了這樣:樣式父組件說了算,但內容可以顯示子組件插槽綁定的。

          我們再來對比,作用域插槽和單個插槽和具名插槽的區別,因為單個插槽和具名插槽不綁定數據,所以父組件是提供的模板要既包括樣式由包括內容的,上面的例子中,你看到的文字,“菜單1”,“菜單2”都是父組件自己提供的內容;而作用域插槽,父組件只需要提供一套樣式(在確實用作用域插槽綁定的數據的前提下)。

          下面的例子,你就能看到,父組件提供了三種樣式(分別是flex、ul、直接顯示),都沒有提供數據,數據使用的都是子組件插槽自己綁定的那個人名數組。

          父組件:

           
          
          1. <template>
          2. <div class="father">
          3. <h3>這里是父組件</h3>
          4. <!--第一次使用:用flex展示數據-->
          5. <child>
          6. <template slot-scope="user">
          7. <div class="tmpl">
          8. <span v-for="item in user.data">{{item}}</span>
          9. </div>
          10. </template>
          11. </child>
          12. <!--第二次使用:用列表展示數據-->
          13. <child>
          14. <template slot-scope="user">
          15. <ul>
          16. <li v-for="item in user.data">{{item}}</li>
          17. </ul>
          18. </template>
          19. </child>
          20. <!--第三次使用:直接顯示數據-->
          21. <child>
          22. <template slot-scope="user">
          23. {{user.data}}
          24. </template>
          25. </child>
          26. <!--第四次使用:不使用其提供的數據, 作用域插槽退變成匿名插槽-->
          27. <child>
          28. 我就是模板
          29. </child>
          30. </div>
          31. </template>

          子組件:

           
          
          1. <template>
          2. <div class="child">
          3. <h3>這里是子組件</h3>
          4. // 作用域插槽
          5. <slot :data="data"></slot>
          6. </div>
          7. </template>
          8. export default {
          9. data: function(){
          10. return {
          11. data: ['zhangsan','lisi','wanwu','zhaoliu','tianqi','xiaoba']
          12. }
          13. }
          14. }

          結果如圖所示:

          github

          以上三個demo就放在GitHub了,有需要的可以去取。使用非常方便,是基于vue-cli搭建工程。

          https://github.com/cunzaizhuyi/vue-slot-demo


          輕量、簡易、高逼格的博客 hexo

          seo達人

          hexo  pc機上的配置 (一切操作都是在git bash)

          安裝git

           



          安裝nodejs

           



          安裝hexo

          備注:用 npm 安裝話經常出現卡住而導致無法正常安裝,解決辦法就是修改 npm 的安裝源,



          這里選擇淘寶 NPM 鏡像,這是一個完整 npmjs.org 鏡像,你可以用此代替官方版本,同步頻



          率目前為 10分鐘 一次以保證盡量與官方服務同步。



               npm config set registry https://registry.npm.taobao.org



          創建 你的Hexo 目錄

                 mkdir "your hexo dir name"



                 //創建一個自定義的hexo目錄,比如我就在用戶根目錄創建了一個myhexo文件夾(macOS)



                 cd "your hexo dir name" //進入到剛剛創建的目錄



            安裝 hexo-cli

                  npm install -g hexo-cli



            初始化該文件夾

                  hexo init



            安裝hexo的擴展插件

                  npm install



              等執行成功以后安裝兩個插件, hexo-deployer-git 和 hexo-server ,這倆插件的作用分別是使用Git自動部署,和本地簡單的服務器。

                 npm install hexo-deployer-git --save

                 npm install hexo-server --save



           



              到這里hexo的本地搭建已經基本結束了。

              打開hexo

                 hexo g



                 hexo server



           git用戶

          創建以用于提交

                  git config --global user.name "yourname"    

                  git config --global user.email "youremail



           生成ssh公鑰密鑰

                 cd ~/.ssh

                 ssh-keygen -t rsa -C "你的email"



          -----------------------------------------------------------------------------------------------------------------

          linux (ubuntu + 阿里云)  服務器上的配置

           安裝nginx

          切換至root用戶

                 sudo su root

                 apt-get install nginx



              查看nginx版本

                   nginx -v



              啟動nginx

                 service nginx start



              可以查看nginx的端口號

                  ps -aux | grep nginx



              啟動后,在網頁重輸入ip地址,即可看到nginx的歡迎頁面。至此nginx安裝成功

                  cd /etc/nginx

                  vim sites-available/default 



              因為我們是拿nginx做 Web 服務器,所以我們需要安裝部署好nginx,我們可以專門為hexo創建一個部署目錄,比如我創建了/home/xufushen/hexo文件夾,并把nginx的配置文件nginx.conf中的部署目錄改為/home/xufushen/hexo,配置文件在/etc/nginx/conf里;同樣可以使用默認目錄,nginx的默認目錄為/var/www/html.











           安裝node.js

                  curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -

                  apt-get install -y nodejs



           安裝git

                    apt-get install -y git



           創建一個git用戶

                   sudo adduser git



              雖說現在的倉庫只有我們自己在使用,新建一個 git 用戶顯得不是很有必要,但是為了安全起見,還是建議使用單獨的 git 用戶來專門運行 git 服務



           添加證書登入

                  mkdir .ssh

                  mkdir authorized_keys



              剛在在本地創建或者已經擁有的公鑰,也就是 ~/.ssh/id_rsa.pub 文件里的內容添加到服務器的 /home/git/.ssh/authorized_keys 文件中,如上所說,添加公鑰之后可以防止每次 push 都輸入密碼。  (使用Xftp軟件直接將文件拖入)







           初始化 Git 倉庫

          可以將git倉庫放到自定義位置,我是將其放在 /xufushen/blog/ 目錄下的

                  sudo mkdir /xufushen/blog/

                  cd /xufushen/blog/

                  git init --bare blog.git



           使用 --bare 參數,Git 就會創建一個裸倉庫,裸倉庫沒有工作區,我們不會在裸倉庫上進行操作,它只為共享而存在。



           配置 git hooks

          我們這里要使用的是 post-receive 的 hook,這個 hook 會在整個 git 操作過程完結以后被運行.關于hooks的內容詳情點擊這里



          在 blog.git/hooks 目錄下新建一個 post-receive 文件

                  cd /var/repo/blog.git/hooks



              編輯這個文件

                  vim post-receive



              設置這個文件的可執行權限

                  chmod +x post-receive



           改變 blog.git 目錄的擁有者為 xufushen 用戶

              chown -R xufushen:gxufushenit blog.git



           禁用 xufushen 用戶的 shell 登錄權限

          出于安全考慮,我們要讓 xufushen 用戶不能通過 shell 登錄??梢跃庉?/etc/passwd 來實現



                 vim /etc/passwd

                  #將

                  git:x:1001:1001:,,,:/home/git:/bin/bash

                  #改成

                git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell



          這樣 xufushen 用戶可以通過 ssh 正常使用 git,但是無法登錄 shell。    至此,服務器環境的搭建已經基本結束。



          配置本地_config.yml文件,完成自動化部署 

          配置 hexo 的 deploy

              修改 hexo 目錄下的 _config.yml 找到 deploy, 修改為:

             deploy:

                  ype: git

                  repo: xufushen@47.100.184.175:/home/xufushen/blog/blog.git

                     branch: master

              repo的地址為你自己的地址以及 git 倉庫目錄







          使用hexo blog

              新建文章:

                  hexo new "post name"



              生成 & 部署:

                  hexo clean && hexo g && hexo d







          -------------------------------------------------------------------------------------------------------------------------------------------------------------------------



          在搭建的過程遇到的問題

           連到服務器后無法連接到repository           



          這是因為你在創建blog.git與hexo文件時要把的歸屬用戶與用戶組更改為創建的用戶


          UML:類圖關系總結

          seo達人

          UML類圖幾種關系的總結,泛化 = 實現 > 組合 > 聚合 > 關聯 > 依賴
          在UML類圖中,常見的有以下幾種關系: 泛化(Generalization), 實現(Realization),關聯(Association),聚合(Aggregation),組合(Composition),依賴(Dependency)

          1. 泛化(Generalization)
            【泛化關系】:是一種繼承關系,表示一般與特殊的關系,它指定了子類如何特化父類的所有特征和行為。例如:老虎是動物的一種,即有老虎的特性也有動物的共性。

            【箭頭指向】:帶三角箭頭的實線,箭頭指向父類

          在這里插入圖片描述

          1. 實現(Realization)
            【實現關系】:在這里插入圖片描述是一種類與接口的關系,表示類是接口所有特征和行為的實現.

            【箭頭指向】:帶三角箭頭的虛線,箭頭指向接口
            在這里插入圖片描述

          2. 關聯(Association)
            【關聯關系】:是一種擁有的關系,它使一個類知道另一個類的屬性和方法;如:老師與學生,丈夫與妻子關聯可以是雙向的,也可以是單向的。雙向的關聯可以有兩個箭頭或者沒有箭頭,單向的關聯有一個箭頭。

            【代碼體現】:成員變量

            【箭頭及指向】:帶普通箭頭的實心線,指向被擁有者
            在這里插入圖片描述

          上圖中,老師與學生是雙向關聯,老師有多名學生,學生也可能有多名老師。但學生與某課程間的關系為單向關聯,一名學生可能要上多門課程,課程是個抽象的東西他不擁有學生。

          1. 聚合(Aggregation)
            【聚合關系】:是整體與部分的關系,且部分可以離開整體而單獨存在。如車和輪胎是整體和部分的關系,輪胎離開車仍然可以存在。

            聚合關系是關聯關系的一種,是強的關聯關系;關聯和聚合在語法上無法區分,必須考察具體的邏輯關系。

            【代碼體現】:成員變量

            【箭頭及指向】:帶空心菱形的實心線,菱形指向整體

          在這里插入圖片描述
          小技巧:空心菱形表示聚合,好聚好散,所以生命周期可以不同。

          1. 組合(Composition)
            【組合關系】:是整體與部分的關系,但部分不能離開整體而單獨存在。如公司和部門是整體和部分的關系,沒有公司就不存在部門。

            組合關系是關聯關系的一種,是比聚合關系還要強的關系,它要求普通的聚合關系中代表整體的對象負責代表部分的對象的生命周期。
            【代碼體現】:成員變量

          【箭頭及指向】:帶實心菱形的實線,菱形指向整體
          在這里插入圖片描述

          1. 依賴(Dependency)
            【依賴關系】:是一種使用的關系,即一個類的實現需要另一個類的協助,所以要盡量不使用雙向的互相依賴.

            【代碼表現】:局部變量、方法的參數或者對靜態方法的調用

            【箭頭及指向】:帶箭頭的虛線,指向被使用者
            在這里插入圖片描述

          各種關系的強弱順序:

          泛化 = 實現 > 組合 > 聚合 > 關聯 > 依賴 
          
          • 1

          下面這張UML圖,比較形象地展示了各種類圖關系:
          在這里插入圖片描述

          中臺組件設計指南:系統布局

          資深UI設計者

          本篇文章將分享 Web 端系統布局,從基本布局初識、網格、布局模塊到柵格進行完整鏈路內容整合,以簡單易懂的案例與大家進行探討。

          在以往的學習過程中,我發現市面上大部分文章對于 Web 端系統布局內容講的比較籠統,一般提及較多的是網頁柵格相關的內容,但是一些關聯性和原子結構等相關內容較少。比如,了解布局時應該需要了解哪些方法論?什么是網格?網格與柵格之間是什么關系?柵格與布局之間是什么關系等。我會從這些缺失出發,結合工作經驗與實際案例為大家進行分享。

          用戶在操作系統時所看到的頁面框架其實就是系統布局,它是一個產品最外層的框架結構,一般包含了頂部導航、側邊導航欄、面包屑、圖文、卡片、內容等元素。

          對于設計師而言,想要了解一個中臺,首先要了解它的系統布局,系統布局是頁面設計的基礎,它與頁面的關系,就如同建筑與地基的關系。日常完成需求時,UI 界面反復的調試頁面寬度與卡片比例會占用我們大量的時間。為了提高工作效率,并且把更多的時間放在業務、視覺創新等方面,我們就應該需要一套完整的布局規范。

          對整個公司產品體系而言,內部員工與普通用戶使用的操作系統達到幾十甚至上百個,單一的頁面布局滿足不了各個子項目的使用場景。所以我們從前期的布局框架設計調研到產品業務的特性,定義了中臺界面的幾大類型,并且在我們的設計規范中定義了幾大類型系統布局方式,根據其布局方式定制好柵格,方便日后在各個業務場景中使用,從而能夠保持一致性、并且可擴展,方便快速迭代和維護。

          了解布局

          1. 布局方法論

          視覺層次

          對于中臺的 UI 設計師們而言,良好的理性思維相對比感性的視覺思維更加重要,因為在 UI 設計師設計頁面時需要把很多互不相關的元素有秩序的組織在一起,正確引導用戶操作與使用。亨利·亞當斯(Henry Adams)曾經說過:「混沌是自然法則,秩序是人類的夢想」。人們總是喜歡秩序,因為秩序可以讓事情變得更容易理解。這同樣適用于數字產品的用戶界面,當 UI 元素被有序組合和結構化時,人們可以輕松的使用應用程序和網站,并對產品感到滿意,所以設計頁面時需要結合視覺層次理論。視覺層次理論是設計過程的核心方法之一。最初是建立在格式塔原理的基礎上,它觀察到了用戶對相互關聯元素的視覺感知,并展示了人們如何將視覺元素歸為一類。那么什么是視覺層次呢?官方概括:視覺層次結構致力于一種用戶能夠理解的方式呈現產品的內容,以便用戶可以理解每個元素的重要性級別。它可以組織頁面內容,以便大腦可以根據物理差異例如:大小,顏色,對比度,樣式等區分對象。

          蘋果的設計一直以來都是引領著設計趨勢,其設計被國內外用戶所認可,所以就以蘋果官網作為案例。其中,字重對比:蘋果官網在字重上給人眼前一亮的感覺,它采用 Medium+Bold 的字重使得標題與詳情內容產生強烈的大小對比,用戶進入官網的第一眼便能了解核心內容。顏色對比:在顏色上使用黑色背景承托產品和內容,強烈的黑白對比增強了信息傳播中的識別度和對比度。圖文排版:在圖片與文字排版中使用了文字層和圖片層互相疊加的視覺效果,使得頁面層次感更加的豐富。如下圖:

          格式塔理論

          往往用戶打開頁面進行閱讀或者操作界面時視覺的第一感受是產品的整體效果,而并不會感知到一些較細節的元素。往宏觀來講當人們感知到一個物體由許多元素組成的復雜對象時,人們會采用有意識或無意識的方法將這些部分安排到整個組織的系統中,而不只是簡單的元素級。它適用于不同級別的感知,但是視覺部分似乎是設計師設計界面時最能體現價值的部分,這其實就是格式塔理論,格式塔(Gestalt)這個術語來自德語單詞 Gestalt,中文翻譯為「形狀,形式」。

          格式塔心理學家庫爾特·科夫卡(Kurt Koffka)的一句話可以捕捉到這一運動背后的基本思想:「整體不是元素基因的總和」。官網概括:「在心理現象中,人們對客觀對象的感受源于整體關系而非具體元素,也就是說知覺不是感覺元素的總和,而是一個統一的整體,部分之和不等于整體,因此整體不能分割」。格式塔理論中元素之知見的原則分別為臨近,相似,連續,封閉和連接。

          在我們的現實生活中有很多自然規律都遵守了格式塔原則,比如說每到秋天,北方的嚴寒氣候不再適合大雁生存,這時候大雁便會飛往較暖和的南方,當人們看到天空正在南飛的大雁隊伍,它們組織鏈接得十分嚴密,并且群體在往同一個方向移動,所以隊伍的形狀在我們的大腦中將它們視為一個群組的一部分,產生人字形或一字形的圖形。

          信息框架

          剛剛我們也介紹了視覺層級結構和格式塔理論,接下來簡單介紹一下信息框架,它也是在系統布局中需要考慮的內容。信息框架是將信息內容進行組織分層,一個產品的信息框架取決于其特有的業務,他與業務強相關并且需要了解用戶群體目標。根據業務和用戶目標將內容組織搭建信息框架,形成系統布局的骨架,方便用戶在瀏覽或操作頁面時能夠快速找到重點內容,提升用戶使用效率。我們用今日頭條 Web 端和飛書 Web 端兩個線上產品作為案例分析吧,今日頭條和飛書屬于兩種完全不同類型的產品,那么其信息架構也完全不同。

          今日頭條屬于門戶類新聞客戶端,主要是生產內容展現給用戶,首先進入到產品映入眼簾的是無窮式的信息流,它不需要用戶登錄/注冊作為身份門檻,而是直觀的把內容展示給用戶,推送用戶感興趣的內容,也不需要用戶決策任何選擇,用戶只需沉浸式的閱讀體驗即可,目的是方便第一時間抓取用戶、吸引用戶達到留住用戶的目的。當用戶產生興趣以后想要進入下一步操作如:點贊、評論時才會彈出登錄/注冊,一方面是獲取用戶的身份等信息,另一方面是間接性的把用戶留下來。從產品業務屬性來看,今日頭條的布局把重要的內容放入中間,并且占有整個布局的一半大小,其次放在內容兩側;

          飛書屬于工具協作類產品,用戶第一次打開產品需要注冊才能使用。與新聞閱讀類產品不同的是工具類型產品用戶目的比較明確,所以首頁做成一個功能介紹頁面,作用是引導用戶了解產品核心功能從而轉化成產品的用戶。當然功能介紹頁也是一個網站的門面,首頁想要出彩,不僅需要在布局上做的合理還需要考慮網站的色彩、插圖等元素的統一性。在設計網站時,首頁的功能介紹頁一定要充分突出自身產品特色,強調出自身產品的優勢和亮點,如飛書首頁主要是想突出其產品能夠提高工作效率,所以直接把「在飛書,享」slogan 這句話放在了首頁的第一屏,輔助文案詳細的介紹了產品的核心功能,直接抓住用戶的痛點。用戶完成注冊以后,進入到功能頁面,如右下圖可以看出,其系統布局的模塊分成三份,占面積最大的模塊屬于產品最核心的部分也就是聊天窗口,較重要部分是聯系人部分,最小區域是功能 Tab 部分。

          小結

          所以對于設計師而言,在設計頁面時必須熟練掌握一些基本設計基礎知識,并且將這些知識靈活運用到實際的工作當中。比如設計師在搭建系統布局時需要熟知頁面視覺層次、格式塔理論、信息框架等知識才可創建合理的布局基礎。當然布局框架只是整個產品的基礎骨架,在骨架確定之后,設計師才可進行下一步的設計,如統一的視覺表達元素,清晰的功能操作,流暢的交互表達。

          2. 布局的設計原則

          系統布局規范,需要通過統一的設計元素和間距規范去引導使用者們(使用規范的設計師)跨平臺使用并且能夠適配不同屏幕尺寸,目的是達到一致性,可適配、可控性原則。

          一致性:對于界面來講,界面中的元素和結構需要保持一致性,如:在使用布局時應當使用一致的網格,基準線和填充,在使用設計元素時配色、圖標、文本等需保持一致。

          可適配:布局是可自適應的,根據用戶在不同的設計環境下能夠通過交互動效、界面樣式有效作出適配反應。用戶操作后需給出即時反應。

          可控性:當用戶看到界面時應直觀有效傳遞內容,如界面中模塊區域明確、內容組織明確、表意明確都能使得用戶快速理解。界面需要簡單直白,讓用戶快速識別,減少用戶記憶負擔。

          3. 適配方案

          在設計過程中,為了減少設計師們的日常溝通和理解成本,在設計內部我們統一了一套設計畫板尺寸為 1280。經過我們官方調研得出在中臺系統中用戶使用的電腦屏幕主流分辨率分別為:1440*900、1366*768、1920*1080、1280*800,而1280 是主流分辨率中最小且最為保險的的一個尺寸,在設計頁面時設計師如果能夠在 1280 尺寸下,縮小寬度或拉升頁面寬度都能保證沒有遮擋或擠壓問題,那么設計是合理的。在我們的規范中頁面再小于 1280 時需要吊起系統的橫向滾動條。在中臺系統中考慮到用戶效率問題很少做響應式,所以常規情況下設計師會限定界面的一個最小值。如果設計師把畫板設置為 1440 或者 1366 時可能會存在其在畫板中頁面大小正好合適,但是頁面上線以后縮小瀏覽器可能會發生遮擋或擠壓的情況。所以我們建議設計師們使用 1280 寬度畫板畫圖。

          4. 框架

          首先先分析一下界面框架,我們將頁面的用戶操作行為進行層級區分。我們至下而上將元素進行層級分層,目的是把用戶界面模塊化。界面可分成背景區域、內容層、全局控制層、內容彈層,每一層都具備獨特性,將界面中所有的信息層級提取分類并且按結構屬性分層,目的是能夠使得頁面視覺和交互邏輯符合用戶的習慣認知。之前我們有提到過視覺層次、格式塔理論和信息框架,設計師在創建這一步的時候可以用來指導搭建一套合理的頁面信息層級,一個內容模塊都屬于一個容器,容器可以承載各種內容元素。

          背景層

          背景層樣式固定,在界面中永遠置于界面底部,并且一般會給予背景層中性色,作用是方便突出內容層和全局控制層。

          內容層

          視圖結構中最核心和復雜的一層,他與業務強相關,內容層的容器承載了業務場景的用戶需要獲取的核心信息以及輔助核心任務的操作。容器承載了內容,從 Material Design 中的 Elevation(海拔)概念中可以了解到,它屬于第二層級內容,基本布局結構有平行結構或者父子結構。如下圖卡片屬于容器,卡片中承載了數據圖表等內容,整個卡片+內容就屬于內容層。

          全局控制層

          全局控制層我們定義他在內容層之上,屬于頁面第三層級內容,一般在業務場景中對整個網站的控制以及導航功能如:Header menu、Sidebar menu 組件,如下圖中 Header menu 浮在內容層之上。

          內容彈層

          當前任務或者內容相關的臨時出現層,優先級高于內容層,一般承載當前需要臨時處理的任務或者需要進行內容補充說明等功能。如:Modal(Dialog 各個平臺叫法不一致)、Tooltip、Popover、Notification 等組件 。其中 Modal 是以滑出或者彈出的形式展現給用戶。Modal 它包括兩種類型,一種是模態內容層不可操控,被蒙版遮罩禁用,比如在業務中需要較為聚焦的分支流程操作時使用。另一種是非模態,吊起彈出層后不印象內容層操作。當然,Tooltip、Popover、Notification 都屬于非模態,反饋較輕,不干擾用戶使用界面。如下圖的頁面中的內容彈層使用了 Popover,在次頁面它的功能就是加以補充說明。

          網格基礎

          1. 單位

          隨著科技高速發展,屏幕分辨率也越來越多樣化對于 UI/UX 設計師來講必須熟練的基本知識方便日常工作所需。首先我們先了解一下屏幕中的一些單位。

          • 「PX」pixel,像素,大多數電子設備成像的基本單元,同樣尺寸的屏幕成像單元越細小、越密集的屏幕,分辨率就越高;
          • 「PT」point,點,這個單位,就同時出現在 iOS、CSS、還有傳統的平面設計里,與 px 相比 px 是相對單位而 pt 絕對單位,如在設計稿中如果導出一倍圖 1px=1pt 那么導出二倍圖就是 2px=1pt,它是一個絕對長度,為1/72英寸;
          • 「PPI」pixel per inch,每英寸像素數,決定電子設備的物理顯示尺寸,只有涉及到顯示才有意義。該值越高,則屏幕越細膩;
          • 「DPI」dot per inch,與PPI一致,唯一區別是它表示每英寸多少點,該值越高,則圖片越細膩;
          • 「DP」density-independent pixel,是安卓開發用的長度單位,1dp等于屏幕像素密度為 160ppi 時 1px 的長度,因此dp 在整個系統大小中是固定的。
          • 「SP」scale-independent pixel,安卓開發用的字體大小單位,可以認為 SP=DP。
          2. 像素密度

          在高密度屏幕下每英寸具有比低密度屏幕更多的像素,可能導致開發實現稿的視覺不符合設計師心理預期,比如:相同像素尺寸的 UI 元素在低密度屏幕上顯得較模糊,而在高密度屏幕上則比較清楚。同一物理尺寸(肉眼所見尺寸)下,低密度顯示器的像素個數明顯小于高密度顯示器的像素個數。

          其實像素是與密度沒有關聯,我們簡稱密度為 DP (讀作 DIP,英文全稱 Density-independent pixel ),它是可縮放的靈活單位,可在任何屏幕下現實相同的尺寸,如圖顯示,紅色網格為像素密度,被放大內容為 UI 元素物理尺寸。

          所以我們可以得出,DP 可以自適應屏幕的密度,不管屏幕密度怎么變化,實際顯示的物理尺寸相同,DP 可以保證物理尺寸的一致性,所以 DP 是目前比較適合 UI 設計的單位。當屏幕的密度為 160 的一個物理像素時,1PD=1PX。要計算屏幕密度,可以使用以下公式得出:DP=(PX*160)/PPI。

          3. 網格

          關于網格

          網格線(Grid Line),網格線又稱布局分割線,它是構成網格結構的分界線。一般在布局中它們是由行網格線和列網格線組成。如下圖是模擬網格做了一個示意,其中橘黃色兩根線分別是行網格線和列網格線。

          網格軌道(Grid Track),兩個相鄰網格線之間的空間。你可以把它們想像成網格的行或列。如下圖橘黃色的行網格線和列網格線之間的空間既是網格軌道。

          網格單元格(Grid Cell),兩個相鄰的行網格線和兩個相鄰的列網格線之間的空間屬于網格單元格。這是網格系統的一個「單元」。如下圖橘黃色的行網格線和列網格線交叉處即是網格單元格。

          網格區域(Grid Area),由單個或多個網格單元格組成,它是可以用來擺放頁面元素。如下圖所示,橘黃色的行網格線和列網格線交叉處即是網格區域。

          網格設置

          在設計界面時可以通過網格定制能夠使界面更加有序、整齊、規范,網格的主要用途之一是保持設計元素對齊和排序。通過建立一個網格系統,設計師可以為自己創建一個結構來適配不同的屏幕寬度。

          在我制定的規范中一般會把網格的基數設置為 4,它不僅符合偶數的思路同時也能夠匹配多數主流的顯示設備,如中臺系統的用戶主流分辨率用 1440*900、1366*768、1280*800。我們可以通過設置網格規范幫助設計師快速搭建頁面,使用有律可循的布局空間的設計給到開發減少溝通成本。下圖所示設計布局網格由三個元素組成:列寬,間距,邊距。

          在 Sketch 中設置網格,在菜單欄中找「視圖」-「畫布」-「網格設置」-彈出浮層可設置網格大小,網格設置的基數設置成4,之后在設計界面時可按照網格基礎的倍數作為組件的大小和頁面元素間距分割,如下圖:

          我們放大頁面局部大家可以看到,把網格基數設置成 4,每個網格單元格為 4*4 大小。同理,如果把網格基數設置成 8 以后,每個網格單元格大小為 8*8 大小。

          定義布局模塊

          界面框架內系統布局是頁面所有模塊的組合方式,我們定義一個頁面框架中基礎模塊和內容模塊的數量最好不超過 3 個。經過調研和歸納總結出 3 大布局類型,分別是上下布局、左右布局、T 字型布局。

          1. 上下布局

          上下布局布局是 Web 端運用最廣泛的布局方式之一,頁面內容區以 feed 流形式展現,一般用在 Web 端官網首頁。設計師普遍做法是對兩邊留白區域為內容區并進行最小值的定義,一般定義值為 1200 較多(具體寬度要設計師如何設置柵格,后面會講到如何設置柵格),當留白區域到達極小超過極限值之后需要對中間的內容區域進行動態縮放或遮擋,此邏輯需設計師根據業務所需而定。也有少部分設計師會設計成全屏布局,內容隨瀏覽器寬度自適應。

          其優點是頁面結構清晰簡單,強突出內容區,但缺點是布局的規矩呆板,變化少。設計師如果不注意合理的視覺元素和色彩細節變化,用戶很容易感覺到乏味,此布局適用于層級較為簡單頁面。

          巨量引擎(Ocean Engine)是字節跳動旗下的營銷服務品牌,整合了今日頭條、抖音短視頻、火山小視頻、西瓜視頻、懂車帝、Faceu 激萌、輕顏、穿山甲等產品的營銷能力,為全球廣告主提供綜合的數字營銷解決方案。我在設計此官網時正是采用了上下布局作為頁面布局,頂部導航整合了所有子頁面的內容,導航下方為主要內容區并且內容定寬,當時采用此布局原因第一是因為次官網層級較簡單只有三個層級內容,第二是官網更需要的是突出內容區,所有頁面使用次布局更為合適。

          2. 左右布局

          設計師在設計重內容,輕導航類型網站是常用左右布局作為基礎框架進行頁面設計。此布局把系統頁面分為兩大模塊,其中設計師常見的做法是將左側設置成導航欄模塊并且固定,常常用來控制全局內容。而右側區域設置成工作區域或內容區,內容區可進行動態縮放。

          下圖為飛書溝通窗口截圖,由于關系到內部信息保密性我把內容進行了模糊,從外觀結構上看還是能大致了解飛書結構是采用了左右布局,整個布局結構清晰有理也是符合左右布局特點。從交互體驗分析左側屬于導航區,它承載了不同功能并且固定。飛書屬于即時溝通產品設計師考慮到瀏覽器窗口有限所以對導航設計成較小模塊,而右邊為聊天窗口對于業務屬性分析它更為重要,所以模塊較大。其導航欄固定,內容區可進行動態縮放。

          3. T字型布局

          T 字型布局常用在 Web 端的中臺系統中,因為中臺系統業務結構復雜、層級多,而 T 字型布局能夠解決復雜結構的問題。使用此結構能夠把頁面結構清晰化,主次更加分明。設計師常常的做法是將頂部作為一級導航欄方便控制全局,二左邊設計成是二級導航并且固定導航欄固定,右邊的內區域可進行動態縮放(一般會把其設計成柵格動態區域),內容隨瀏覽器寬度自適應。

          下圖是 Material Design 設計文檔,首先簡單介紹一下 Material Design,它是由谷歌的設計團隊創建的一種語言,宗旨是幫助設計師們創建易用性和實用性較強的網站和應用程序,其設計理念是將現實中的物理學帶入進設計中。Material Design 設計文檔中的結構使用了 T 字型布局作為基礎布局。頁面分為了三個模塊,其中頂部導航作為頁面一級內容進行全局控制,接下來左邊為側邊導航作為二級內容控制頁面,右邊是內容區滿足用戶使用瀏覽。從放眼望去整個頁面架構清晰明了。

          4. 小結

          以上為 Web 最常見的三大布局,但是需要大家在實際的工作中靈活運用。設計師在日常工作中可能會遇到更為特殊的業務場景,設計師可以通過整理基礎模塊然后分析其業務的信息框架,將模塊進行相互組合、嵌套歸納可以總結出更多的 Web端布局框架并落地到業務中。

          網頁柵格

          剛剛在定義布局模塊中已經分析過了三大布局類型,接下要分享的是 UI 設計師更為關注內容「網頁柵格」。網頁柵格也是設計師口中常常提及的柵格系統。其實網頁柵格系統是從平面柵格系統中發展而來,它延續了平面設計的方法與風格,在網頁中使用柵格能夠使得網頁信息展現更加清晰明了、美觀易讀。

          首先網頁柵格系統基本由是柵格總寬度/頁面總寬度(W)、一個柵格的寬度(a)、柵格與柵格之間的間隙(i)、一個單元的寬度(A)、外邊距(M)組成。

          1. 列寬

          一個柵格的寬度(a),我們稱之為列寬,一個列寬包涵了N個網格單元格(Grid Cell)我們也可以把它看成一個網格區域(Grid Area),在上面我們已經講到過網格的內容,主要目的正是為柵格做鋪墊。其中我把一個網格單元格設置為4(原因在網格中也解釋過,如果忘記的同學可以爬樓看下)。由此可見列寬非固定值,這樣可以使內容自由適配任何屏幕尺寸。在柵格中列寬由屏幕尺寸決定。

          2. 水槽

          柵格與柵格之間的間隙(i),我們稱之為水槽,一個水槽寬度大于等于1個網格單元(Grid Cell)。在柵格中水槽為一個定值,寬度可以是N個網格單元,如網格單元格設置成4,那么水槽可以是4、8、12、16…N*4。

          3. 柵格單元

          1個列寬+1個水槽寬度即一個單元的寬度,一個柵格總寬是由N個柵格單元組成,次寬度不固定,由屏幕尺寸決定。

          4. 柵格總寬

          列寬+水槽再成以N即是一個柵格的總寬,公式為:W=(A*n)-i。

          5. 柵格設置

          經過調研我們得出常見的柵格分為 12 列柵格系統和 24 列柵格系統。其中 12 列柵格系統在流行的前端開發開源工具庫Bootstrap 與 Foundation 中廣泛使用,適用于業務信息分組較少、業務結構較簡,單個盒子內信息體積較大的中后臺頁面設計。24 等分的柵格系統適用于業務信息量大、信息分組較多、單個盒子內信息體積較小的中后臺頁面設計;相對 12 柵格系統,24 柵格系統變化更加靈活,更適合內容比較多樣復雜的場景。如下圖分別是 12 柵格系統(左)和 24 柵格系統(右)。

          6. 小結

          在柵格系統結合布局結構和網格做了我做了一些知識結合,其實前面所講的網格版塊和布局版塊都是為柵格做一個鋪墊,利于同學們更加深入的了解網格、布局、柵格三者的關系。

          寫在最后

          系統布局只是網頁中的基礎部分,但也是核心內容,一個產品布局需要根據其業務屬性決定。布局搭的好相當地基打得好,但是同時在對美感的追求之上,還應當結合可用性來看待設計。在實際的工作中肯定還會遇到各種形形色色較奇葩的需求,所以希望這篇文章能夠做的不是限制而是啟發,大家可根據此次分享內容能夠進行舉一反三利用到實際的工作當中。

          文章來源:優設

          日歷

          鏈接

          個人資料

          藍藍設計的小編 http://www.syprn.cn

          存檔

          亚洲va欧美va天堂v国产综合