【微信小程序創(chuàng)作之路】- 小程序常用頁面樣式
第四章 微信小程序用頁面樣式
前言
本章節(jié)主要講解,小程序中常用樣式,涉及到WXML和WXSS文件。例如:頁面布局、整體樣式、按鈕、圖片輪播、條件渲染(wx:if wx:for)等。
一、總體樣式–全局樣式and局部樣式
1.全局樣式
微信小程序頂層的app.wxss文件,代表小程序全局樣式,作用于所有頁面。采用CSS語法設(shè)置頁面樣式。
??我們通過代碼來演示
??????在最頂層的app.wxss文件中設(shè)置整個頁面背景為紫色,<text>
標(biāo)簽的字體為30磅,顏色字體為粉紅色。
page {
background-color: blueviolet;
}
text{
font-size: 30pt;
color: pink;
}
小程序第一頁
??????頁面跳轉(zhuǎn)
<view>
<navigator url="../home/home">跳轉(zhuǎn)到第二頁</navigator>
</view>
小程序第二頁
2.局部樣式
在頁面文件內(nèi)創(chuàng)建的.wxss文件為局部樣式,只作用于當(dāng)前頁面。
??????注:當(dāng)局部樣式和全局樣式?jīng)_突時,根據(jù)就近原則
,局部樣式會覆蓋全局樣式。
??我們通過代碼來演示
??????把home文件中的home.wxss文件中設(shè)置整個頁面背景為黑色,<text>
標(biāo)簽的字體為30磅,顏色字體為白色。
home.wxss代碼
/* pages/home/home.wxss */
page {
background-color: black;
}
text{
font-size: 30pt;
color: white;
}
首頁
第二頁
二、Flex布局
各種頁面元素的位置關(guān)系,稱為布局(layout),小程序官方推薦使用 Flex 布局。如果有想了解Flex布局的同學(xué),可以看阮一峰老師的《Flex 布局教程》。
??我們通過代碼來演示
在home.wxss文件中加入以下代碼
page {
height: 100%;
width: 750rpx;
display: flex;
justify-content: center;
align-items: center;
}
下面解釋一下上面這段 WXSS 代碼,還是很簡單的。
(1)height: 100%;:頁面高度為整個屏幕高度。
(2)width: 750rpx;:頁面寬度為整個屏幕寬度。
(3)display: flex;:頁面(home)采用 Flex 布局。
(4)justify-content: center;:頁面的一級子元素(這個示例是< view>)水平居中。
(5)align-items: center;:頁面的一級子元素(這個示例是< view>)垂直居中。一個元素同時水平居中和垂直中央,就相當(dāng)于處在頁面的中央了。
??????rpx單位
通過上面的代碼示例我們發(fā)現(xiàn)設(shè)置高度和寬度的單位是rpx
,那rpx
和px
之間的有什么關(guān)系呢?
①rpx簡介rpx(responsive pixel)
是微信小程序用來解決屏幕適配的尺寸單位。
②rpx原理
rpx實現(xiàn)原理:因為不同的手機屏幕大小不同,為了使小程序適應(yīng)所有設(shè)備,rpx
把所有的設(shè)備屏幕寬度分為750份(任何設(shè)備的屏幕總寬度為750rpx)。在較小的設(shè)備上,1rpx
所代表的寬度較小;較大的設(shè)備上,1rpx
所代表的寬度較大。
小程序在不同設(shè)備上運行時,就會把 rpx 的樣式單位換算成對應(yīng)的像素單位(px)來渲染,從而實現(xiàn)屏幕適配。
③rpx和px之間的單位換算
小程序官方建議:開發(fā)小程序時,可以用IPhone6作為視覺稿的標(biāo)準(zhǔn)。
因為IPhone6,屏幕寬度為375px,換算成rpx
:
設(shè)備 | rpx換算px | px換算rpx |
---|---|---|
IPhone6 | 1rpx=0.5px | 1px=2rpx |
三、樣式導(dǎo)入
使用WXSS提供的@import
語法,可以導(dǎo)入樣式表。
??我們通過代碼來演示
項目結(jié)構(gòu)
index.wxss中加入使字體變綠的樣式
/**index.wxss**/
.indexss{
font-size: 30pt;
color: green;
}
home.wxml引入樣式
<view>
<text class="indexss">第二頁</text>
</view>
我們發(fā)現(xiàn)并沒有改變
在home.wxss中引入index.wxss
@import"../index/index.wxss"
字體顏色發(fā)生了變化
四、常用按鈕樣式
小程序按鈕使用<button> </button>
閉合標(biāo)簽。
按鈕基本屬性,更多屬性可以查看小程序官網(wǎng) button
屬性 | 類型 | 默認(rèn)值 | 必填 | 說明 |
---|---|---|---|---|
size | string | default | 否 | 按鈕的大小 |
type | string | default | 否 | 按鈕的樣式類型 |
plain | boolean | false | 否 | 按鈕是否鏤空,背景色透明 |
disabled | boolean | false | 否 | 是否禁用 |
loading | boolean | false | 否 | 名稱前是否帶 loading 圖標(biāo) |
form-type | string | 否 | 用于 form 組件,點擊分別會觸發(fā) form 組件的 submit/reset 事件 | |
open-type | string | 否 | 微信開放能力 |
??我們通過代碼來演示
??????type屬性指定按鈕的顏色類型
<!-- 通過type屬性指定按鈕顏色類型 -->
<button >普通按鈕</button>
<button type="default" >默認(rèn)按鈕</button>
<button type="primary">主色調(diào)</button>
<button type=warn">警告</button>
??????size屬性指定按鈕的大小 默認(rèn)值只有兩個
- default 默認(rèn)大小
- mini 小尺寸
<!-- 通過size屬性指定按鈕的大小 -->
<button size="mini" >普通按鈕</button>
<button type="default" size="default" >默認(rèn)按鈕</button>
??????各種樣式按鈕
點擊進入
在博主“熱愛編程的小白白”文章中看到此網(wǎng)站,很優(yōu)秀。感謝大佬的文章
選擇自己喜歡的按鈕
把CSS和HTML直接復(fù)制到wxss和wxml中
index.wxss
.btn {
display: block;
padding: 0.7em 1em;
background: transparent;
outline: none;
border: 0;
color: #d4af37;
letter-spacing: 0.1em;
font-family: monospace;
font-size: 17px;
font-weight: bold;
z-index: 1;
}
.cube {
position: relative;
transition: all 0.5s;
}
.cube .bg-top {
position: absolute;
height: 10px;
background: #d4af37;
bottom: 100%;
left: 5px;
right: -5px;
transform: skew(-45deg, 0);
margin: 0;
transition: all 0.4s;
}
.cube .bg-top .bg-inner {
bottom: 0;
}
.cube .bg {
position: absolute;
left: 0;
bottom: 0;
top: 0;
right: 0;
background: #d4af37;
transition: all 0.4s;
}
.cube .bg-right {
position: absolute;
background: #d4af37;
top: -5px;
z-index: 0;
bottom: 5px;
width: 10px;
left: 100%;
transform: skew(0, -45deg);
transition: all 0.4s;
}
.cube .bg-right .bg-inner {
left: 0;
}
.cube .bg-inner {
background: #28282d;
position: absolute;
left: 2px;
right: 2px;
top: 2px;
bottom: 2px;
}
.cube .text {
position: relative;
transition: all 0.4s;
}
.cube:hover .bg-inner {
background: #d4af37;
transition: all 0.4s;
}
.cube:hover .text {
color: #28282d;
transition: all 0.4s;
}
.cube:hover .bg-right,
.cube:hover .bg,
.cube:hover .bg-top {
background: #28282d;
}
.cube:active {
z-index: 9999;
animation: bounce .1s linear;
}
@keyframes bounce {
50% {
transform: scale(0.9);
}
}
index.wxml
<button type="button" class="btn cube cube-hover">
<div class="bg-top">
<div class="bg-inner"></div>
</div>
<div class="bg-right">
<div class="bg-inner"></div>
</div>
<div class="bg">
<div class="bg-inner"></div>
</div>
<div class="text">Hover Me</div>
</button>
五、圖片插入
圖片插入使用<image> </image>
標(biāo)簽實現(xiàn)。<image> </image>
標(biāo)簽有很多屬性,點擊查看
屬性 | 類型 | 默認(rèn)值 | 必填 | 說明 |
---|---|---|---|---|
src | string | 否 | 圖片資源地址 | |
mode | string | scaleToFill | 否 | 圖片裁剪、縮放的模式 |
style | string | 否 | 圖片樣式 |
??我們通過代碼來演示
??????通過代碼指定圖片的高度和寬度占屏幕一半
<view>
<image src='https://img1.baidu.com/it/u=1919509102,1927615551&fm=253&fmt=auto&app=120&f=JPEG?w=889&h=500'
style="height: 375rpx; width: 375rpx;"></image>
</view>
六、圖片輪播
圖片輪播使用<swiper> </swiper>
標(biāo)簽實現(xiàn)
此標(biāo)簽有很多屬性
屬性 | 類型 | 默認(rèn)值 | 必填 | 說明 |
---|---|---|---|---|
indicator-dots | boolean | false | 否 | 是否顯示面板指示點 |
indicator-color | color | rgba(0, 0, 0, .3) | 否 | 指示點顏色 |
indicator-active-color | color | #000000 | 否 | 當(dāng)前選中的指示點顏色 |
autoplay | boolean | false | 否 | 是否自動切換 |
interval | number | 5000 | 否 | 自動切換時間間隔 |
circular | boolean | false | 否 | 是否采用銜接滑動 |
??我們通過代碼來演示
??????通過代碼實現(xiàn)圖片輪播
這里我們直接引用《阮一峰老師的例子》
<view>
<swiper
indicator-dots="{{true}}"
autoplay="{{true}}"
style="width: 750rpx;"
indicator-active-color="#000000">
<swiper-item>
<image src="https://picsum.photos/200"></image>
</swiper-item>
<swiper-item>
<image src="https://picsum.photos/250"></image>
</swiper-item>
<swiper-item>
<image src="https://picsum.photos/300"></image>
</swiper-item>
</swiper>
</view>
上述代碼中,**< swiper>組件就是輪播組件,里面放置了三個< swiper-item>組件,表示有三個輪播項目,每個項目就是一個< image>**組件。
七、圖片滾動
圖片滾動使用<scroll-view> </scroll-view>
標(biāo)簽實現(xiàn)
??我們通過代碼來演示
??????通過代碼實現(xiàn)縱向滾動
home.wxss
.container_2 view{
width: 100px;
height: 100px;
text-align: center;
line-height: 100px;
}
.container_2 view:nth-child(1){
background-color: red;
}
.container_2 view:nth-child(2){
background-color: yellowgreen;
}
.container_2 view:nth-child(3){
background-color: blue;
}
.container_2{
display: flex;
justify-content: space-around
}
.container_2{
border: 1px solid yellowgreen;
height: 130px;
width: 100px;
}
home.wxml
<scroll-view class="container_2" scroll-y>
<view>G</view>
<view>C</view>
<view>L</view>
</scroll-view>
八、條件渲染
條件渲染使用<wx:if> </wx:if>
<wx:for> </wx:for>
標(biāo)簽實現(xiàn)
1.< wx:if>
??我們通過代碼來演示
??????通過代碼實現(xiàn)wx:if
index.wxml
<button wx:if="{{flag==0}}">普通按鈕</button>
<button type="default" wx:elif="{{flag==1}}">默認(rèn)按鈕</button>
<button type="primary" wx:elif="{{flag==2}}">主色調(diào)</button>
<button type=warn" wx:else>警告</button>
index.js
Page({
data: {
now: (new Date()).toLocaleString(),
flag: 1
}
})
當(dāng)我們把flag改為10
index.js
Page({
data: {
now: (new Date()).toLocaleString(),
flag: 10
}
})
??????一次性通過<wx:if>
控制多個組件,使用<block>
<block wx:if="{{flag==10}}">
<button type="default">默認(rèn)按鈕</button>
<button type="primary">主色調(diào)</button>
</block>
??????注:wx:if 與 hidden不同
wx:if 使用動態(tài)創(chuàng)建和移除元素的方式控制
hidden使用切換樣式方式控制
2.< wx:for>
該標(biāo)簽有很多屬性
屬性 | 類型 | 默認(rèn)值 | 必填 | 說明 |
---|---|---|---|---|
wx:for-index | string | 否 | 指定當(dāng)前循環(huán)項的索引變量名 | |
wx:for-item | string | 否 | 指定當(dāng)前項變量名 | |
wx:key | string | 否 | 指定當(dāng)前數(shù)組key |
??????通過代碼實現(xiàn)< wx:for>
當(dāng)我們引入js中數(shù)組時,可以通過index得到索引,通過item得到內(nèi)容
index.js
Page({
data: {
now: (new Date()).toLocaleString(),
flag: 10,
arry:['java','pyhton','C++']
}
})
index.wxml
<view wx:for="{{arry}}">
數(shù)組索引為:{{index}},內(nèi)容為:{{item}}
</view>
??????wx:for-index
于wx:for-item
使用
index.wxml
<view wx:for="{{arry}}" wx:for-index="id" wx:for-item="name">
數(shù)組索引為:{{id}},內(nèi)容為:{{name}}
</view>
文章來源:http://www.zghlxwxcb.cn/news/detail-568906.html
總結(jié)
本文通過很多代碼示例來展示了小程序常用頁面樣式,這里非常感謝阮一峰老師和小白白大佬的博客,下一章我們講解JSON文件配置小程序?qū)Ш綑谛畔⒌取?span toymoban-style="hidden">文章來源地址http://www.zghlxwxcb.cn/news/detail-568906.html
到了這里,關(guān)于【微信小程序創(chuàng)作之路】- 小程序常用頁面樣式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!