<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>

          首頁

          CSS-彈性伸縮布局(新版本)

          seo達人

          如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

          使用新版本的彈性伸縮布局
          display使用彈性伸縮盒

          direction容器盒內元素的排列順序

          flex-wrap設置無法容納時,自動換行

          justify-content 伸縮項目的排列方式

          align-items 處理額外空間

          align-self 單獨處理一個伸縮項目的額外空間

          flex 控制伸縮容器的比例分配

          order 設置伸縮項目出現的位置

          dislpay
          值:
          flex 將容器盒作為塊級彈性伸縮盒顯示。
          inline-flex:將容器盒作為內聯級彈性伸縮盒顯示。
          實際現實中 這兩個值沒區別。

          direction
          容器盒內元素的排列順序

          值:
          row:從左到右排列
          row-reverse:從右到左排列
          column:從上倒下排列
          column-reverse從下到上排列

          flex-wrap
          設置無法容納時,自動換行

          值:
          nowrap:不換行
          wrap:自動換行
          wrap-reverse:自動換行,方向和wrap相反

          下圖為正常排序

          使用wrap-reverse后縮小瀏覽器時:


          justify-content
          伸縮項目的排列方式

          值:
          flex-start:伸縮項目以起始點靠齊

          flex-end:伸縮項目以結尾靠齊
          center:以中心點靠齊
          space-between:伸縮項目平均分布
          space-around:同上但兩段保留一般的空間

          實例:使用space-around的排列效果


          align-items
          處理額外空間

          值:
          flex-start:以頂部為基準,清理底部的額外空間
          flex-end:以底部為基準,清理頂部的額外空間
          center:以中間為基準,清理上下部分的額外空間
          baseline:以基線為基準,清理額外的空間
          stretch:伸縮項目填充整個容器,默認值

          align-self
          處理額外空間

          值:與align-items的值一樣,需要用nth-child()設置某一個需要處理的伸縮項目
          flex
          設置伸縮項目分配比例

          p:nth-child(1)
          {
             flex: 1;
          }

          p:nth-child(2)
          {
          flex: 2;
          }
           p:nth-child(3)
          {

          flex: 2;
          }
          p:nth-child(4)
          {
          flex: 1;
          }

          order
          設置伸縮項目出現的位置

          p:nth-child(1)
          {
             order:2;
          }

          p:nth-child(2)
          {
           order:3;
          }
           p:nth-child(3)
          {

           order:4;
          }
          p:nth-child(4)
          {
           order:1;
          }
          --------------------- 
          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務。

          視覺層級強力拆解

          ui設計分享達人

          如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

          自從上一篇發文得到一些發表方向,以后決定以個人獨特的總結以及符合商業的思維邏輯來寫作設計拆解的相關文章教程,前期我還是按大類去詮釋我的整個想法,看看大家的反饋,如果理解門檻還是有很大障礙,我在后期的文章中會再將文章細化出來。


          拆解分類

          拆解1、視覺面積的影響

          拆解2、明度對比的影響

          拆解3、色彩的影響

          拆解4、視覺位置的影響

          拆解5、豐富層度的影響

          拆解6、其他(浮層、常用點、角標、動效)




          拆解1、視覺面積的影響

          視覺面積越大層級越高,而且與比較層的面積倍數有關,參考層如果為1級,那比較層的等級是由和參考層的倍數有關,大一倍那就為2級,大兩倍那就是3級,依次類推。這是美術基礎中的近遠的關系,越靠近的視覺點越大,越靠遠的視覺點越遠,這樣也很容易知道,越近獲得關注越高,越遠越低。

          界面舉例我們告一段落,這里再說一下比較常遇到的文字視覺面積,這塊很容易被忽略,其實文字也是具有視覺面積的,而且有不同的視覺大小。接下來我會將所有可能性都拆解出來。


          同字號大小,不同粗細層度的影響/文字的邊寬形成的格式塔大小就是文字面積,但不一樣的是,文字是線性結構,所以他不是實面,而是虛面,所以它相對于實面來說還是低一個等級,再說回到粗細的層級比較,越粗的文字他是越靠近實面的,所以這就能判斷越粗的文字層級越高這個道理。


          同粗細,同字號大小,一個是有文字底塊,一個沒有,這樣有文字底塊的視覺層級會比沒有文字底塊的視覺層級要高,因為有底塊相當于為實面,這樣就比沒有文字底塊的層級要高了


          同粗細,不同字號大小,這個不難理解,這個不存在實面虛面的概念了,因為都是一樣的粗細,但是這個格式塔大小不一樣,也就是說,格式塔越大的層級越高,字號越大的層級越高。


          拆解2、明度對比的影響

          明度對比越高的視覺點會比明度對比低的視覺點視覺層級要高,這里其實也是美術基礎中的空間的視覺差,越遠的物體越模糊(對比?。?,越近的物體越清晰(對比大)。所以對比大的層級會比對比小的層級會高。(這里插一句,色相也是有明度的,不同的色相也是有不同明度解析,這個可以運用到電商banner的配色上)

          下面來看看文字和背景不同對比度對視覺層級的影響。我們將統一文字大小和粗細,背景為白色。


          拆解3、色彩的影響 

          有色的視覺點總會比無色的視覺點更吸引人,因為色彩也是美術的一類,給沒有色彩的視覺上色是提升視覺體驗的一步。

          文字為例:同等大小同等粗細同等明度的字,有顏色的字體會有更大的關注點。

          拆解4、視覺位置的影響

          給界面一個橫軸和縱軸,從橫軸的左邊到右邊起視覺層級逐漸減弱,從縱軸的上到下邊視覺層級逐漸減弱。這是因為用戶閱讀習慣的問題,人們習慣從左上方開始往右邊閱讀,然后慢慢的往下讀取信息。

          拆解5、豐富層度的影響

          豐富層度越高的視覺層級越高,豐富層度越高的點信息量越大,越需要花時間停留。

          文字為例:設計過的字體豐富層度會比默認字體高,所以有些需要強調的標題或者banner上的字體都是有精心設計過,為了拉開于界面的層級。

          界面為例:界面首頁中的banner是豐富層度最高,其次是金剛區,再是標簽欄。

          拆解6、其他

          除了上訴的主要層級影響,還有其他一些特殊的影響,我這就說兩三個子吧。一個呢是給模塊直接加投影,硬生生的造成前后層級。還有角標的影響,在干凈的頁面中突然來個提示角標,例如微信有消息時的小角標。還一個就是用戶常用關鍵點,那個視覺層級整個產品中的最高層級,這個需要打破所有規則,這個是由用戶主動選擇的視覺層級點,例如電商軟件的搜索框,不管這個搜索框大小如何,層級怎么低都行,但對于用戶進來,第一個渴望的點就是這里,最后是動效的影響,每個動效就是一個互動,動的東西永遠比靜止的東西有活力更加吸引人。

          圖片來源UIGREAT的作者JGM



          總結


          視覺層級的梳理可以很大幅度的提升視覺規范和用戶體驗,通過視覺層級的分析,可以從不同方面去詮釋復雜的頁面,也可以更好的去處理文本關系。

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、網站建設 平面設計服務。


          vue項目 微信支付 和 支付寶支付

          seo達人

          如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

          做了一個項目,有充值功能,充值方式為 微信和支付寶,效果如下:



          代碼:

          <template>
          <el-card class="box-card">
          <ul class="msg-box">
          <li>
          <h4>我要充值</h4>
          </li>
          <li>
          <h4 style="margin-bottom: 15px;">充值金額</h4>
          <el-radio-group v-model="amountVal" @change="amountChange">
          <el-radio border :label="''+ 100">充值100</el-radio>
          <el-radio border :label="''+ 500">充值500</el-radio>
          <el-radio border :label="''+ 1000">充值1000</el-radio>
          <el-radio border :label="''+ 2000">充值2000</el-radio>
          <el-radio border :label="''+ 5000">充值5000</el-radio>
          <el-radio border :label="''">自定義</el-radio>
          </el-radio-group>
          </li>
          <li>
          <h4 style="margin-bottom: 15px;">充值方式</h4>
          <el-radio-group v-model="rechargeParams.paymentType" @change="paymentTypeChange">
          <el-radio border :label="''+ 0">微信</el-radio>
          <el-radio border :label="''+ 1">支付寶</el-radio>
          </el-radio-group>
          </li>
          <li>
          <h4 style="margin-bottom: 15px;">充值金額</h4>
          <el-input :disabled="disabled" clearable v-model="rechargeParams.totalAmt" placeholder="請輸入金額" style="width: 150px;"></el-input>
          </li>
          </ul>
          <div style="text-align: center; margin-top: 30px;">
          <el-button type="primary" @click="surePay">確認支付</el-button>
          </div>
          </el-card>
          </template>
           
          <script>
          export default {
          data() {
          return {
          amountVal: '',
          disabled: false,
          //充值參數
          rechargeParams: {
          "totalAmt": '', //金額
          "paymentType": "0", //支付方式[0:微信,1:支付寶,2:余額,3:活動]
          "transType": "0" //交易類型[0:充值,1:消費]
          }
          }
          },
          methods: {
          //充值金額
          amountChange(val) {
          this.rechargeParams.totalAmt = val;
          if (val == '') {
          this.disabled = false
          } else {
          this.disabled = true
          }
          },
          //支付方式
          paymentTypeChange(val) {
          this.rechargeParams.paymentType = val
          },
          //確認支付
          async surePay() {
          if (this.rechargeParams.totalAmt == '') {
          this.$message.warning('請輸入金額');
          return;
          }
          const res = await this.$http.post('orderInfo/createOrderInfo', this.rechargeParams)
          const {
          code,
          msg,
          result
          } = res.data
          if (code === '200') {
          //支付方式跳轉
          if (this.rechargeParams.paymentType == '0') {
          this.$message.success('微信支付');
          this.wechatPay(result);
          } else if (this.rechargeParams.paymentType == '1') {
          this.$message.success('支付寶支付')
          const payDiv = document.getElementById('payDiv');
          if (payDiv) {
          document.body.removeChild(payDiv);
          }
          const div = document.createElement('div');
          div.id = 'payDiv';
          div.innerHTML = result;
          document.body.appendChild(div);
          document.getElementById('payDiv').getElementsByTagName('form')[0].submit();
          } else if (this.rechargeParams.paymentType == '2') {
          this.$message.success('余額支付成功');
          this.$router.push({
          name: 'order'
          })
          } else {
          this.$message.success('活動支付')
          }
          } else if (code === 401) {
          this.$message.error(msg)
          this.$router.push({
          name: 'login'
          })
          } else {
          this.$message.error(msg)
          }
          },
          //微信支付
          wechatPay(result) {
          if (result) {
          const orderParams = JSON.parse(result);
          sessionStorage.qrurl = orderParams.qrurl;
          sessionStorage.amt = orderParams.amt;
          sessionStorage.returnUrl = orderParams.returnUrl;
          sessionStorage.order_id = orderParams.order_id;
          this.$router.push({
          name: 'wechatPay'
          })
          }
          }
          }
          }
          </script>
           
          <style scoped>
          /* 信息列表樣式 */
          .msg-box > li {
          list-style: none;
          border-bottom: 1px solid #c5c5c5;
          padding: 20px 10px;
          }
          </style>
          支付寶方式:后臺會返回來一個form,然后提交form自動跳轉到支付寶支付頁面。

          微信方式:需要自己根據后臺返回的url生成二維碼頁面,如圖所示:



          代碼:

          <template>
          <div class="payBox">
          <div class="img-logo">
          <img src="http://img.huoxingbeidiao.com/public/WePayLogo.png" alt="">
          </div>
          <div class="info-box">
          <div style="padding-bottom: 20px;">
          <qrcode-vue :value="qrurl" :size="200" level="H"></qrcode-vue>
          </div>
          <img src="http://img.huoxingbeidiao.com/public/WePayInfo.png" alt="">
          <p class="price">¥&nbsp;{{amt}}</p>
          </div>
          </div>
          </template>
           
          <script>
          import QrcodeVue from 'qrcode.vue'
          export default {
          data() {
          return {
          amt: 0,
          qrurl: '',
          timer: null
          }
          },
          components: {
          QrcodeVue
          },
          methods: {
          getOrderInfo() {
          if (sessionStorage.qrurl && sessionStorage.amt) {
          this.qrurl = sessionStorage.qrurl;
          this.amt = sessionStorage.amt;
          }
          },
          startLoop() {
          this.timer = setInterval(() => {
          this.isPaySuccess()
          }, 3000)
          },
          async isPaySuccess() {
          const orderId = sessionStorage.order_id;
          const res = await this.$http.get('orderInfo/queryOrder?orderId=' + orderId)
          const {
          code,
          msg,
          resultList
          } = res.data
          if (code === '200') {
          clearInterval(this.timer);
          this.timer = null;
          sessionStorage.removeItem('qrurl');
          sessionStorage.removeItem('amt');
          sessionStorage.removeItem('order_id');
          sessionStorage.removeItem('returnUrl');
          setTimeout(() => {
          this.$router.push({
          name: 'order'
          })
          }, 3000)
          } else if (code === 401) {
          clearInterval(this.timer);
          this.timer = null;
          sessionStorage.removeItem('qrurl');
          sessionStorage.removeItem('amt');
          sessionStorage.removeItem('order_id');
          sessionStorage.removeItem('returnUrl');
          this.$message.error(msg)
          this.$router.push({
          name: 'login'
          })
          } else {
           
          }
          }
          },
          created() {
          this.getOrderInfo()
          this.startLoop()
          },
          beforeDestroy() {
          clearInterval(this.timer)
          this.timer = null
          }
          }
          </script>
           
          <style scoped>
          .payBox {
          width: 1000px;
          margin: 0 auto;
          }
           
          .payBox .img-logo {
          padding: 20px 0;
          text-align: center;
          }
           
          .payBox .img-logo img {
          width: 180px;
          }
           
          .info-box {
          padding: 60px 0;
          border-top: 3px solid #F43B66;
          -webkit-box-shadow: 0 0 32px 0 rgba(0, 0, 0, .18);
          box-shadow: 0 0 32px 0 rgba(0, 0, 0, .18);
          text-align: center;
          }
           
          .info-box .price {
          color: #F43B66;
          font-size: 40px;
          padding-top: 20px;
          padding-bottom: 20px;
          border-bottom: 1px solid #f1f1f1;
          }
          </style>
          需要安裝qrcode.vue

          npm install --save qrcode.vue  或  yarn add qrcode.vue
          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務。

          為什么高手的配色那么搶眼? 原來是用了CMYK 配色法!

          資深UI設計者

          如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

          界面配色

          2016 年玩追波的時候,有幸加入了 FreedomUnion 團隊,當時團隊內的小D(Dea_n)的界面漸變風很受歡迎,他使用的顏色干凈、舒服、有感染力,很快形成了自己特有的設計風格。

          我被他的配色深深吸引了,特別想研究他的配色,就嘗試把他的作品在 PS 中打開,嘗試吸色,找找他經常使用的配色范圍。為什么他配出來的顏色就很吸引人,長時間看眼睛也不會太累?下面先欣賞一下小D(Dea_n)的設計作品。

          作品已經過了三年了,如果是一般的配色作品應該看上去會有些過時,但是小D(Dea_n)的作品看上去并沒有,還是有不少作品的配色現在看上去也是很前衛的。一起來看看我對小D(Dea_n)的大部分作品的吸色情況吧。

          小D(Dea_n)的用色著實很大膽,很多都是貼邊用色。我上大學的時候,老師曾經說過盡量少用貼邊的顏色設計,包括灰色也可以使用帶有顏色傾向的高級灰。這下終于明白了為什么小D(Dea_n)的配色這么亮眼。

          當然我也有自己的小發現,我發現每個的作品主配色的 CMYK 值總會有兩種色值為 0%,比如C:0%、M:91%、Y:95%、K:0%。

          難道只是偶然?當時我也請教過小D(Dea_n)是否是刻意的,得到的答案是并沒有。然后小D(Dea_n)靠自己卓越的配色能力進入小米 RIGO 設計團隊。

          當小米 miui9 系統官網海報出來的時候,我把作品拿到 PS 一吸色,結果告訴我小D 一定參與了這個作品的配色設計。那為什么只有黃色的 CMYK 的色值是有 3 種顏色混合而成的。

          難道僅靠著一點吸色就可以肯定 CMYK 配色方法的存在?CMYK 配色方法是不是只存在 UI 界面設計中?CMYK 配色方法可不可以增加它的擴展性?CMYK 配色方法可以作為一種配色方法幫助設計師完成色彩搭配的工作嗎?帶著這些疑問我繼續研究配色。

          圖標配色

          我們來看一下「子彈短信」的應用圖標,它的用色基本符合之前說的 CMYK 配色方法,當然是不包含子彈上的深色調。漸漸地我發現 CMYK 配色方法的路子越來越寬了。

          Asher 是追波繪畫寫實圖標的大神,他的寫實作品配色飽和度高,光影通透到位,需要很強的手繪功底。在他的設計作品中除去暗色調和深色調的部分,其他配色基本都使用了 CMYK 配色的技巧。

          大廠系統規范

          我們都知道 iOS 系統和 Android 系統,在他們各自的系統規范中對配色也有相應的規范。我們提取兩大系統規范中的配色進行吸色分析。

          一頓猛吸之后,發現大廠系統規范的用色也基本符合 CMYK 配色方法的標準。

          前段時間 IBM 重新定義了他們的設計語言,在產品配色中 Blye 60、Alert60、Alert40、Alert20、Alert50 等主要配色都符合 CMYK 配色的方法。

          配色中的主色或品牌色

          近期很多互聯網公司進行了品牌改版,深亮色調到淺亮色調慢慢成為一種趨勢。

          新版的 Facebook LOGO 從深藍色變為亮藍色,字體則繼續保持原樣。其中 CMY 值進行適當減少。除此之外,圖標部分也由原來的圓角正方形變為圓形,圖標中的「f」從偏右的位置移到圓形的中間位置。

          全球旅行者喜愛的民宿預訂平臺 Airbnb 的品牌 logo 主色也符合 CMYK 配色的方法。和 2019 潘通流行色珊瑚橘很接近。

          微信 7.0 版本使用了經過調整的全新圖標。圖標除了原來綠色漸變的背板變淺外,兩個標志性的對話氣泡與背景板的比例也做了相應的調整。色彩的 CY 值減少了。調整后的新版圖標除了空間感和符號感也更強外,整體變得「更輕」了。

          在網易云音樂 6.0 版本中,對品牌 LOGO 再次進行了調整。新版網易云音樂圖標最明顯的變化為紅色的主色調,其次為「留聲機」和「音符」組合而成的圖形部分。

          紅色較之前變得更加明亮,同時圖標紅色背景由之前的純色改為輕微的紅色漸變填充。新的紅色著重考慮了用戶長時間使用屏幕造成的視覺疲勞,采用比較「輕」的色彩可有效降低這種問題。其中顏色 CMY 三種色值都有減少。圖形部分,新版圖形縮小了中間交叉部分的面積,頂部向右彎曲的弧形變大。整體效果較之前更加清晰,特別是在更小的應用尺寸中,其展示的效果明顯要比之前的好。

          不同顏色CMYK的色域范圍

          看到上面的描述是不是特別想知道當 CMYK 中的兩個色值同時為 0 時,不同顏色的色域范圍?帶著這樣的想法,把紅橙黃綠青藍紫中每類選一種顏色進行區域研究。打開 PS,在拾色器中截取不同顏色的色域范圍如下:

          上圖白色區域就是在紅色 C 值為 0、K值為 0 時的色域范圍,范圍還是很小的。

          黃色的 CMYK 色域很奇怪,在色相 38-58 度的黃色純度最高時,CMY 都有色值。也就是 PS 里面最純的黃色也是由 CMY 復色調和而成的。這也是為什么之前黃色使用時,CMYK 色值是由三種顏色混合而成的。

          上圖白色區域就是在綠色 M 值為 0、K 值為 0 時的色域范圍,范圍開始慢慢變大,意味著綠色高飽和度的可使用顏色越來越多。

          上圖白色區域就是在綠色 M 值為 0、K 值為 0 時的色域范圍,范圍也開始慢慢變大,大體范圍和綠色相當。

          上圖白色區域就是在藍色 Y 值為 0、K 值為 0 時的色域范圍,范圍應該很大了。

          上圖白色區域就是在紫色 Y 值為 0、K 值為 0 時的色域范圍,范圍和藍色的色域范圍相當。

          上圖白色區域就是在洋紅色 Y 值為 0、K 值為 0 時的色域范圍,范圍和藍色、紫色的色域范圍相當。

          1. CIE

          從理論上講,可見光分布的色彩域就是 CIE 所表示的色域。在顏色感知的研究中,CIE 1931 XYZ 色彩空間(也叫做CIE 1931色彩空間)是其中一個采用數學方式來定義的色彩空間。從 CIE 圖中能看出冷色的區域遠遠大于暖色的區域。其中黃色和紅色的色域范圍相對較少,完全符合 PS 拾色器里面的色域范圍。

          2. RGB

          RGB 是計算機熒光屏顯示顏色的色彩方式,它們是由 R、G、B 三種發光質通過加光混合產生的。RGB 色彩模式是一種加色模式,將紅光、綠光和藍光以不同的比例相加可以合成各種各樣的色光。R、G、B 三種顏色各能產生 2 的 8 次冪,即 256 級不同等級亮度的顏色。256*256*256 即 16777216種顏色。RGB 色彩模式主要用在電腦顯示器和電視上。RGB 色彩模式是繪圖軟件最常用的一種顏色模式。

          3. CMYK

          CMYK 由C(青)、M(品紅)、Y(黃)、K(黑)四色高飽和度的油墨以不同角度的網屏疊印形成復雜的彩色圖片。CMYK 色彩模式是一種顏料模式,它利用色料三原色混色原理,加上黑色油墨,形成各種各樣的色彩。

          這種模式屬于相減混色模式,廣泛運用于繪畫和印刷領域。CMYK 的色域范圍比 RGB 的色域范圍要小,某些色彩無法用 CMYK 油墨印刷出來。當這些不能印刷出來的顏色出現時,在 PS 的「拾色器」對話框上會顯示一個帶感嘆號的三角形警告標志,表示這些顏色超出 CMYK 的色域。即使設計了比較鮮艷的顏色,如果超出了 CMYK 印刷顏色的色域,計算機就會用一個接近它的較灰暗的顏色去頂替它??梢姶蟛糠?CMYK 印刷顏色的色域小于 RGB 屏幕顏色的色域。

          我們來仔細研究下 CIE 色域范圍,CMYK 當中的黃色色域值有一小段超過了 RGM 的色域值。這就說明黃色的更飽和的 CMYK 的原色和間色可能在 RGB 的范圍之外。

          其他的我們還有一個方法去驗證。就是在 PS 里面新建顏色模式為 CMYK 的文件,打開拾色器界面,把顏色調到右上角改變色相值的 0-360度 的范圍。色相在 38-58 度的黃色區域對話框上不會顯示帶感嘆號的三角形警告標志,表示黃色區域的 CMYK 色域值是超過 RGB 的色域值。這就是為什么 iOS 系統規范中的黃色色值必須是三種顏色混合而成的。這時候特殊的顏色就需要特殊處理。

          CMYK配色法使用技巧

          CMYK 配色法就是兩種顏色的色值為 0%,但是黃色因為色域問題是由三色組成的(c值盡量小于10)。

          色域集中在純色系的范圍,濁(灰)色系和暗色系除外。

          界面的主色(純色系為主)、圖標設計、品牌色(純色系為主)都可以使用 CMYK 配色法。

          總結

          CMYK 配色法目前多適用于互聯網產品,雖說在創意上要敢于創新,但在實際的工作中還是需要理性地根據公司品牌和產品定位,合理地進行色彩搭配。目前此方法沒有更多的理論依據支撐,如有疑問希望多多交流。

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務。

          頂部導航欄設計樣式匯總

          ui設計分享達人

          如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

          本篇文章主要匯總了常見的四種頂部導航欄設計樣式,希望能幫助自己和小伙伴們更好地理解導航欄這個組件。

          頂部導航欄作為我們使用APP時每天都要遇到的組件,出鏡頻率極高,看似簡單,其實我們在繪制界面的時候還是有許多細節需要注意的。本篇文章主要匯總了常見的四種頂部導航欄設計樣式,希望能幫助大家更好地理解導航欄這個組件。


          一、常規導航欄

          所謂常規導航欄,主要是指固定在狀態欄下,能清晰分辨出的一行導航欄,主要由操作圖標、標題、搜索框、背景等組成,大致分成三種,分別是簡單標題導航欄、搜索框導航欄以及Tab/分段控件導航欄。


          1.簡單標題導航欄

          簡單標題導航欄常見于二級詳情界面或導航簡單的一級界面,主要由操作圖標與標題組成,如下圖:

          (以下涉及的尺寸大小都是二倍圖下的設計大小)

          該類型的導航標題的大小一般是36px,操作圖標的設計大小一般是40px,切圖大小一般是48px,背景色多采用白色或APP主題色。并且很多APP為了保證整體界面的簡潔,還會去除導航欄底部分割線,僅采用白色作為背景。


          2.搜索框導航欄

          常規搜索框導航欄是在簡單標題導航欄的基礎上,增加了一個搜索框,一般去除了導航標題。如下圖:

          搜索框的寬度隨導航欄中操作圖標的多少決定,搜索框高度多采用56~60px,搜索框中的圖標設計尺寸多采用32px(為了減少切圖尺寸,也可采用48px的切圖大小)。

           

          在擺放圖標時,采用左右間距等分,距離搜索框的間距與邊距相等,看起來會更舒適。如下圖所示:


          3.Tab/分段控件導航欄

          Tab左右切換頂部導航欄與分段控件頂部導航欄,都是頂部有多個標題切換的導航欄樣式,分為選中標題與未選中標題,如下圖:


          分段控件頂部導航欄一般有2~5個可選項,且不能左右滑動。Tab左右切換頂部導航欄的可選項可以擴展很多(如愛奇藝的首頁頂部Tab切換有24個可選項),并且可以左右滑動切換,選中樣式也比較豐富,常見的有底部加上小短線、字體顏色變化、字號放大等(多個合并使用更能突出選中標題),如下圖:



          二、通欄導航欄

          通欄導航欄與常規導航欄的構成基本沒有區別,最大的不同是,通欄導航欄的背景層一般與下方的模塊打通了,在視覺上看起來更為統一,還能一定程度上節約界面空間。如下圖:

          通欄導航欄常用在電商、旅游等界面復雜或是需要烘托氛圍的界面中(多伴隨著背景處理),有些也會放在頂部通欄Banner上,節省空間的同時減少割裂感。


          通欄導航欄的背景處理方式一般有三種

          1.特殊背景處理:與下方模塊整體風格保持一致,多采用與下方一致的圖片背景;

          2.顏色、漸變背景:采用純色或是漸變背景,常見于卡片風格的界面;

          3.黑色透明漸變蒙層:采用一層漸變蒙層,常見于圖片Banner上,保證導航欄文字的可識別性。




          三、大標題導航欄

          自ios11發布后,大標題風格的導航欄便開始流行起來,尤其是飛機稿總能看見大標題導航欄的影子。普通的導航欄在二倍圖下高度只有88px,標題字號為36px,而大標題導航欄在二倍圖下高度足足有192px,標題字號為68px。


          但并不是所有APP都適合使用大標題導航欄,并且即便使用大標題導航欄,整個APP中也不會全部使用,使用中界面向上滑動也會切換成正常狀態的導航欄或直接隱去導航欄,便于內容的查看。

           

          有些APP也會折中使用,在常規88PX(二倍圖)導航欄高度下,放大字號,隱去分割線,使標題看起來更大。



          使用大標題導航欄,你需要考慮以下兩點:

          1.是否需要幫助用戶快速確認所處位置(多為產品頁面重復性多,或是功能單一的APP);

          2.APP整體風格是否偏向簡約大氣。

          大標題導航欄總給人一種高逼格的感覺,這也是為什么飛機稿喜歡使用大標題,但卻沒見國內的電商APP使用。



          四、小程序導航欄

          微信的小程序導航欄,在頂部右上方有一個不可去除也無法編輯的Titlebar按鈕,微信配置了一深一淺兩種風格。

           

          從APP轉換到小程序時,要注意調整APP的頂部導航欄的位置以及搜索框的大小,避免被Titlebar遮擋,如下圖:

          上圖中,豌豆公主的頂部導航欄整體下移,并且減小了搜索框的高度,提高屏幕的利用率。


          五、劃重點

          ·常規導航欄主要包括簡單標題導航欄、搜索框導航欄以及Tab/分段控件導航欄通欄導航欄

           

          ·通欄導航欄要注意導航背景的處理,常用的有特殊背景處理、顏色漸變背景、黑色透明漸變蒙層

           

          ·大標題導航欄使界面整體更有逼格,但不是所有APP都適合的,要根據情況合理使用

           

          ·微信小程序導航欄在頂部右上方有一個不可去除也無法編輯的Titlebar按鈕,從APP換到小程序時要注意重新調整導航欄

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、網站建設 、平面設計服務。



          css高級選擇器和基本選擇器

          seo達人

          如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

          ID選擇器>類選擇器>標簽選擇器
          行內樣式>內部樣式>外部樣式
          *結構偽類選擇器 一旦設置 不管在行內還是在后面重新設置,都沒辦法改變
          *結構偽類選擇器設置奇偶行以及從第三行開始變色如何實現
          nth-cild(2N+3)表示從第三行開始的奇數行
          同理 nth-child(2N+4)表示從第四行開始的偶數行
          nth-cild(2N+5)表示從第五行開始的奇數行
          *設置前三個:
          p:nth-child(-n+3){
          background-color: #b3d4fc;
          }
          *使用E F:nth-child(n)和E F:nth-of-type(n)的 關鍵點
          E F:nth-child(n)在父級里從一個元素開始查找,不分類型
          E F:nth-of-type(n)在父級里先看類型,再看位置

          注意
          child 跟子選擇器沒有關系,可以是子選擇,也可以是后代選擇 由層次選擇器 (如table tr)來控制

          1.層次選擇器
          table td 后代選擇器 td包含在table里
          div>p子選擇器 p是div的子元素
          p1+p p1后面一個兄弟p變化 是對p進行處理 p1不變 而且只是下面相鄰的變化 上面相鄰不變化
          p1~p p1后面所有兄弟p變化 p1不變
          2.結構偽類選擇器
          P:first-child 作為父元素的第一個子元素得元素 p
          P:last-child 作為父元素的最后一個子元素得元素 p
          P a :nth-child(n) p中第n個a元素 (even)(odd)
          p:first-of-type 必須是p元素 不是子元素也行
          p a:nth-of-type(n)
          必須是a元素 不是a的子元素也行
          3.屬性選擇器
          a[id] a標簽中含有id的
          a[id=111] a標簽中的id=111的
          a[href*=http] a標簽中包含href屬性 且都包含http
          a[href&=png] a標簽中包含href屬性 且最后以png結尾
          a[href^=http://] a標簽中包含href屬性且以http://開頭
          1.層次選擇器

          *相鄰兄弟選擇器,只對后面的兄弟有作用,對前面的兄弟沒效果。
          *相鄰兄弟選擇器,E+F E不會產生效果效果

          2.結構偽類選擇器


          使用E F:nth-child(n)和E F:nth-of-type(n)的 關鍵點
          E F:nth-child(n)在父級里從一個元素開始查找,不分類型
          E F:nth-of-type(n)在父級里先看類型,再看位置

          注意
          child 跟子選擇器沒有關系,可以是子選擇,也可以是后代選擇 由層次選擇器 (如table tr)來控制
          設置前三個:
          p:nth-child(-n+3){
          background-color: #b3d4fc;
          }
          3.屬性選擇器

          舉例:
          a[href=^http]{backgroud-color:red}

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務

          想做大數據可視化?來看高手的實戰案例!

          資深UI設計者

          如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

          在大數據時代,數字化轉型已經成為行業迫切的需求。2016-2018年金融、醫療、政府、安全等行業在大數據方向上的投入持續增加,大數據可視化的需求呈現爆發式增長,相關產品也紛紛推出:阿里 DataV 的「雙十一的天貓可視化大屏」、360的數博會企業安全大屏、帆軟的 BI系統。面對井噴式的市場需求和部門業務在 To G、To B 的拓展需求,需要快速儲備大數據可視化的能力,作為一個 To C 的設計團隊面臨的挑戰和責任都是巨大的。

          (編者注:由于本文動圖太大,將近100M,為了不影響移動端讀者的閱讀體驗,本文圖片都是靜態截圖,動圖文章鏈接戳:https://docs.qq.com/doc

          一、項目背景

          在過去一年中,潘洛斯(Penrose)團隊參與了「靈鯤」態勢感知系統、「麒麟」系統、「鷹眼」反電話詐騙系統等14個大數據可視化產品的設計。隨著產品不斷的探索和迭代,積累了一些行之有效的大數據可視化設計的心得和方法。基于「靈鯤」這個案例,分享一下我們在大數據可視化方向的設計和思考,希望能夠給對大數據可視化感興趣的同學提供一些思路。

          「靈鯤」是 MIG 安全云部門與潘洛斯(Penrose)團隊合作的,基于潘洛斯大數據可視化引擎衍生出的一款金融風險監控可視化產品。應北京與深圳金融辦的需求,搭建靈鯤金融風險態勢感知系統,實現事中風險控制,減少網絡欺詐損失。

          著手設計之前,我們需要了解:大數據市場規模和各行業投入有多大, 政企客戶的大數據可視化產品的痛點是什么?對比深耕多年的競品,我們設計的突破口在哪?——挖掘我們的機遇和發力點。

          二、我們的客戶,目標群體

          數據顯示,2017年中國大數據產業規模為4700億元。隨著一系列政策的出臺,大數據國家戰略正在加速落地,大數據行業將持續增長,預計2018年中國大數據產業規模將達到6200億元,增幅達32%。需求層面,預計2020年大數據應用市場需求中,僅政府需求就占比35%,另外包括醫療、交通、金融等多個行業在大數據和信息化建設投入也將持續增加。

          除了旺盛的需求以外,我們還注意到很多政企內部數據基礎很好,以宜昌為例,宜昌智慧辦匯集了來自32個部門、60個系統的大量詳盡的實施城市數據。與這些政企單位合作,易形成行業燈塔,便于規模復制。另外,針對大數據可視化,目前政企已不滿足于「面子工程」,更多的希望大數據可視化與 AI 結合,呈現更復雜多樣的數據,以輔助決策。

          基于以上的市場潛在規模的考察和典型客戶研究,在進行「靈鯤」產品能力規劃時,我們主要考慮以下三類使用場景: 政府機構決策、展會展臺及參觀視察。

          在金融局等相關政府機構的日常工作中,決策層和相關工作人員會基于實時金融平臺數據,針對日常事務或緊急事件進行決策管理,監控大廳也就應運而生。基于這種工作方式,我們可以發現潘洛斯的產品特性非常契合監控大廳的使用場景。在監控大廳中,用戶是通過兩種不同的信息界面進行工作的,分別是綜合數據可視化大屏(總屏)以及工作人員獨立使用的電腦屏幕(分屏)。其中,在總屏上,呈現的內容通常是一些對于決策者來說至關重要的信息:正在發生的事件的狀態和可能趨勢(發生了什么)、值得注意的風險(需要團隊做什么)以及風險的處理進度(團隊做的怎么樣);而在分屏上,主要為工作人員提供數據分析及風險事件處理功能,幫助團隊對事件迅速作出響應,協作。

          不同于工作場景,靈鯤產品在展會中展臺的主要受眾是參會人士,除了一般民眾外,更有價值的觀眾主要來自于媒體和潛在客戶等。所以在這個場景中展示的內容與實際工作中的數據可視化內容有一定的區別,更多的是對產品能力的展示、產品的宣傳以及社會價值的呈現。如何直觀的呈現產品的能力,并使觀眾快速獲得有價值的信息并留下深刻印象非常重要。這也決定了在這個場景中,用戶不僅包括觀眾,也包括演講者。我們需要考慮如何通過控制端讓講演者而流暢的完成產品介紹。

          在金融局等政府機構,經常會有上級領導視察參觀的接待活動。這些來訪的貴賓往往希望了解關于機構更全面和具體的信息,包括但不限于工作流程、工作成績等,所以我們認為這個場景綜合了以上兩種場景的主要特點。這里的用戶包括來訪人員,演示人員以及工作人員,展示的內容也往往不局限于金融風險大數據的可視化,還會包括工作方式和流程本身。

          三、行業競品對比,反觀自身發力點

          通過對阿里 DataV,AntV、360、帆軟的大數據可視化產品的體驗,我們從產品呈現、產品體驗、產品技術、部署方式和商業模式幾個維度的橫向對比。阿里的技術對可視化效果的局限性很大,優點是產品實現模板化、系統實時可交互,用戶可以快速搭建自己的可視化產品;360產品可視化呈現3D化,數據呈現效果和數據感知度較2D更優,但是系統非實時可交互,而且搭建周期長,成本較高;帆軟的可視化是傳統報表型,可視化效果呈現缺乏競爭力。

          經過對比,我們不難發現3D化數據呈現能力和數據感知度是最高的。但是局限于目前的技術,項目成本高、研發周期長、難以滿足業務的發展速度。

          四、我們的機遇和挑戰

          基于市場需求和競品分析,我們從以下三個方面分別分析了產品的機會和突破點:

          • 可視化:數據和場景的呈現3D化,滿足更多維度的數據呈現,支持云+本地實時大數據呈現能力;
          • 產品化:場景、組件、數據、圖表全部實現可云端動態更新和配置的模塊化,降低維護成本、提高服用率、縮短項目周期,無縫打包接入業務數據,提供豐富可自定義的可擴展接口;
          • 大數據+AI:基于公司多領域多業務線的大數據融合以及 AI 能力提供豐富的基于時間、空間、數據的預測預警、統計表達能力。
          1. 產品架構規劃

          基于對靈鯤態勢感知系統的使用場景、用戶需求以及機會點的考慮,我們規劃了未來產品的整體架構,包括大屏端、云端、客戶管理端、小屏端以及虛屏端。大屏端基于本地端引擎進行大數據可視化呈現??蛻艄芾矶税▓蟊砗团渲霉芾淼裙ぞ?,幫助用戶進行分析數據和策略管理。小屏端主要考慮操作控制和移動辦公等移動使用場景,提供大屏控制、移動審批、監管、公眾號等功能。以上三個端由云端拉取和更新數據。虛屏則提供差異化的大數據可視化體驗,如增強現實等新奇有趣的玩法。由于大屏端在我們的規劃里是態勢感知系統的核心,且落地到合作方的模塊,以下分享的內容將主要圍繞大屏的內容設計展開,未來如果產品規劃中的其他模塊陸續上線,我們再做分享。

          2. 大屏內容設計

          本地端引擎

          早期我們設計的「麒麟」系統、「鷹眼」反電話詐騙系統在對外在大屏上展示主要是通過 web 端的方式去實現,雖然適配性尚可,但很多設計效果無法完全還原。我們也嘗試性用 webGL 和 three.js 的方式把設計效果再做進一步提升,但迫于研發周期和實際性能的壓力,最后也只能作罷。中期我們嘗試使用3D工具輸出視頻的方式做過一些過渡,輸出效果是沒有問題,但如果在展會上遇到媒體采訪,事情就會變得異常尷尬。媒體會詢問展示內容的真實性,數據的實效性,甚至采訪的時候需要停留在某一個畫面,我方參會人員配合起來非常麻煩。后來我們也研究過競品使用的工具,例如 Ventuz,工具最終輸出的效果是不錯,但是界面、操作極其復雜,相關教程和素材在網絡上極少,授權費用也相當昂貴。最終經過我們內部商討和研究,也請教了一些 IEG 專家的意見,決定使用游戲引擎作為本地端的顯示引擎。

          Unity 和 Unreal 我們也糾結過許久,甚至 Unity 上我們也出過可交互的 Demo,但最終選擇了 Unreal 的原因主要有以下幾個點:

          • 基于前面我們提到的產品架構,我們的核心是在大屏,而大屏部署主要依賴 PC 做為計算平臺,相較于 Unity,Unreal 在 PC 端的技術積累要更加深厚,實時渲染出來的光影效果和質感表現要更穩定于 Unity 的輸出;
          • Unreal 自帶藍圖-可視化腳本系統,這對于設計團隊出身,零代碼開發經驗的我們來說上手、學習起來更快更方便;
          • 線上有大量的視頻教程,各種插件和美術素材也比Unity更豐富;
          • 有《蝙蝠俠:阿卡姆騎士》、《最終幻想15》和《絕地求生》這些3A沙盤游戲作為先例,Unreal 對于大規模的場景渲染能力是可被預期的,而 Unity 目前還沒有可以拿得出手的案例。

          色彩基調

          為了打造靈鯤產品的可視化,在競品中脫穎而出,我們從產品功能、用戶、愿景三個維度發散,提煉出設計指南的關鍵詞:智能、直觀、未來,塑造獨特的大數據可視化風格體系。

          靈鯤金融態勢感知系統內容架構分為數據維度和場景維度,數據是核心,場景是大數據呈現的承載體;場景使用具有金屬質感的深青灰,符合理性的、冷靜的、智能化產品的個性;數據色彩使用透明、發光、具有未來感的高亮色,和場景形成強對比,使數據更為突顯、更具吸引力;為了強化客戶對于風險的感知,通過顏色區分數據的風險等級,更直觀的傳達數據的含義。如:高風險的使用紅色,紅色讓人聯想到危險、警報。

          呈現方式

          在現有的產品和傳統認知中,大數據產品內容是各種樣式的圖形和圖表,主要以平面為主。我們從游戲、科幻電影中收集了一輪大數據可視化內容相關的案例,從視覺維度上看,主要有這幾個特點:一、具有很強的空間感,支持多種數據同屏呈現,可交叉分析對比,承載性強;二、高精度的模型和材質,豐富的粒子、動效,更加貼近現實的光影呈現;三、互動性強,可交互,實時演算。

          從大數據可視化的內容維度上看,梳理的3D架構,主要包括:數據維度>基礎建設>交通運輸>行政分區>自然條件。

          數據維度層是最核心的部分,位于場景上方最突出的位置,能夠更清晰的展示風險數據的分布、量級;行政區域和交通層是城市場景最基礎的數據維度,方便用戶進行區域的數據對比和分析;基礎建設層包括城市的建筑、標志性建筑、照明、橋梁、等,還原城市獨特風貌;通過突出城市的標志性建筑,強化城市、區域的識別性,輔助數據傳達;自然條件層包括地形、河流、植被、展示真實的環境特征,用戶更有代入感。

          △ 北京場景

          △ 鳥瞰視角、漫游視角自由切換,滿足全局、街道、建筑的不同顆粒度的數據呈現,方便用戶進行縱向的數據對比。

          △ 場景整體風格圖

          數據表現

          靈鯤的3D數據樣式有柱狀圖和散點圖。如何把司空見慣的數據樣式,設計出產品的個性,是我們重點要解決的問題。為了體現大數據的力量感,使用科幻電影中的聚合能量、發光的能量石作為柱狀圖的主圖形;同時把數據采集、融合、分析的過程具象為動態粒子網絡,作為輔助圖形。數據圖形和結構中都融合了品牌 DNA 的三角圖形,數據樣式更具有品牌的個性。

          △ 柱狀圖

          △ 散點圖

          預見未來的功能創新

          時間線:3D的維度基礎上,我們增加了時間的維度,通過拖動時間線查看不同時間點的數據的變化趨勢,由此對未來數據進行預測。為了強化用戶對于時間感知,設計了白天和晚上兩種風格,白天和夜晚隨著時間變化而變化。

          天氣系統:天氣是未來數據分析極其重要的一個因子,它會直接影響交通(例如人流、物流、航空)、醫療(例如疾病傳播、醫院就診)等領域。所以我們設計了通用的天氣系統組件,呈現實時天氣情況,以輔助用戶進行數據分析。

          控制端:符合大屏使用場景和用戶操作習慣,同時小屏控制端支持更復雜更精準的操作。

          組件庫搭建

          為了提升產品搭建的效率,降低了研發周期和成本,產品功能模塊實現了組件化,分為3D場景組件、3D數據組件、2D數據組件。任何一位設計師都可以根據產品需求,搭配組件模塊,快速搭建大數據可視化產品。

          數據內容的包裝

          通過該產品,一方面能夠輔助金融局等政府機構領導把控整體金融平臺風險、輔助做出平臺整改指導決策意見,展示金融工作成績;另一方面體現出騰訊大數據能力和公司的社會責任;最后,通過從更長遠的眼光去包裝產品,打造智慧監管標桿產品,從而推動與政府客戶更深入廣泛的合作。具體內容通過以下兩條線進行組織:

          橫線:各個監管維度

          靈鯤金融風險態勢感知系統專注于呈現金融風險數據的呈現,主要分為公司層面和用戶層面,綜合體現潛在的風險趨勢和實際影響的范圍。除了靈鯤用于監管金融數據,整個監管平臺還負責展示包括政治、生態、電信、消費在內的多個監管維度,這些維度與金融監管維度為同一個內容層級。我們考慮到騰訊的大數據能力可以幫助更多城市綜合管理者了解整個網絡社會的全局性風險,所以每個維度都是智慧監管必不可少的一部分,并且每個維度之間的橫向交叉對比能夠使智慧監管平臺發揮出更大的社會價值。

          縱線:監管顆粒度

          靈鯤系統中觀眾可以從全局數據一直下鉆到個體數據,實現不同顆粒度的監管目的。

          具體來講,全國的安全風險最終是以加權平均后的指數形式體現出來;再到具體的省份和城市,內容細化到具體風險事件的發生情況,如電信安全監管維度,呈現電信詐騙使用的偽基站的位置,以及發送詐騙短信的數量等;最后細化到城市中的機構和建筑,呈現具體機構的運行情況和具體高風險企業所在建筑進行實時監控。

          3. 產品演示視頻

          https://v.qq.com/x/page/d0742kep4k1.html

          結語

          潘洛斯團隊是基于 DNA 設計中心下的大數據可視化團隊,成員來自于 MIG 安全和醫療部門,早期專注于 To C 端的產品設計,過去一年里隨著公司戰略的變化和部門業務方向的變化,我們逐漸開始把產品設計的重心和思考放在了 To B、To G 領域,不斷做著嘗試和探索。以前做 To C 的時候我們關注的更多是 DAU、轉化率、日活、滿意度這些和產品體驗相關聯的指標,滿足絕大多數互聯網用戶的訴求是我們首要去解決的問題。現在做 To B、To G 領域的設計,我們更多思考的是如何包裝我們現有的業務能力,能夠通過更加簡單、直接、有效的方式觸達給我們的客戶,讓他們更容易理解像騰訊這樣擁有海量數據和算法能力的互聯網公司如何幫助他們進一步提升他們的業務效率和產出,給這個社會創造更多的價值,這也是騰訊多年來想要承擔的社會責任之一。

          文章來源:優設

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計  cs界面設計 、 ipad界面設計  包裝設計 、 圖標定制  用戶體驗 、交互設計、 網站建設 、平面設計服務。

          日歷

          鏈接

          個人資料

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

          存檔

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