小程序input wxss_19. 教你零基礎搭建小程序:wxss-尺寸單位

這章以后的四章都是介紹小程序樣式文件——wxss 的使用,分為以下三個部分

一、尺寸方案

二、樣式導入

三、選擇器

這章先來講wxss的尺寸單位—— rpx

wxss的定義:

WXSS( WeiXin Style Sheets )是?套樣式語言,用于描述 WXML 的組件樣式。

與 CSS 相比,WXSS 擴展的特性有:

響應式?度單位 rpx 樣式導?

rpx (responsive pixel): 可以根據屏幕寬度進行自適應。

我們規定屏幕寬為 750rpx ,

如在 iPhone6 上,屏幕寬度為 375px ,共有750個物理像素, 則 750rpx = 375px = 750 物理像素, 1rpx = 0.5px = 1 物理像素 。

小程序中,若需要做一個頁面布局,實現頁面的元素大小跟隨屏幕改變而發生改變的話,

則需要用到rpx單位。

接下來,我們用代碼來演示以上知識點。

第一步先來定一個需求

如下圖所示,此設計稿為 750px,里面包含200px × 200px 的頁面,

并且所含文字的像素是40px

3e3ab74c9337069cd54b4189ecbd973d.png

我們要將此設計稿和下圖右側的屏幕相匹配:

屏幕為375rpx,里面的頁面是100 ×100 ,文字是20px

我們要做的就是將750rpx 的設計稿等比例變換為375rpx 的比例

973dea4ca915e6416e6192ad4554aa48.png

這就是我們的需求了,接下來通過代碼一步步實現了~~

1、打開app.json 文件,新建demo05 頁面

2、打開demo05.wxml 文件,刪掉原先代碼,加入view 標簽,代碼如下

rpx

這里,要補充一點:

小程序中不需要手動引入樣式文件,不需手動添加link 標簽,

只需確保demo05 文件夾下的文件名稱統一均為 demo05 即可,

小程序會自動匹配同名文件并引入。

3、打開demo05.wxss 文件,刪掉原先代碼,寫入如下代碼:

寬:200px;高:200px;字體大小:40px;背景顏色:藍色。

view{ width: 200px; height: 200px; font-size:40px; background-color: aqua;}

保存后,界面如下所示:

9a5784dbfb236978943164a9d789bd84.png

可以看到,現在屏幕的寬度為375px,機型為iphone6

若我們先直接將屏幕 由375px 改為 750px , 藍色方塊的比例會隨之變化嗎?

d975c6c31ba67849f3b35ab1acf0e18d.png

修改后(若找不到750選項,可點擊機型--自定義,手動添加屏幕數據),

對比前后的藍色部分,可明顯看到是一樣的!

a0b7f419de6f20a7288a720256d9a107.png
db9509ec299d33dc0c9ea20a1f3ff4ca.png

雖然屏幕比例擴大了很多,但是藍色區域還是未隨屏幕比例發生任何改變!

所以要實現這一需求,就需先將頁面中某些元素的單位由 px 修改為rpx,或者修改百分比也行,

即換算單位!

比如:設計稿的像素為750, 則750px =750rpx, 也就是 1px =1rpx

4、 我們將demo05.wxss 中的px 修改為rpx,

由這樣:

view{ width: 200px; height: 200px; font-size:40px; background-color: aqua;}

變為這樣:

view{ width: 200rpx; height: 200rpx; font-size:40rpx; background-color: aqua;}

我們的需求中,是要實現375px 的屏幕, 所以,375px=750rpx,即1px=2rpx 根據這個比例,若將屏幕界面的機型改為 iphone6 (375px),那藍色區域的部分應該縮小一半!

5、將屏幕界面的機型改為 iphone6 (375px),觀察藍色區域的大小變化

fc49ae941854826bc4a2143838a0f25d.png

對比很容易發現,藍色部分已經隨屏幕的比例發生相應改變了!

這也就實現了我們的第一個需求!哈哈


上面的例子中,750px 和375px 是等比例關系,很容易換算

那如果現在的設計稿寬度是100px,長度未知,(用page表示),

用以上代碼如何實現不同寬度的頁面適配呢?

8b0d1df695a311b086b68b8ad54360e9.png

1、換算

page=750rpx

1px=750 rpx/page,將寬度 100px 代入后(兩邊都 ? 100)

100px=750rpx × 100/page

按照小學課本里的換算,

這里100px的賦值可以直接代入到代碼中去

比如這里page=375,width的值還是100px,

view{ width: 100rpx; height: 200rpx; font-size:40rpx; background-color: aqua;}

將 100px=750rpx × 100/375 寫入 width 中:

view{  width: 750rpx× 100/375;  height: 200rpx;  font-size:40rpx;  background-color: aqua;}

但是,

這不是完全的數學運算,這里的這種直接賦值也是不正確的!!!

