uni-app選擇器


頁面樣式與布局

uni-app的css與web的css基本一致。本文沒有講解css的用法。在你了解web的css的基礎之上,本文講述一些樣式相關的注意事項。

uni-app有vue頁面和nvue頁面。vue頁面是webview渲染的、app端的nvue頁面是原生渲染的。在nvue頁面里樣式比web會限制更多,

本文重點介紹vue頁面的樣式注意事項。

尺寸單位

uni-app 支持的通用 css 單位包括 px、rpx

  • px 即屏幕像素
  • rpx 即響應式px,一種根據屏幕寬度自適應的動態單位。以750寬的屏幕為基准,750rpx恰好為屏幕寬度。屏幕變寬,rpx 實際顯示效果會等比放大,但在 App 端和 H5 端屏幕寬度達到 960px 時,默認將按照 375px 的屏幕寬度進行計算,具體配置參考:rpx計算配置

vue頁面支持下面這些普通H5單位,但在nvue里不支持:

  • rem 根字體大小可以通過 page-meta 配置
  • vh viewpoint height,視窗高度,1vh等於視窗高度的1%
  • vw viewpoint width,視窗寬度,1vw等於視窗寬度的1%

nvue還不支持百分比單位。

App端,在 pages.json 里的 titleNView 或頁面里寫的 plus api 中涉及的單位,只支持 px。注意此時不支持 rpx

nvue中,uni-app 模式(nvue 不同編譯模式介紹)可以使用 px 、rpx,表現與 vue 中一致。weex 模式目前遵循weex的單位,它的單位比較特殊:

  • px:,以750寬的屏幕為基准動態計算的長度單位,與 vue 頁面中的 rpx 理念相同。(一定要注意 weex 模式的 px,和 vue 里的 px 邏輯不一樣。)
  • wx:與設備屏幕寬度無關的長度單位,與 vue 頁面中的 px 理念相同

下面對 rpx 詳細說明:

設計師在提供設計圖時,一般只提供一個分辨率的圖。

嚴格按設計圖標注的 px 做開發,在不同寬度的手機上界面很容易變形。

而且主要是寬度變形。高度一般因為有滾動條,不容易出問題。由此,引發了較強的動態寬度單位需求。

微信小程序設計了 rpx 解決這個問題。uni-app 在 App 端、H5 端都支持了 rpx,並且可以配置不同屏幕寬度的計算方式,具體參考:rpx計算配置

rpx 是相對於基准寬度的單位,可以根據屏幕寬度進行自適應。uni-app 規定屏幕基准寬度 750rpx。

開發者可以通過設計稿基准寬度計算頁面元素 rpx 值,設計稿 1px 與框架樣式 1rpx 轉換公式如下:

設計稿 1px / 設計稿基准寬度 = 框架樣式 1rpx / 750rpx

換言之,頁面元素寬度在 uni-app 中的寬度計算公式:

750 * 元素在設計稿中的寬度 / 設計稿基准寬度

舉例說明:

  1. 若設計稿寬度為 750px,元素 A 在設計稿上的寬度為 100px,那么元素 A 在 uni-app 里面的寬度應該設為:750 * 100 / 750,結果為:100rpx。
  2. 若設計稿寬度為 640px,元素 A 在設計稿上的寬度為 100px,那么元素 A 在 uni-app 里面的寬度應該設為:750 * 100 / 640,結果為:117rpx。
  3. 若設計稿寬度為 375px,元素 B 在設計稿上的寬度為 200px,那么元素 B 在 uni-app 里面的寬度應該設為:750 * 200 / 375,結果為:400rpx。

Tips

  • 注意 rpx 是和寬度相關的單位,屏幕越寬,該值實際像素越大。如不想根據屏幕寬度縮放,則應該使用 px 單位。
  • 如果開發者在字體或高度中也使用了 rpx ,那么需注意這樣的寫法意味着隨着屏幕變寬,字體會變大、高度會變大。如果你需要固定高度,則應該使用 px 。
  • rpx不支持動態橫豎屏切換計算,使用rpx建議鎖定屏幕方向
  • 設計師可以用 iPhone6 作為視覺稿的標准。
  • 如果設計稿不是750px,HBuilderX提供了自動換算的工具,詳見:https://ask.dcloud.net.cn/article/35445
  • App端,在 pages.json 里的 titleNView 或頁面里寫的 plus api 中涉及的單位,只支持 px,不支持 rpx。
  • 早期 uni-app 提供了 upx ,目前已經推薦統一改為 rpx 了,詳見

樣式導入

使用@import語句可以導入外聯樣式表,@import后跟需要導入的外聯樣式表的相對路徑,用;表示語句結束。

示例代碼:

<style>
    @import "../../common/uni.css";

    .uni-card {
        box-shadow: none;
    }
</style>

 

內聯樣式

框架組件上支持使用 style、class 屬性來控制組件的樣式。

  • style:靜態的樣式統一寫到 class 中。style 接收動態的樣式,在運行時會進行解析,請盡量避免將靜態的樣式寫進 style 中,以免影響渲染速度。
    <view :style="{color:color}" />

     

  • class:用於指定樣式規則,其屬性值是樣式規則中類選擇器名(樣式類名)的集合,樣式類名不需要帶上.,樣式類名之間用空格分隔。
    <view class="normal_view" />

     

選擇器

目前支持的選擇器有:

選擇器 樣例 樣例描述
.class .intro 選擇所有擁有 class="intro" 的組件
#id #firstname 選擇擁有 id="firstname" 的組件
element view 選擇所有 view 組件
element, element view, checkbox 選擇所有文檔的 view 組件和所有的 checkbox 組件
::after view::after 在 view 組件后邊插入內容,僅 vue 頁面生效
::before view::before 在 view 組件前邊插入內容,僅 vue 頁面生效

注意:

 

  • uni-app 中不能使用 * 選擇器。
  • 微信小程序自定義組件中僅支持 class 選擇器
  • page 相當於 body 節點,例如:

    <!-- 設置頁面背景顏色,使用 scoped 會導致失效 -->
    page {
      background-color:#ccc;
    }

     

express

基於Nodejs Web 的開發框架(老框架了 目前無人維護)

其他框架:Koa、egg

express快速入門

1.創建一個空的文件夾,作為項目

2.初始化這個項目 npm init -y (生成版本庫)

3.安裝項目的依賴模塊 npm install --save express

4.git管理

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM