常用樣式和組件
1. 組件和樣式介紹
在開 Web 網站的時候:
頁面的結構由 HTML
進行編寫,例如:經常會用到 div
、p
、 span
、img
、a
等標簽
頁面的樣式由 CSS
進行編寫,例如:經常會采用 .class
、#id
、element
等選擇器
但在小程序中不能使用?HTML
?標簽,也就沒有?DOM
?和?BOM
,同時僅僅支持部分?CSS
選擇器
不過不用擔心,小程序中提供了同樣的角色:
其中 WXML
充當的就是類似 HTML
的角色,只不過在 WXML
中沒有div
、p
、 span
、img
、a
等標簽,在 WXML
中需要使用 小程序提供的 view
、text
、image
、navigator
等標簽來構建頁面結構,小程序提供的這些標簽,我們稱為 "組件",開發者可以通過組合這些基礎組件進行快速開發。
WXSS
則充當的就是類似 CSS
的角色,WXSS
具有 CSS
大部分的特性,小程序在 WXSS
也做了一些擴充和修改,新增了尺寸單位 rpx
、提供了全局的樣式和局部樣式,另外需要注意的是WXSS
僅支持部分 CSS
選擇器。
小程序給提供的組件文檔:WXML
小程序樣式官方文檔:WXSS
2. 樣式-尺寸單位
隨著智能手機的發展,手機設備的寬度也逐漸多元化,這就需要開發者在開發的時候,需要適配不同屏幕寬度的手機。為了解決屏幕適配的問題,微信小程序推出了 rpx 單位
小程序運行在手機移動端,宿主環境是微信,因為手機尺寸的不一致,在寫 CSS
樣式時,開發者需要考慮到手機設備的屏幕會有不同的寬度和設備像素比,會采用一些技巧來算像素單位從而實現頁面的適配。而 WXSS
在底層支持新的尺寸單位 rpx
,開發者可以免去換算的煩惱,只要交給小程序底層來換算即可。
rpx
: 小程序新增的拓展單位,可以根據屏幕寬度進行自適應,小程序規定任何型號手機:屏幕寬都為 750 rpx。
📌 注意事項:
小程序規定任何型號手機:屏幕寬都為 750 rpx
🔔 開發建議:
開發微信小程序時設計師可以用 iPhone6 作為視覺稿的標準。
iPhone6 的設計稿一般是 750px,小程序的寬是 750rpx
在我們開發小程序頁面時,量取多少 px ,直接寫多少 rpx,開發起來更方便,也能夠適配屏幕的適配
原因:
設計稿寬度是 750px,而 iPhone6 的手機設備寬度是 375px, 設計稿想完整展示到手機中,就需要縮小一倍
在 iPhone6 下,px 和 rpx 的換算關系是:1rpx = 0.5px, 750rpx = 375px,剛好能夠填充滿整個屏幕的寬度
落地代碼:
?? pages/index/index.wxml
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#aa5500"><!-- 需求:繪制一個盒子,讓盒子的寬度占據屏幕的一半 --></span>
?
<span style="color:#aa5500"><!-- view 是小程序提供的組件,是容器組件,類似于 div,也是一個塊級元素,占據一行 --></span>
<span style="color:#aa5500"><!-- 如果想實現需求,不能使用 px,px 使固定單位,不能實現自適應,需要使用小程序提供的 rpx --></span>
<span style="color:#aa5500"><!-- 微信小程序規定,不管是什么型號的手機,屏幕的寬度都是 750rpx --></span>
<span style="color:#aa5500"><!-- rpx 單位能夠實現自適應的 --></span>
<span style="color:#117700"><</span><span style="color:#117700">view</span> <span style="color:#0000cc">class</span>=<span style="color:#aa1111">"box"</span><span style="color:#117700">></span>尚硅谷<span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span></span></span>
?? pages/index/index.wxss
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#aa5500">/* 通過演示使用 css 作為單位,px 是不具有響應式的 */</span>
?
<span style="color:#aa5500">/* image {</span>
<span style="color:#aa5500"> width: 375px;</span>
<span style="color:#aa5500"> height: 600px;</span>
<span style="color:#aa5500"> background-color: lightgreen;</span>
<span style="color:#aa5500">} */</span>
?
<span style="color:#555555">.box</span> {<span style="color:#000000">width</span>: <span style="color:#116644">375rpx</span>;<span style="color:#000000">height</span>: <span style="color:#116644">600rpx</span>;<span style="color:#000000">background-color</span>: <span style="color:#770088">lightgreen</span>;
}
?</span></span>
3. 樣式-全局樣式和局部樣式
在進行網頁開發時,我們經常創建 global.css、base.css 或者 reset.css 作為全局樣式文件進行重置樣式或者樣式統一,然后在每個頁面或組件中寫當前頁面或組件的局部樣式,小程序中也存在全局樣式和局部樣式,這一節我們來學習一下小程序中的全局樣式和局部樣式
知識點:
全局樣式:指在 app.wxss
中定義的樣式規則,作用于每一個頁面,例如:設置字號、背景色、寬高等全局樣式
局部樣式:指在page.wxss
中定義的樣式規則,只作用在對應的頁面,并會覆蓋 app.wxss 中相同的選擇器。
案例:
在 app.wxss
中定義全局樣式,設置 text
組件的顏色以及字號大小,這段樣式將會作用于任意頁面的 text
組件
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#aa5500">/* app.wxss */</span>
?
<span style="color:#117700">text</span> {<span style="color:#000000">color</span>: <span style="color:#770088">lightseagreen</span>;<span style="color:#000000">font-size</span>: <span style="color:#116644">50rpx</span>;
}
?</span></span>
然后在 cate.wxss
中定義局部樣式,設置 text
組件的顏色以及字號大小,會發現局部樣式將全局樣式進行了覆蓋
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#aa5500">/* pages/index/index.wxss */</span>
?
<span style="color:#117700">text</span> {<span style="color:#000000">color</span>: <span style="color:#770088">red</span>;<span style="color:#000000">font-size</span>: <span style="color:#116644">30rpx</span>;
}
?</span></span>
4. 劃分頁面結構-view 組件
使用小程序常用的組件實現項目首頁的效果,會使用以下組件:
1.view 組件
2.text 組件
3.image 組件
4.navigator 組件
5.swiper 和 swiper-item 組件
6.scroll-view 組件
7.字體圖標
分析頁面結構,使用 view 組件將頁面拆分成 4 個區域
view 是小程序提供的組件,是容器組件,類似于 div,也是一個塊級元素,占據一行
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#aa5500"><!-- 輪播圖區域 --></span>
<span style="color:#117700"><</span><span style="color:#117700">view</span> <span style="color:#0000cc">class</span>=<span style="color:#aa1111">"swiper"</span><span style="color:#117700">></span>1<span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span>
?
<span style="color:#aa5500"><!-- 公司相關信息 --></span>
<span style="color:#117700"><</span><span style="color:#117700">view</span> <span style="color:#0000cc">class</span>=<span style="color:#aa1111">"info"</span><span style="color:#117700">></span>2<span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span>
?
<span style="color:#aa5500"><!-- 商品導航區域 --></span>
<span style="color:#117700"><</span><span style="color:#117700">view</span> <span style="color:#0000cc">class</span>=<span style="color:#aa1111">"goods-nav"</span><span style="color:#117700">></span>3<span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span>
?
<span style="color:#aa5500"><!-- 商品推薦區域 --></span>
<span style="color:#117700"><</span><span style="color:#117700">view</span> <span style="color:#0000cc">class</span>=<span style="color:#aa1111">"hot"</span><span style="color:#117700">></span>4<span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span>
?</span></span>
5. 首頁輪播圖區域-swiper 組件
在前面我們已經介紹了小程序的組件應該怎么使用,又學習了小程序中的樣式,接下來帶著大家使用小程序提供的組件,完成小程序的基本結構,通過這個案例我們能夠學習到小程序常用的組件以及一些布局技巧。
知識點:
在進行網頁開發的時候,實現輪播圖的時候,我們通常先使用 HTML 、CSS 實現輪播圖的樣式結構,然后使用 JS 控制輪播圖的效果,或者直接使用插件實現輪播圖的功能,而在小程序中實現小程序功能則相對簡單很多。
在小程序中,提供了 swiper
和 swiper-item
組件實現輪播圖:
-
swiper
:滑塊視圖容器,常用來實現輪播圖,其中只可放置 swiper-item 組件,否則會導致未定義的行為 -
swiper-item
:僅可放置在swiper組件中,寬高自動設置為100%,代表swiper
中的每一項
我們可以使用 swiper
組件提供的屬性,實現輪播圖的訂制,常見屬性如下:
屬性 | 說明 | 類型 |
---|---|---|
indicator-dots | 是否顯示面板指示點 | boolean (默認 false) |
indicator-color | 指示點顏色 | color (默認:rgba(0, 0, 0, .3)) |
indicator-active-color | 當前選中的指示點顏色 | color (默認:#000000) |
autoplay | 是否自動切換 | boolean (默認 false) |
interval | 自動切換時間間隔 | number (默認 5000) |
circular | 是否采用銜接滑動 | boolean (默認 false) |
其他屬性... |
落地代碼:
?? pages/index/index.wxml
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#aa5500"><!-- 輪播圖區域 --></span>
<span style="color:#117700"><</span><span style="color:#117700">view</span> <span style="color:#0000cc">class</span>=<span style="color:#aa1111">"swiper"</span><span style="color:#117700">></span><span style="color:#aa5500"><!-- swiper 組件實現輪播圖區域的繪制 --></span><span style="color:#aa5500"><!-- swiper 組件,滑塊視圖容器 --></span><span style="color:#117700"><</span><span style="color:#117700">swiper</span><span style="color:#0000cc">circular</span><span style="color:#0000cc">autoplay</span><span style="color:#0000cc">indicator-dots</span><span style="color:#0000cc">interval</span>=<span style="color:#aa1111">"2000"</span><span style="color:#0000cc">indicator-color</span>=<span style="color:#aa1111">"#efefef"</span><span style="color:#0000cc">indicator-active-color</span>=<span style="color:#aa1111">"#ccc"</span><span style="color:#117700">></span><span style="color:#aa5500"><!-- swiper 組件內部不能寫其他組件或內容 --></span><span style="color:#aa5500"><!-- 在 swiper 組件內部只能寫 swiper-item 組件 --></span><span style="color:#aa5500"><!-- swiper-item 組件只能放到 swiper 組件中,寬高自動設置為 100% --></span><span style="color:#117700"><</span><span style="color:#117700">swiper-item</span><span style="color:#117700">></span>第一張輪播圖<span style="color:#117700"></</span><span style="color:#117700">swiper-item</span><span style="color:#117700">></span>
?<span style="color:#117700"><</span><span style="color:#117700">swiper-item</span><span style="color:#117700">></span>第二張輪播圖<span style="color:#117700"></</span><span style="color:#117700">swiper-item</span><span style="color:#117700">></span>
?<span style="color:#117700"><</span><span style="color:#117700">swiper-item</span><span style="color:#117700">></span>第三張輪播圖<span style="color:#117700"></</span><span style="color:#117700">swiper-item</span><span style="color:#117700">></span><span style="color:#117700"></</span><span style="color:#117700">swiper</span><span style="color:#117700">></span>
<span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span></span></span>
?? pages/index/index.scss
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#117700">page</span> {<span style="color:#000000">height</span>: <span style="color:#116644">100vh</span>;<span style="color:#000000">background-color</span>: <span style="color:#221199">#efefef</span> <span style="color:#770088">!important</span>;
}
?
<span style="color:#117700">swiper</span> {<span style="color:#000000">swiper-item</span> {
?// 在 <span style="color:#000000">Sass</span> 拓展語言中,& 符號表示父選擇器的引用。它用于在嵌套的選擇器中引用父選擇器// 下面這段代碼在編譯以后,生成的代碼是 <span style="color:#000000">swiper-item</span>:<span style="color:#000000">first-child</span>&:<span style="color:#000000">first-child</span> {<span style="color:#000000">background-color</span>: <span style="color:#770088">skyblue</span>;}
?&:<span style="color:#008855">nth-child</span>(<span style="color:#116644">2</span>) {<span style="color:#000000">background-color</span>: <span style="color:#770088">lightcoral</span>;}
?&:<span style="color:#008855">last-child</span> {<span style="color:#000000">background-color</span>: <span style="color:#770088">lightseagreen</span>;}}
}</span></span>
6. 首頁輪播圖區域-image 組件
在這一節中,我們開始來學習小程序中的image
組件,通過學習該組件掌握組件的學習方法和使用技巧
在小程序中沒有 img 標簽,添加圖片需要使用小程序提供的image
組件,image
組件的語法如下:
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#aa5500"><!-- src:圖片資源地址 --></span>
<span style="color:#aa5500"><!-- mode:圖片裁剪、縮放的模式 --></span>
<span style="color:#aa5500"><!-- lazy-load:圖片懶加載,在即將進入一定范圍(上下三屏)時才開始加載 --></span>
<span style="color:#117700"><</span><span style="color:#117700">image</span> <span style="color:#0000cc">src</span>=<span style="color:#aa1111">"/assets/tom.png"</span> <span style="color:#0000cc">mode</span>=<span style="color:#aa1111">"heightFix"</span> <span style="color:#0000cc">lazy-load</span>=<span style="color:#aa1111">”{{</span> <span style="color:#0000cc">true</span> <span style="color:#0000cc">}}“</span> <span style="color:#117700">/></span></span></span>
落地代碼
?? pages/index/index.wxml
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#aa5500"><!-- 輪播圖區域 --></span>
<span style="color:#117700"><</span><span style="color:#117700">view</span> <span style="color:#0000cc">class</span>=<span style="color:#aa1111">"swiper"</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">swiper</span><span style="color:#0000cc">circular</span><span style="color:#0000cc">autoplay</span><span style="color:#0000cc">indicator-dots</span><span style="color:#0000cc">interval</span>=<span style="color:#aa1111">"2000"</span><span style="color:#0000cc">indicator-color</span>=<span style="color:#aa1111">"#efefef"</span><span style="color:#0000cc">indicator-active-color</span>=<span style="color:#aa1111">"#ccc"</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">swiper-item</span><span style="color:#117700">></span><span style="color:#aa5500"><!-- 在小程序中圖片不能使用 img 標簽,使用后不會生效 --></span><span style="color:#aa5500"><!-- <img src="../../assets/banner/banner-1.png" alt=""/> --></span>
?<span style="color:#aa5500"><!-- 需要使用 images 組件 --></span><span style="color:#aa5500"><!-- image 組件不給 src 屬性設置默認值,也占據寬和高 --></span><span style="color:#aa5500"><!-- image 默認具有寬度,寬是 320px 高度是 240px --></span>
?<span style="color:#aa5500"><!-- mode 屬性:用來設置圖片的裁切模式、縱橫比例、顯示的位置 --></span><span style="color:#aa5500"><!-- show-menu-by-longpress 屬性:長按轉發給朋友、收藏、保存圖片 --></span><span style="color:#117700"><</span><span style="color:#117700">image</span> <span style="color:#0000cc">src</span>=<span style="color:#aa1111">"../../assets/banner/banner-1.png"</span> <span style="color:#0000cc">mode</span>=<span style="color:#aa1111">"aspectFill"</span> <span style="color:#0000cc">show-menu-by-longpress</span> <span style="color:#117700">/></span><span style="color:#117700"></</span><span style="color:#117700">swiper-item</span><span style="color:#117700">></span>
?<span style="color:#117700"><</span><span style="color:#117700">swiper-item</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">image</span> <span style="color:#0000cc">src</span>=<span style="color:#aa1111">"../../assets/banner/banner-2.png"</span> <span style="color:#117700">/></span><span style="color:#117700"></</span><span style="color:#117700">swiper-item</span><span style="color:#117700">></span>
?<span style="color:#117700"><</span><span style="color:#117700">swiper-item</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">image</span> <span style="color:#0000cc">src</span>=<span style="color:#aa1111">"../../assets/banner/banner-3.png"</span> <span style="color:#117700">/></span><span style="color:#117700"></</span><span style="color:#117700">swiper-item</span><span style="color:#117700">></span><span style="color:#117700"></</span><span style="color:#117700">swiper</span><span style="color:#117700">></span>
<span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span>
?</span></span>
?? pages/index/index.scss
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#aa5500">/** index.wxss **/</span>
<span style="color:#117700">page</span> {<span style="color:#000000">height</span>: <span style="color:#116644">100vh</span>;<span style="color:#000000">background-color</span>: <span style="color:#221199">#efefef</span> <span style="color:#770088">!important</span>;
}
?
<span style="color:#117700">swiper</span> {<span style="color:#000000">height</span>: <span style="color:#116644">360rpx</span>;
?<span style="color:#117700">swiper-item</span> {<span style="color:#117700">image</span> {<span style="color:#000000">width</span>: <span style="color:#116644">100%</span>;<span style="color:#000000">height</span>: <span style="color:#116644">100%</span>;}
?<span style="color:#aa5500">// 在 Sass 拓展語言中,& 符號表示父選擇器的引用。它用于在嵌套的選擇器中引用父選擇器</span><span style="color:#aa5500">// 下面這段代碼在編譯以后,生成的代碼是 swiper-item:first-child</span><span style="color:#aa5500">// &:first-child {</span><span style="color:#aa5500">// ? background-color: skyblue;</span><span style="color:#aa5500">// }</span>
?<span style="color:#aa5500">// &:nth-child(2) {</span><span style="color:#aa5500">// ? background-color: lightcoral;</span><span style="color:#aa5500">// }</span>
?<span style="color:#aa5500">// &:last-child {</span><span style="color:#aa5500">// ? background-color: lightseagreen;</span><span style="color:#aa5500">// }</span>}
}</span></span>
7. 公司宣傳語區域-text 組件
落地代碼:
?? pages/index/index.wxml
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#aa5500"><!-- 公司相關信息 --></span>
<span style="color:#117700"><</span><span style="color:#117700">view</span> <span style="color:#0000cc">class</span>=<span style="color:#aa1111">"info"</span><span style="color:#117700">></span><span style="color:#aa5500"><!-- text 是文本組件,類似于 span,是行內元素 --></span>
?<span style="color:#aa5500"><!-- user-select:文本是否可選 --></span><span style="color:#aa5500"><!-- space:是否連續展示空格 --></span><span style="color:#aa5500"><!-- <text user-select space="ensp">同城 ? ? ? 配送</text> --></span>
?<span style="color:#117700"><</span><span style="color:#117700">text</span><span style="color:#117700">></span>同城配送<span style="color:#117700"></</span><span style="color:#117700">text</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">text</span><span style="color:#117700">></span>行業龍頭<span style="color:#117700"></</span><span style="color:#117700">text</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">text</span><span style="color:#117700">></span>半小時送達<span style="color:#117700"></</span><span style="color:#117700">text</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">text</span><span style="color:#117700">></span>100% 好評<span style="color:#117700"></</span><span style="color:#117700">text</span><span style="color:#117700">></span>
<span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span></span></span>
?? pages/index/index.scss
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#555555">.info</span> {<span style="color:#000000">display</span>: <span style="color:#221199">flex</span>;<span style="color:#000000">justify-content</span>: <span style="color:#221199">space-between</span>;<span style="color:#000000">align-items</span>: <span style="color:#221199">center</span>;<span style="color:#000000">margin</span>: <span style="color:#116644">16rpx</span> <span style="color:#116644">0rpx</span>;<span style="color:#000000">padding</span>: <span style="color:#116644">20rpx</span>;<span style="color:#000000">font-size</span>: <span style="color:#116644">24rpx</span>;<span style="color:#000000">background-color</span>: <span style="color:#221199">#fff</span>;<span style="color:#000000">border-radius</span>: <span style="color:#116644">10rpx</span>;
}</span></span>
8. 商品導航的區域-組件結合使用
到目前為止我們已經學習了 view
、text
、image
以及 swiper
和 swiper-item
組件的使用
接下來我們繼續來使用小程序提供的組件實現首頁的功能,這節我們需要實現的是商品導航區域的結構
知識點:
在網頁開發中,實現該布局非常簡單,使用 div
嵌套 或者 ul
包裹住 li
,li
在包裹住 img
就能夠實現該效果
但在小程序中沒有 HTML 中的 div
、ul
、li
標簽,所以繪制導航區域需要使用小程序提供的的組件,我們先來學習小程序的兩個組件:
-
view
:視圖容器組件,相當于 HTML 中的div
,是一個塊級元素,獨占一行 -
text
:文本組件,相當于span
,是一個行內元素
落地代碼:
?? pages/index/index.wxml
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#aa5500"><!-- view:視圖容器,作用類似于 div,是一個塊級元素,獨占一行 --></span>
<span style="color:#117700"><</span><span style="color:#117700">view</span> <span style="color:#0000cc">class</span>=<span style="color:#aa1111">"navs"</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">view</span><span style="color:#117700">></span><span style="color:#aa5500"><!-- text:文本組件,類似于 span,是一個行內元素 --></span><span style="color:#117700"><</span><span style="color:#117700">image</span> <span style="color:#0000cc">src</span>=<span style="color:#aa1111">"/assets/cate-1.png"</span> <span style="color:#0000cc">alt</span>=<span style="color:#aa1111">""</span><span style="color:#117700">/></span><span style="color:#117700"><</span><span style="color:#117700">text</span><span style="color:#117700">></span>愛禮精選<span style="color:#117700"></</span><span style="color:#117700">text</span><span style="color:#117700">></span><span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">view</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">image</span> <span style="color:#0000cc">src</span>=<span style="color:#aa1111">"/assets/cate-2.png"</span> <span style="color:#0000cc">alt</span>=<span style="color:#aa1111">""</span><span style="color:#117700">/></span><span style="color:#117700"><</span><span style="color:#117700">text</span><span style="color:#117700">></span>鮮花玫瑰<span style="color:#117700"></</span><span style="color:#117700">text</span><span style="color:#117700">></span><span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">view</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">image</span> <span style="color:#0000cc">src</span>=<span style="color:#aa1111">"/assets/cate-3.png"</span> <span style="color:#0000cc">alt</span>=<span style="color:#aa1111">""</span><span style="color:#117700">/></span><span style="color:#117700"><</span><span style="color:#117700">text</span><span style="color:#117700">></span>永生玫瑰<span style="color:#117700"></</span><span style="color:#117700">text</span><span style="color:#117700">></span><span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">view</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">image</span> <span style="color:#0000cc">src</span>=<span style="color:#aa1111">"/assets/cate-4.png"</span> <span style="color:#0000cc">alt</span>=<span style="color:#aa1111">""</span><span style="color:#117700">/></span><span style="color:#117700"><</span><span style="color:#117700">text</span><span style="color:#117700">></span>玫瑰珠寶<span style="color:#117700"></</span><span style="color:#117700">text</span><span style="color:#117700">></span><span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">view</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">image</span> <span style="color:#0000cc">src</span>=<span style="color:#aa1111">"/assets/cate-5.png"</span> <span style="color:#0000cc">alt</span>=<span style="color:#aa1111">""</span><span style="color:#117700">/></span><span style="color:#117700"><</span><span style="color:#117700">text</span><span style="color:#117700">></span>香水護體<span style="color:#117700"></</span><span style="color:#117700">text</span><span style="color:#117700">></span><span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span>
<span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span></span></span>
?? pages/index/index.wxss
<span style="background-color:#f8f8f8"><span style="color:#333333">// 商品導航區域
<span style="color:#555555">.good-nav</span> {<span style="color:#000000">display</span>: <span style="color:#221199">flex</span>;<span style="color:#000000">justify-content</span>: <span style="color:#221199">space-between</span>;<span style="color:#000000">background-color</span>: <span style="color:#221199">#fff</span>;<span style="color:#000000">padding</span>: <span style="color:#116644">20rpx</span> <span style="color:#116644">16rpx</span>;<span style="color:#000000">border-radius</span>: <span style="color:#116644">10rpx</span>;
?<span style="color:#000000">view</span> {<span style="color:#000000">display</span>: <span style="color:#221199">flex</span>;<span style="color:#000000">flex-direction</span>: <span style="color:#221199">column</span>;<span style="color:#000000">align-items</span>: <span style="color:#221199">center</span>;
?<span style="color:#000000">image</span> {<span style="color:#000000">width</span>: <span style="color:#116644">80rpx</span>;<span style="color:#000000">height</span>: <span style="color:#116644">80rpx</span>;}
?<span style="color:#000000">text</span> {<span style="color:#000000">font-size</span>: <span style="color:#116644">24rpx</span>;<span style="color:#000000">margin-top</span>: <span style="color:#116644">12rpx</span>;}}
}
?</span></span>
9. 跳轉到商品列表頁面-navigator
知識點:
點擊商品導航區域,需要跳轉到商品列表界面,在網頁開發中,如果想實現頁面的跳轉需要使用 a 標簽,在小程序中如果想實現頁面的跳轉則需要使用 navigator 組件,語法如下:
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#aa5500"><!-- url:當前小程序內的跳轉鏈接 --></span>
<span style="color:#117700"><</span><span style="color:#117700">navigator</span> <span style="color:#0000cc">url</span>=<span style="color:#aa1111">"/pages/list/list"</span><span style="color:#117700">></span></span></span>
在小程序中,如果需要進行跳轉,需要使用 navigation 組件,常用的屬性有 2 個:
-
url :當前小程序內的跳轉鏈接
-
open-type :跳轉方式
-
navigate:保留當前頁面,跳轉到應用內的某個頁面。但是不能跳到 tabbar 頁面
-
redirect: 關閉當前頁面,跳轉到應用內的某個頁面。但不能跳轉到 tabbar 頁面
-
switchTab:跳轉到 tabBar 頁面,并關閉其他所有非 tabBar 頁面
-
reLaunch:關閉所有頁面,打開到應用內的某個頁面
-
navigateBack:關閉當前頁面,返回上一頁面或多級頁面
-
📌 注意事項:
路徑后可以帶參數。參數與路徑之間使用 ? 分隔,參數鍵與參數值用 = 相連,不同參數用 & 分隔 例如:
/list?id=10&name=hua
,在onLoad(options)
生命周期函數 中獲取傳遞的參數屬性
open-type="switchTab"
時不支持傳參
落地代碼:
?? pages/index/index.wxml
: 調整 view 為 navigator
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#aa5500"><!-- view:視圖容器,作用類似于 div,是一個塊級元素,獨占一行 --></span>
<span style="color:#117700"><</span><span style="color:#117700">view</span> <span style="color:#0000cc">class</span>=<span style="color:#aa1111">"navs"</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">navigator</span> <span style="color:#0000cc">url</span>=<span style="color:#aa1111">"/pages/list/list"</span><span style="color:#117700">></span><span style="color:#aa5500"><!-- text:文本組件,類似于 span,是一個行內元素 --></span><span style="color:#117700"><</span><span style="color:#117700">image</span> <span style="color:#0000cc">src</span>=<span style="color:#aa1111">"/assets/cate-1.png"</span> <span style="color:#0000cc">alt</span>=<span style="color:#aa1111">""</span><span style="color:#117700">/></span><span style="color:#117700"><</span><span style="color:#117700">text</span><span style="color:#117700">></span>愛禮精選<span style="color:#117700"></</span><span style="color:#117700">text</span><span style="color:#117700">></span><span style="color:#117700"></</span><span style="color:#117700">navigator</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">navigator</span> <span style="color:#0000cc">url</span>=<span style="color:#aa1111">"/pages/list/list"</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">image</span> <span style="color:#0000cc">src</span>=<span style="color:#aa1111">"/assets/cate-2.png"</span> <span style="color:#0000cc">alt</span>=<span style="color:#aa1111">""</span><span style="color:#117700">/></span><span style="color:#117700"><</span><span style="color:#117700">text</span><span style="color:#117700">></span>鮮花玫瑰<span style="color:#117700"></</span><span style="color:#117700">text</span><span style="color:#117700">></span><span style="color:#117700"></</span><span style="color:#117700">navigator</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">navigator</span> <span style="color:#0000cc">url</span>=<span style="color:#aa1111">"/pages/list/list"</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">image</span> <span style="color:#0000cc">src</span>=<span style="color:#aa1111">"/assets/cate-3.png"</span> <span style="color:#0000cc">alt</span>=<span style="color:#aa1111">""</span><span style="color:#117700">/></span><span style="color:#117700"><</span><span style="color:#117700">text</span><span style="color:#117700">></span>永生玫瑰<span style="color:#117700"></</span><span style="color:#117700">text</span><span style="color:#117700">></span><span style="color:#117700"></</span><span style="color:#117700">navigator</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">navigator</span> <span style="color:#0000cc">url</span>=<span style="color:#aa1111">"/pages/list/list"</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">image</span> <span style="color:#0000cc">src</span>=<span style="color:#aa1111">"/assets/cate-4.png"</span> <span style="color:#0000cc">alt</span>=<span style="color:#aa1111">""</span><span style="color:#117700">/></span><span style="color:#117700"><</span><span style="color:#117700">text</span><span style="color:#117700">></span>玫瑰珠寶<span style="color:#117700"></</span><span style="color:#117700">text</span><span style="color:#117700">></span><span style="color:#117700"></</span><span style="color:#117700">navigator</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">navigator</span> <span style="color:#0000cc">url</span>=<span style="color:#aa1111">"/pages/list/list"</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">image</span> <span style="color:#0000cc">src</span>=<span style="color:#aa1111">"/assets/cate-5.png"</span> <span style="color:#0000cc">alt</span>=<span style="color:#aa1111">""</span><span style="color:#117700">/></span><span style="color:#117700"><</span><span style="color:#117700">text</span><span style="color:#117700">></span>香水護體<span style="color:#117700"></</span><span style="color:#117700">text</span><span style="color:#117700">></span><span style="color:#117700"></</span><span style="color:#117700">navigator</span><span style="color:#117700">></span>
<span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span></span></span>
?? pages/index/index.wxss
:
<span style="background-color:#f8f8f8"><span style="color:#333333">// 商品導航區域
<span style="color:#555555">.good-nav</span> {<span style="color:#000000">display</span>: <span style="color:#221199">flex</span>;<span style="color:#000000">justify-content</span>: <span style="color:#221199">space-between</span>;<span style="color:#000000">background-color</span>: <span style="color:#221199">#fff</span>;<span style="color:#000000">padding</span>: <span style="color:#116644">20rpx</span> <span style="color:#116644">16rpx</span>;<span style="color:#000000">border-radius</span>: <span style="color:#116644">10rpx</span>;
?<span style="color:#000000">view</span> {
+ ? ?<span style="color:#000000">navigator</span> {
+ ? ? ?<span style="color:#000000">display</span>: <span style="color:#221199">flex</span>;
+ ? ? ?<span style="color:#000000">flex-direction</span>: <span style="color:#221199">column</span>;
+ ? ? ?<span style="color:#000000">align-items</span>: <span style="color:#221199">center</span>;
+ ? }
?<span style="color:#000000">image</span> {<span style="color:#000000">width</span>: <span style="color:#116644">80rpx</span>;<span style="color:#000000">height</span>: <span style="color:#116644">80rpx</span>;}
?<span style="color:#000000">text</span> {<span style="color:#000000">font-size</span>: <span style="color:#116644">24rpx</span>;<span style="color:#000000">margin-top</span>: <span style="color:#116644">12rpx</span>;}}
}
?</span></span>
10. 商品推薦區域-scroll-view
可滾動視圖區域,適用于需要滾動展示內的場景,它可以在小程序中實現類似于網頁中的滾動條效果,用戶可以通過手指滑動或者點擊滾動條來滾動內容,scroll-view 組件可以設置滾動方向、滾動條樣式、滾動到頂部或底部時的回調函數等屬性,可以根據實際需求進行靈活配置。
3.10.1 scroll-view 橫向滾動
知識點:
使用橫向滾動時,需要添加 scroll-x 屬性,然后通過 css 進行結構繪制,實現頁面橫向滾動
落地代碼:
?? pages/index/index.wxml
:
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#aa5500"><!-- 商品推薦區域 --></span>
<span style="color:#117700"><</span><span style="color:#117700">view</span> <span style="color:#0000cc">class</span>=<span style="color:#aa1111">"hot"</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">scroll-view</span> <span style="color:#0000cc">class</span>=<span style="color:#aa1111">"scroll-x"</span> <span style="color:#0000cc">scroll-x</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">view</span><span style="color:#117700">></span>1<span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">view</span><span style="color:#117700">></span>2<span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">view</span><span style="color:#117700">></span>3<span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span><span style="color:#117700"></</span><span style="color:#117700">scroll-view</span><span style="color:#117700">></span>
<span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span></span></span>
?? pages/index/index.wxss
:
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#555555">.hot</span> {<span style="color:#000000">margin-top</span>: <span style="color:#116644">16rpx</span>;
?<span style="color:#555555">.scroll-x</span> {<span style="color:#000000">width</span>: <span style="color:#116644">100%</span>;<span style="color:#000000">white-space</span>: <span style="color:#221199">nowrap</span>;<span style="color:#000000">background-color</span>: <span style="color:#770088">lightblue</span>;
?<span style="color:#117700">view</span>{<span style="color:#000000">display</span>: <span style="color:#221199">inline-block</span>;<span style="color:#000000">width</span>: <span style="color:#116644">50%</span>;<span style="color:#000000">height</span>: <span style="color:#116644">80rpx</span>;
?&:<span style="color:#008855">last-child</span>{<span style="color:#000000">background-color</span>: <span style="color:#770088">lightseagreen</span>;}
?&:<span style="color:#008855">first-child</span>{<span style="color:#000000">background-color</span>: <span style="color:#770088">lightpink</span>;}} }
}</span></span>
3.10.2 scroll-view 縱向滾動
知識點:
使用豎向滾動時,需要給scroll-view一個固定高度,同時添加 scroll-y 屬性,實現頁面縱向滾動
落地代碼:
?? pages/index/index.wxml:
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#aa5500"><!-- 商品推薦區域 --></span>
<span style="color:#117700"><</span><span style="color:#117700">view</span> <span style="color:#0000cc">class</span>=<span style="color:#aa1111">"hot"</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">scroll-view</span> <span style="color:#0000cc">class</span>=<span style="color:#aa1111">"scroll-x"</span> <span style="color:#0000cc">scroll-x</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">view</span><span style="color:#117700">></span>1<span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">view</span><span style="color:#117700">></span>2<span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">view</span><span style="color:#117700">></span>3<span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span><span style="color:#117700"></</span><span style="color:#117700">scroll-view</span><span style="color:#117700">></span>
?<span style="color:#117700"><</span><span style="color:#117700">scroll-view</span> <span style="color:#0000cc">class</span>=<span style="color:#aa1111">"scroll-y"</span> <span style="color:#0000cc">scroll-y</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">view</span><span style="color:#117700">></span>1<span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">view</span><span style="color:#117700">></span>2<span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">view</span><span style="color:#117700">></span>3<span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span><span style="color:#117700"></</span><span style="color:#117700">scroll-view</span><span style="color:#117700">></span>
<span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span></span></span>
?? pages/index/index.wxss
:
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#555555">.hot</span> {<span style="color:#000000">margin-top</span>: <span style="color:#116644">16rpx</span>;
?<span style="color:red">.scroll-x</span> {<span style="color:#000000">width</span>: <span style="color:#116644">100%</span>;<span style="color:#000000">white-space</span>: <span style="color:#221199">nowrap</span>;<span style="color:#000000">background-color</span>: <span style="color:#770088">lightblue</span>;
?<span style="color:#000000">view</span>{<span style="color:#000000">display</span>: <span style="color:#221199">inline-block</span>;<span style="color:#000000">width</span>: <span style="color:#116644">50%</span>;<span style="color:#000000">height</span>: <span style="color:#116644">80rpx</span>;
?&:<span style="color:#008855">last-child</span>{<span style="color:#000000">background-color</span>: <span style="color:#770088">lightseagreen</span>;}
?&:<span style="color:#008855">first-child</span>{<span style="color:#000000">background-color</span>: <span style="color:#770088">lightcoral</span>;}} }
?
+ ?<span style="color:red">.scroll-y</span> {
+ ? ?<span style="color:#000000">height</span>: <span style="color:#116644">400rpx</span>;
+ ? ?<span style="color:#000000">background-color</span>: <span style="color:#770088">lightsalmon</span>;
+ ? ?<span style="color:#000000">margin-top</span>: <span style="color:#116644">60rpx</span>;
+
+ ? ?<span style="color:#000000">view</span> {
+ ? ? ?<span style="color:#000000">height</span>: <span style="color:#116644">400rpx</span>;
+
+ ? ? &:<span style="color:#008855">nth-child</span>(<span style="color:#000000">odd</span>) {
+ ? ? ? ?<span style="color:#000000">background-color</span>: <span style="color:#770088">lightseagreen</span>;
+ ? ? }
+
+ ? ? &:<span style="color:#008855">nth-child</span>(<span style="color:#000000">even</span>) {
+ ? ? ? ?<span style="color:#000000">background-color</span>: <span style="color:#770088">lightcoral</span>;
+ ? ? }
+ ? } ?
+ }
}</span></span>
3.10.3 實現商品推薦區域橫向滾動
落地代碼
?? pages/index/index.wxml:
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#aa5500"><!-- 推薦商品 --></span>
<span style="color:#117700"><</span><span style="color:#117700">view</span> <span style="color:#0000cc">class</span>=<span style="color:#aa1111">"good-hot"</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">scroll-view</span> <span style="color:#0000cc">scroll-x</span> <span style="color:#0000cc">class</span>=<span style="color:#aa1111">"scroll-x"</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">view</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">view</span> <span style="color:#0000cc">class</span>=<span style="color:#aa1111">"good-item"</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">image</span> <span style="color:#0000cc">src</span>=<span style="color:#aa1111">"../../assets/floor/1.png"</span> <span style="color:#0000cc">mode</span>=<span style="color:#aa1111">""</span><span style="color:#117700">/></span><span style="color:#117700"><</span><span style="color:#117700">text</span><span style="color:#117700">></span>鮮花玫瑰<span style="color:#117700"></</span><span style="color:#117700">text</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">text</span><span style="color:#117700">></span>66<span style="color:#117700"></</span><span style="color:#117700">text</span><span style="color:#117700">></span><span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span><span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span>
?<span style="color:#117700"><</span><span style="color:#117700">view</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">view</span> <span style="color:#0000cc">class</span>=<span style="color:#aa1111">"good-item"</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">image</span> <span style="color:#0000cc">src</span>=<span style="color:#aa1111">"../../assets/floor/2.png"</span> <span style="color:#0000cc">mode</span>=<span style="color:#aa1111">""</span><span style="color:#117700">/></span><span style="color:#117700"><</span><span style="color:#117700">text</span><span style="color:#117700">></span>鮮花玫瑰<span style="color:#117700"></</span><span style="color:#117700">text</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">text</span><span style="color:#117700">></span>77<span style="color:#117700"></</span><span style="color:#117700">text</span><span style="color:#117700">></span><span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span><span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span>
?<span style="color:#117700"><</span><span style="color:#117700">view</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">view</span> <span style="color:#0000cc">class</span>=<span style="color:#aa1111">"good-item"</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">image</span> <span style="color:#0000cc">src</span>=<span style="color:#aa1111">"../../assets/floor/3.png"</span> <span style="color:#0000cc">mode</span>=<span style="color:#aa1111">""</span><span style="color:#117700">/></span><span style="color:#117700"><</span><span style="color:#117700">text</span><span style="color:#117700">></span>鮮花玫瑰<span style="color:#117700"></</span><span style="color:#117700">text</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">text</span><span style="color:#117700">></span>88<span style="color:#117700"></</span><span style="color:#117700">text</span><span style="color:#117700">></span><span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span><span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span>
?<span style="color:#117700"><</span><span style="color:#117700">view</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">view</span> <span style="color:#0000cc">class</span>=<span style="color:#aa1111">"good-item"</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">image</span> <span style="color:#0000cc">src</span>=<span style="color:#aa1111">"../../assets/floor/4.png"</span> <span style="color:#0000cc">mode</span>=<span style="color:#aa1111">""</span><span style="color:#117700">/></span><span style="color:#117700"><</span><span style="color:#117700">text</span><span style="color:#117700">></span>鮮花玫瑰<span style="color:#117700"></</span><span style="color:#117700">text</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">text</span><span style="color:#117700">></span>99<span style="color:#117700"></</span><span style="color:#117700">text</span><span style="color:#117700">></span><span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span><span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span>
?<span style="color:#117700"><</span><span style="color:#117700">view</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">view</span> <span style="color:#0000cc">class</span>=<span style="color:#aa1111">"good-item"</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">image</span> <span style="color:#0000cc">src</span>=<span style="color:#aa1111">"../../assets/floor/5.png"</span> <span style="color:#0000cc">mode</span>=<span style="color:#aa1111">""</span><span style="color:#117700">/></span><span style="color:#117700"><</span><span style="color:#117700">text</span><span style="color:#117700">></span>鮮花玫瑰<span style="color:#117700"></</span><span style="color:#117700">text</span><span style="color:#117700">></span><span style="color:#117700"><</span><span style="color:#117700">text</span><span style="color:#117700">></span>100<span style="color:#117700"></</span><span style="color:#117700">text</span><span style="color:#117700">></span><span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span><span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span>
?<span style="color:#117700"></</span><span style="color:#117700">scroll-view</span><span style="color:#117700">></span>
<span style="color:#117700"></</span><span style="color:#117700">view</span><span style="color:#117700">></span></span></span>
?? pages/index/index.wxss:
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#aa5500">// 推薦商品區域</span>
<span style="color:#555555">.good-hot</span> {<span style="color:#000000">background-color</span>: <span style="color:#221199">#fff</span>;<span style="color:#000000">padding</span>: <span style="color:#116644">16rpx</span>;<span style="color:#000000">border-radius</span>: <span style="color:#116644">10rpx</span>;<span style="color:#000000">font-size</span>: <span style="color:#116644">24rpx</span>;
?<span style="color:#555555">.scroll-x</span> {<span style="color:#000000">width</span>: <span style="color:#116644">100%</span>;<span style="color:#000000">white-space</span>: <span style="color:#221199">nowrap</span>;
?<span style="color:#117700">view</span> {<span style="color:#000000">display</span>: <span style="color:#221199">inline-block</span>;<span style="color:#000000">width</span>: <span style="color:#116644">320rpx</span>;<span style="color:#000000">height</span>: <span style="color:#116644">440rpx</span>;<span style="color:#000000">margin-right</span>: <span style="color:#116644">16rpx</span>;
?<span style="color:#555555">.good-item</span> {<span style="color:#000000">display</span>: <span style="color:#221199">flex</span>;<span style="color:#000000">flex-direction</span>: <span style="color:#221199">column</span>;<span style="color:#000000">justify-content</span>: <span style="color:#221199">space-between</span>;
?<span style="color:#117700">text</span> {&:<span style="color:#008855">nth-of-type</span>(<span style="color:#116644">1</span>) {<span style="color:#000000">font-weight</span>: <span style="color:#221199">bold</span>;}}}
?<span style="color:#117700">image</span> {<span style="color:#000000">width</span>: <span style="color:#116644">100%</span>;<span style="color:#000000">height</span>: <span style="color:#116644">320rpx</span>;}
?&:<span style="color:#008855">last-child</span> {<span style="color:#000000">margin-right</span>: <span style="color:#116644">0</span>;}}}
}</span></span>
11. 字體圖標的使用
在項目中使用到的小圖標,一般由公司設計師進行設計,如果如果自行設計這些圖標會比較麻煩且耗費時間,這時候我們就可以使用到阿里巴巴矢量圖庫,設計好以后上傳到阿里巴巴矢量圖標庫,然后方便程序員來進行使用。
阿里巴巴矢量圖庫是阿里巴巴集團推出的一個免費的矢量圖標庫和圖標管理工具。它匯集了大量的精美圖標資源,包括品牌圖標和各種主題和分類的圖標。用戶可以在阿里巴巴矢量圖庫中搜索和瀏覽所需的圖標,也可以上傳和管理自己的圖標資源。
小程序中的字體圖標使用方式與 Web
開發中的使用方式是一樣的。
首先我們先找到所需的圖標,加入到項目庫,進入項目庫中生成鏈接。也快將字體圖標庫下載到本地
點擊鏈接,會將生成的 CSS
在新的鏈接頁面進行打開,ctrl + s
,將該文件重命名為.wxss
后綴名,然后保存到項目根目錄下的static
文件夾下。
在全局樣式文件app.wxss
中導入fonts.wxss
字體圖標文件,然后獲取到圖標類名,在項目中使用即可,應用于頁面
<span style="background-color:#f8f8f8"><span style="color:#333333">@import "./static/fonts.wxss";</span></span>
<span style="background-color:#f8f8f8"><span style="color:#333333"><view class="myTest"><view class="iconfont icon-tuikuan"></view>
</view></span></span>
注意:使用字體圖標可能會報錯:
<span style="background-color:#f8f8f8">[渲染層網絡層錯誤] Failed to load font http://at.alicdn.com/t/c/font_3946178_q5oidsl5xo.woff2?t=1680795910637 net::ERR_CACHE_MISS (env: Windows,mp,1.06.2303220; lib: 2.30.4)</span>
該錯誤可忽略,詳見下面這個鏈接:
wx.loadFontFace(Object object) | 微信開放文檔
但在控制臺出現錯誤,會影響開發調試,解決方案是:將字體圖標轉換成 base64 的格式
落地代碼:
?? app.wxss
:
<span style="background-color:#f8f8f8"><span style="color:#333333">// 在導入樣式文件以后,必須以分號結尾,否則會出現異常@import "./iconfont/iconfont.scss";</span></span>
?? pages/index/index.wxml
:
<span style="background-color:#f8f8f8"><span style="color:#333333"><!-- 公司信息 -->
<view class="info"><text><text class="iconfont icon-ps"></text> 同城配送</text><text><text class="iconfont icon-lx"></text> 行業龍頭</text><text><text class="iconfont icon-time"></text> 半小時送達</text><text><text class="iconfont icon-hp"></text> 100% 好評</text>
</view>
</span></span>
?? pages/index/index.wxss
:
<span style="background-color:#f8f8f8"><span style="color:#333333">// 公司信息區域
.info {display: flex;justify-content: space-between;background-color: #fff;padding: 20rpx 16rpx;border-radius: 10rpx;font-size: 24rpx;+ .iconfont {
+ font-size: 24rpx;
+ }
}
</span></span>
12. 背景圖片的使用
注:提供的網絡地址連接:
http://8.131.91.46:6677/bgimage.png
http://8.131.91.46:6677/TomAndJerry.jpg
當編寫小程序的樣式文件時,我們可以使用 background-image
屬性來設置一個元素的背景圖像,但是小程序的 background-image
不支持本地路徑。
<span style="background-color:#f8f8f8"><span style="color:#333333"><view class="image"></view></span></span>
<span style="background-color:#f8f8f8"><span style="color:#333333">.image {background-image: url('../../static/微信.jpg');
}</span></span>
如圖,在使用了本地資源圖片以后,微信開發者工具提供的提示:
本地資源圖片無法通過 WXSS 獲取,可以使用網絡圖片,或者 base64,或者使用<image/>標簽
<span style="background-color:#f8f8f8"><span style="color:#333333">.image {width: 100%;height: 400rpx;/* 本地資源圖片無法通過 WXSS 獲取 *//* background-image: url('../../static/微信.jpg'); *//* 使用網絡圖片 *//* background-image: url('http://8.131.91.46:6677/TomAndJerry.jpg'); *//* 使用 base64 格式展示圖片 *//* base64 編碼的文件很長,這個地址老師在這邊進行了簡寫,在測試的時候,需要自己將這里轉成完成的 64 編碼 */background-image: url("data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAeAB4AAD/.....")background-position: center;background-size: cover;}</span></span>