不能直接寫成 width: 750rpx× 100/375 這種形式的!

切記!

它需要一個屬性來做外衣—— calc 屬性

2、在demo05.wxss 中,代碼的 width 部分加入 calc 屬性 ,其余不變,代碼如下:

view{ width: calc(750rpx*100/375); height: 200rpx; font-size:40rpx; background-color: aqua;}

敲黑板:

在使用calc屬性時,比如上述代碼 width: calc(750rpx*100/375) 中, 750與rpx之間是不能有空格的! 運算符* / 兩邊也是不能加空格!

保存后,界面如下:

b8f0a95a2ae3f713c366e5af7813f33e.png

3、改變屏幕比例,改為750px,觀察藍色部分的大小變化!

b728929a5df1802e2f9be97cfafb837c.png
2fc451bc95558cc588c537a4c7162ae2.png

對比來看,藍色部分明顯已經發生變化!我們的需求完成了!

88f891c4df997246a501ca3cec386df0.png

所以,最后總結:

要想實現不同寬度的頁面適配,記住兩點即可

100px=750rpx × 100/page

使用calc 屬性 來書寫

大家實操后感覺如何呢?

歡迎下方留言給我,

有疑問可以直接私信我哈~~~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/529214.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/529214.shtml
英文地址,請注明出處:http://en.pswp.cn/news/529214.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java 最優算法_java 問題 求個最優算法

不知道是不是你要的package test;import java.util.Scanner;public class Number {/*** param args*/public static void main(String[] args) {int count 15;int val 5;Scanner input new Scanner(System.in);System.out.print("請輸入開始數:");int …

某一個接口403 其他接口可以調通_Neo的務實外設指南 篇三十六:一個就夠,65W快充+C口混插+最多6個設備 - 飛利浦65W摩天輪插座_插座...

2020-10-26 15:29:0623點贊23收藏2評論嗨,大家好!我是沈少!之前曬雷電3擴展塢的時候,已經有小伙伴注意到我用來提供PD充電的是一個很小巧的魔方插座。也有朋友私下提醒我,這類產品雖然支持PD快充協議,但一般…

linux java 獲取路徑怎么寫_linux中java獲取路徑怎么寫?

linux中java獲取路徑怎么寫?在Unix/Linux中,路徑的分隔采用正斜"/",比如"cd /home/java"。在java的代碼開發中 是代表轉義字符。相對路徑和絕對路徑. 指的是當前目錄.. 指的是當前目錄的上一級目錄./book表示當前目錄下的…

layerconfirm 自動關閉問題 沒有阻塞問題_微信新版本自動更新?趕緊關閉這個功能...

前不久安卓用戶也迎來了微信新版本的更新不少伙伴驚呼“猝不及防,一覺醒來發現微信自動更新了”一時間還沖上了話題的熱搜榜究竟是怎么肥事?小移了解到:原來是因為部分用戶設置了“微信自動更新”那么問題來了,如何關閉微信自動更…

java 動態生成getset_通過get、set方法,動態生成對象

最近在看Java的反射,把學習的東西整理一下,大家共同研究,有需要改進的地方,請大家指正。import java.beans.PropertyDescriptor;import java.lang.reflect.Field;import java.lang.reflect.Method;public class ReflectionTest {p…

list steam_在 Steam 中國版上玩單機游戲也會受到防沉迷系統管控

今天看到一個消息,Steam 中國版,也就是所謂的“蒸汽平臺”,最近正在測試。重點在于,哪怕你玩“理論上無需聯網”的單機游戲,游玩時間也會受到著名的防沉迷系統的限制。以下是我在動點科技編寫的新聞全文(原文鏈接是界面…

java的默認訪問權限_java類的訪問權限

1.解析Java有四種訪問權限, 其中三種有訪問權限修飾符,分別為private,public和protected,還有一種不帶任何修飾符。private: Java語言中對訪問權限限制的最窄的修飾符,一般稱之為“私有的”。被其修飾的類、屬性以及方…

github流程圖_逆天插件,VSCode里也能畫流程圖了?Visio可以淘汰了?

vscode-drawio簡介網絡之大,人才百出,在開源背景下,一些功能只有你想不到,沒有做不到。這不,對于寫代碼的程序員來說,竟然也可以在VSCode IDE里邊寫代碼,邊畫邏輯流程圖了。最近,在g…

CentOS+ISCSI

九、配置iSCSI 添加1塊大小為10G的虛擬硬盤; 安裝iSCSI服務端targetcli; 使用新增加的硬盤創建卷組,名稱為iscsivg,再創建iSCSI共享邏輯卷,邏輯 卷名稱為iscsistore,大小為5G; 使用上述邏輯卷創建后端存儲,名稱為serverc.iscsistore; 定義iSCSI的IQN為iqn.2022-…

java c 性能比較_java 中ArrayList與LinkedList性能比較

java 中ArrayList與LinkedList性能比較今天看一框架的代碼,看到有些 可以使用ArrayList的地方 使用的是 LinkedList,用到的情景是在一個循環里面進行順序的插入操作。眾所周知java里面List接口有兩個實現ArrayList 和 LinkedList,他們的實現原…

spring aopalliance 包里都有什么_【九倉櫻】翻包記 05 | 是什么讓我的便當包里每天都帶著小企鵝?!...

Sakura | 2020?05バッグ日記:< Whats in my bag ? >這里是一個全新的欄目&#xff0c;關于九倉櫻の日常翻包初衷是想跟大家分享一些有趣好玩的東西想知道我到底有多少個包包嗎&#xff1f;我的包包里都會有哪些你想不到的東西呢&#xff1f;LIST① MYKONOS 便當包② MY…

java 數據庫操作代碼_JAVA:對數據庫的一系列操作代碼

插入數據import java.sql.*;/*** version 2012-02-22* author*/public classInsertDemo {public static voidmain(String[] args) throws SQLException {Connection conn null;Statement stmt null;String JDriver"com.microsoft.sqlserver.jdbc.SQLServerDriver";//…

java setpaintmode 用法_詳解Paint的各種set方法

(1) 在application配置文件中關閉硬件加速&#xff1a;android:allowBackup"true"android:hardwareAccelerated"false"android:icon"drawable/ic_launcher"android:label"string/app_name"android:theme"style/AppTheme" &g…

SPI 讀取不同長度 寄存器_[讀書筆記]《計算機科學速成課》—6 寄存器和內存

上節中介紹的ALU進行計算后得到的結果需要對其進行存儲&#xff0c;可能還要進行多個連續操作&#xff0c;這就需要用到計算機內存了。計算機使用的是隨機存取存儲器&#xff08;Random Access Memory, RAM&#xff09;&#xff0c;其只能在有電的情況下存儲東西。另一種存儲稱…

one more step_KDA新歌《MORE》的一些冷知識:伊芙琳換回原聲,摩托車是定制的

原標題&#xff1a;KDA新歌《MORE》的一些冷知識&#xff1a;伊芙琳換回原聲&#xff0c;摩托車是定制的KDA女團在2020年宣布回歸后就引發了很多的關注&#xff0c;回歸后也是推出了首支單曲《THE BADDEST》&#xff0c;這首歌在之后也引發了不少網友的模仿以及翻唱&#xff0c…

java jdbc連接 代碼塊_java 中JDBC連接數據庫代碼和步驟詳解及實例代碼

?創建一個以JDBC連接數據庫的程序&#xff0c;包含7個步驟&#xff1a;1、加載JDBC驅動程序&#xff1a;在連接數據庫之前&#xff0c;首先要加載想要連接的數據庫的驅動到JVM(Java虛擬機)&#xff0c;這通過java.lang.Class類的靜態方法forName(String className)實現。 例…

Java不是true值不變_Java語言中String a=a;String b=a; 為什么 a==b 值為 true?

目前排名比較靠前的答案都回答得很淺顯易懂了。我這里給你一個最可靠的理論依據(雖然比較晦澀)。Java語言規范(JavaSE 1.8版本)章節3.10.5中對此作了規范&#xff0c;因此所有的Java語言編譯、運行時環境實現都必須依據此規范來實現。里面有這么一句話Moreover, a string liter…

計算H時M分S秒以后是_關于工程量計算-深圳工程量計算培訓

一、梯形體積計算公式&#xff1f;第一種&#xff1a;梯形的體積&#xff08;上底下底&#xff09;高2總長度第二種&#xff1a;把四棱臺延長成椎上截面面積為s,下截面r,臺高為h,那么體積1/3(r-s)*h.若是正梯形物體則為V〔S1&#xff0b;S2&#xff0b;開根號&#xff08;S1*S2…

java數據庫edit_Java數據庫連接——JDBC基礎知識(操作數據庫:增刪改查)

一、JDBC簡介JDBC是連接java應用程序和數據庫之間的橋梁。什么是JDBC?Java語言訪問數據庫的一種規范,是一套API。JDBC (Java Database Connectivity) API&#xff0c;即Java數據庫編程接口&#xff0c;是一組標準的Java語言中的接口和類&#xff0c;使用這些接口和類&#xff…

java ssm 系統的搭建_SSM框架下的javaweb學生管理系統--搭建系統結構

業務需求&#xff1a;一個登錄頁面&#xff0c;一個學生展示頁面&#xff0c;添加、修改、刪除三個功能目的是給大家了解一個初級系統的構造&#xff0c;不寫那么復雜的需求了。從第一步開始&#xff1a;創建項目打開eclipse&#xff0c;點擊右上角的File-->New-->Dynami…