微信小程序如何設(shè)置基本的頁面樣式,做出用戶界面UI
一、總體樣式
微信小程序允許在頂層放置一個(gè)app.wxss
文件,里面采用 CSS 語法設(shè)置頁面樣式。這個(gè)文件的設(shè)置,對(duì)所有頁面都有效。
注意,小程序雖然使用 CSS 樣式,但是樣式文件的后綴名一律要寫成.wxss
。
打開上一篇教程的示例,在項(xiàng)目頂層新建一個(gè)app.wxss
文件,內(nèi)容如下。
page { background-color: pink; } text { font-size: 24pt; color: blue; }
上面代碼將整個(gè)頁面的背景色設(shè)為粉紅,然后將<text>
標(biāo)簽的字體大小設(shè)為 24 磅,字體顏色設(shè)為藍(lán)色。
可以看到,頁面的背景色變成粉紅,文本字體變大了,字體顏色變成了藍(lán)色。
實(shí)際開發(fā)中,直接對(duì)<text>
標(biāo)簽設(shè)置樣式,會(huì)影響到所有的文本。一般不這樣用,而是通過class
屬性區(qū)分不同類型的文本,然后再對(duì)每種class
設(shè)置樣式。
打開pages/home/home.wxml
文件,把頁面代碼改成下面這樣。
<view> <text class="title">hello world</text> </view>
上面代碼中,我們?yōu)?code><text>標(biāo)簽加上了一個(gè)class
屬性,值為title
。
然后,將頂層的app.wxss
文件改掉,不再直接對(duì)<text>
設(shè)置樣式,改成對(duì)class
設(shè)置樣式。
page { background-color: pink; } .title { font-size: 24pt; color: blue; }
上面代碼中,樣式設(shè)置在 class 上面(.title
),這樣就可以讓不同的class
呈現(xiàn)不同的樣式。修改之后,頁面的渲染結(jié)果并不會(huì)有變化。
二、Flex 布局
各種頁面元素的位置關(guān)系,稱為布局(layout),小程序官方推薦使用 Flex 布局。
下面演示如何通過 Flex 布局,將上面示例的文本放置到頁面中央。
首先,在pages/home
目錄里面,新建一個(gè)home.wxss
文件,這個(gè)文件設(shè)置的樣式,只對(duì) home 頁面生效。這是因?yàn)槊總€(gè)頁面通常有不一樣的布局,所以頁面布局一般不寫在全局的app.wxss
里面。
然后,home.wxss
文件寫入下面的內(nèi)容。
page { height: 100%; width: 750rpx; display: flex; justify-content: center; align-items: center; }
下面解釋一下上面這段 WXSS 代碼,還是很簡(jiǎn)單的。
(1)height: 100%;
:頁面高度為整個(gè)屏幕高度。
(2)width: 750rpx;
:頁面寬度為整個(gè)屏幕寬度。
注意,這里單位是rpx
,而不是px
。rpx
是小程序?yàn)檫m應(yīng)不同寬度的手機(jī)屏幕,而發(fā)明的一種長(zhǎng)度單位。不管什么手機(jī)屏幕,寬度一律為750rpx
。它的好處是換算簡(jiǎn)單,如果一個(gè)元素的寬度是頁面的一半,只要寫成width: 375rpx;
即可。
(3)display: flex;
:整個(gè)頁面(page)采用 Flex 布局。
(4)justify-content: center;
:頁面的一級(jí)子元素(這個(gè)示例是<view>
)水平居中。
(5)align-items: center;
:頁面的一級(jí)子元素(這個(gè)示例是<view>
)垂直居中。一個(gè)元素同時(shí)水平居中和垂直中央,就相當(dāng)于處在頁面的中央了。
三、WeUI
如果頁面的所有樣式都自己寫,還是挺麻煩的,也沒有這個(gè)必要。騰訊封裝了一套 UI 框架 WeUI,可以拿來用。
手機(jī)訪問 weui.io,可以看到這套 UI 框架的效果。
這一節(jié)就來看看,怎么使用這個(gè)框架的小程序版本 WeUI-WXSS,為我們的頁面加上官方的樣式。
首先,進(jìn)入它的 GitHub 倉庫,在dist/style
目錄下面,找到weui.wxss這個(gè)文件,將源碼全部復(fù)制到你的app.wxss
文件的頭部。
然后,將page/home/home.wxml
文件改成下面這樣。
<view> <button class="weui-btn weui-btn_primary"> 主操作 </button> <button class="weui-btn weui-btn_primary weui-btn_loading"> <i class="weui-loading"></i>正在加載 </button> <button class="weui-btn weui-btn_primary weui-btn_disabled"> 禁止點(diǎn)擊 </button> </view>
開發(fā)者工具導(dǎo)入項(xiàng)目代碼,頁面渲染。
可以看到,加入 WeUI 框架以后,只要為按鈕添加不同的 class,就能自動(dòng)出現(xiàn)框架提供的樣式。你可以根據(jù)需要,為頁面選擇不同的按鈕。
這個(gè)示例中,<button>
元素使用了下面的class
。
weui-btn
:按鈕樣式的基類weui-btn_primary
:主按鈕的樣式。如果是次要按鈕,就使用weui-btn_default
。weui-btn_loading
:按鈕點(diǎn)擊后,操作正在進(jìn)行中的樣式。該類內(nèi)部需要用<i>
元素,加上表示正在加載的圖標(biāo)。weui-btn_disabled
:按鈕禁止點(diǎn)擊的樣式。
WeUI 提供了大量的元素樣式,完整的清單可以查看這里。
四、加入圖片
美觀的頁面不能光有文字,還必須有圖片。小程序的<image>
組件就用來加載圖片。
打開home.wxml
文件,將其改為如下代碼。
<view> <image src="http://chabaoo.cn/images/logo.gif"></image> </view>
開發(fā)者工具加載項(xiàng)目代碼,頁面渲染,可以顯示圖片了。
<image>
組件有很多屬性,比如可以通過style
屬性指定樣式。
<view> <image src="http://chabaoo.cn/images/logo.gif" style="height: 375rpx; width: 375rpx;" ></image> </view>
默認(rèn)情況下,圖片會(huì)占滿整個(gè)容器的寬度(這個(gè)例子是<view>
的寬度),上面代碼通過style
屬性指定圖片的高度和寬度(占據(jù)頁面寬度的一半),渲染結(jié)果。
當(dāng)然,圖片樣式不一定寫在<image>
組件里面,也可以寫在 WXSS 樣式文件里面。
五、圖片輪播
小程序原生的<swiper>組件可以提供圖片輪播效果。
上面頁面的圖片上面,有三個(gè)提示點(diǎn),表示一共有三張圖片,可以切換顯示。
它的代碼很簡(jiǎn)單,只需要改一下home.wxml
文件即可。
<view> <swiper indicator-dots="{{true}}" autoplay="{{true}}" style="width: 750rpx;"> <swiper-item> <image src="http://chabaoo.cn/images/logo.gif"></image> </swiper-item> <swiper-item> <image src="http://chabaoo.cn/images/logo.gif"></image> </swiper-item> <swiper-item> <image src="http://chabaoo.cn/images/logo.gif"></image> </swiper-item> </swiper> </view>
上面代碼中,<swiper>
組件就是輪播組件,里面放置了三個(gè)<swiper-item>組件,表示有三個(gè)輪播項(xiàng)目,每個(gè)項(xiàng)目就是一個(gè)<image>
組件。
<swiper>
組件的indicator-dots
屬性設(shè)置是否顯示輪播點(diǎn),autoplay
屬性設(shè)置是否自動(dòng)播放輪播。它們的屬性值都是一個(gè)布爾值,這里要寫成{{true}}
。這種{{...}}
的語法,表示里面放置的是 JavaScript 代碼,這個(gè)放在下一次講解。
到此這篇關(guān)于微信小程序如何設(shè)置基本的頁面樣式,做出用戶界面UI的文章就介紹到這了,更多相關(guān)微信小程序設(shè)置頁面樣式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 微信小程序常用功能實(shí)例匯總包括上拉刷新,下拉加載,列表數(shù)據(jù)綁定,輪播,參數(shù)傳遞
- 微信小程序獲取當(dāng)前位置的詳細(xì)步驟
- 使用微信小程序API,調(diào)用微信的各種內(nèi)置能力。
- 微信小程序怎么加入JavaScript腳本,做出動(dòng)態(tài)效果
- 制作微信小程序的小白簡(jiǎn)單入門教程
- 微信小程序?qū)崿F(xiàn)云開發(fā)上傳文件、圖片功能
- 微信小程序獲取用戶頭像昵稱組件封裝實(shí)例(最新版)
- 微信小程序父子組件通信詳細(xì)介紹
- 微信小程序tabBar自定義彈窗遮擋不住解決技巧
- 微信小程序api列表匯總包括網(wǎng)絡(luò)API,媒體API,文件API ,微信小程序支付流程,位置API,界面API等
相關(guān)文章
分享javascript計(jì)算時(shí)間差的示例代碼
這篇文章主要為大家介紹了javascript計(jì)算時(shí)間差的示例代碼,,一般來說都是計(jì)算當(dāng)前時(shí)間和一個(gè)指定時(shí)間點(diǎn)之間的差距,感興趣的小伙伴們可以參考一下2016-01-015個(gè)書寫JavaScript代碼的壞習(xí)慣,看看你中槍了沒?
這篇文章主要介紹了5個(gè)書寫JavaScript代碼的壞習(xí)慣,看看你中槍了沒?,本文指出了你沒有使用命名空間、變量定義的東一個(gè)西一個(gè)、Javascript的變量范圍、Javascript的面向?qū)ο?、new關(guān)鍵字等問題,需要的朋友可以參考下2014-11-11javascript筆試題目附答案@20081025_jb51.net
網(wǎng)上找的javascript筆試題目,留檔給自己作參考。2008-10-10JavaScript中的作用域與閉包、原型與原型鏈、異步與單線程
JavaScript的三座大山指的是:作用域和閉包、原型和原型鏈、異步與單線程,這些概念在日常的開發(fā)工作中經(jīng)常被提及,并對(duì)我們理解和編寫高質(zhì)量的JavaScript代碼至關(guān)重要2024-02-02javascript 設(shè)計(jì)模式之享元模式原理與應(yīng)用詳解
這篇文章主要介紹了javascript 設(shè)計(jì)模式之享元模式,結(jié)合實(shí)例形式詳細(xì)分析了javascript 設(shè)計(jì)模式之享元模式相關(guān)概念、原理、應(yīng)用方法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04JavaScript中對(duì)象property的讀取和寫入方法介紹
這篇文章主要介紹了JavaScript中對(duì)象property的讀取和寫入方法介紹,本文講解了原型繼承鏈中property的讀取、原型繼承鏈中property的寫入等內(nèi)容,需要的朋友可以參考下2014-12-12js+CSS實(shí)現(xiàn)模擬華麗的select控件下拉菜單效果
這篇文章主要介紹了js+CSS模擬select控件下拉菜單效果,通過javascript鼠標(biāo)事件結(jié)合css控制實(shí)現(xiàn)select下拉菜單效果,整體效果華麗美觀,需要的朋友可以參考下2015-09-09JavaScript面向?qū)ο笾接徐o態(tài)變量實(shí)例分析
這篇文章主要介紹了JavaScript面向?qū)ο笾接徐o態(tài)變量,結(jié)合實(shí)例形式分析了私有靜態(tài)變量的定義與使用方法,需要的朋友可以參考下2016-01-01