uniapp開發(fā)H5打包微信小程序樣式失效的完美解決方法
前言
使用uniapp開發(fā)H5,樣式已經(jīng)按照UI設(shè)計(jì)稿全部實(shí)現(xiàn)。但是在打包微信小程序調(diào)試的時(shí)候,遇到很多樣式失效的問題。問了度娘很久,并沒有完全解決樣式失效的問題。于是自己按照從度娘上查到的方法去進(jìn)行組合嘗試,最終樣式失效問題得到了完全的解決。
樣式不生效的原因:u-view框架組件自帶的class優(yōu)先級(jí)高于開發(fā)者自定義的優(yōu)先級(jí),所以顯示的是組件的默認(rèn)樣式(網(wǎng)上有說是樣式隔離)。解決辦法就是提高自定義樣式的優(yōu)先級(jí),使用自定義的樣式去覆蓋默認(rèn)樣式。
一、輸入框(u–input)樣式失效解決之道
在H5上,u–input的樣式是可以完美展示的,但是到了微信小程序上,樣式完全失效了。經(jīng)過一番摸索,找到了最終的解決方法。
把樣式失效的 u–input 改成 u-input。
在u-input的自定義樣式之前添加默認(rèn)樣式的class名,u-input__content,而且要使用深度渲染,寫成::v-deep.u-input__content。這樣H5中的樣式就可以完全應(yīng)用到微信小程序上了(前后插槽的樣式也完美應(yīng)用),示例代碼如下。
::v-deep.u-input__content, .row-input {
height: 70rpx;
width: calc(100vw - 150rpx - 120rpx);
background-color: #FEFCF8;
border-radius: 8rpx;
font-size: 24rpx;
font-weight: 500;
color: #999999;
line-height: 24rpx;
margin-top: 30rpx;
//前插槽樣式
.prefix {
padding: 0 20rpx;
image {
width: 30rpx;
height: 30rpx;
}
}
//后插槽樣式
.suffix {
padding: 0 20rpx;
image {
width: 30rpx;
height: 30rpx;
}
.picture-code {
width: 100rpx;
height: 48rpx;
}
}
}
.placeholder { //占位提示文字的樣式
font-size: 24rpx;
font-weight: 500;
color: #999999;
line-height: 24rpx;
}
}
補(bǔ)充:組件的默認(rèn)樣式的class名如何獲取。

二、u-list樣式失效的解決之道
在u-list的自定義樣式的class之前添加 默認(rèn)樣式的class u-list。就可以解決樣式失效的問題。
對(duì)于列表頂部被導(dǎo)航欄遮擋,則需要添加一個(gè)view進(jìn)行包裹,通過調(diào)節(jié)外層view的margin來進(jìn)行調(diào)節(jié)。
示例代碼如下:
.store-section, .u-list { //添加默認(rèn)樣式的class u-list
background-color: #F7F1E8;
border-radius: 40rpx 40rpx 0px 0px;
padding: 20rpx 0rpx;
}
三、底部安全區(qū)域失效
H5上可以使用 ****標(biāo)簽設(shè)置相應(yīng)的背景色作為底部安全區(qū)域,但是微信小程序失效了。
微信小程序上應(yīng)該使用一個(gè) ****來替換。標(biāo)簽的樣式如下:
.safe-bottom {
background-color: #F4EBDF;
height: var(--safe-area-inset-bottom);
}
四、圖片不顯示問題
圖片不顯示,主要就是路徑不對(duì)。
- 自定義組件的圖片路徑: /static/detail/personal-store-logo.png。
- page里組件的路徑: @/static/home/have-a-goods.jpeg。
圖片路徑的問題,也不一定就像上方那樣,自己去嘗試修改就好了,以圖片顯示為準(zhǔn)。
五、u-icon不顯示
遇到u-view里的u-icon不顯示的情況,一般就是u-icon外面多包了一層組件,把多包的組件去掉u-icon就可以正常顯示了。
六、u-cell-group樣式失效解決之道
對(duì)于u-cell-group樣式失效的問題,嘗試過使用覆蓋樣式的問題,但是不生效。最終的解決之道是在u-cell-group外面包了一層view。把u-cell-group的樣式放到view上。示例代碼如下:
<view class="group-background"> <u-cell-group> <u-cell title="檢測(cè)更新" :titleStyle="cellTitleStyle" size="large" :isLink="true" @click="checkUpdate()"> </u-cell> <u-cell title="隱私政策" :titleStyle="cellTitleStyle" size="large" :isLink="true" @click="privacyAgreement()"> </u-cell> </u-cell-group> </view>
.group-background {
width: 100%;
background-color: #FEFCF8;
margin-top: 40rpx;
}
至此,經(jīng)過上面的一番修改之后,uniapp開發(fā)的H5的樣式就可以完美的在微信小程序中展示了。
總結(jié)
到此這篇關(guān)于uniapp開發(fā)H5打包微信小程序樣式失效的完美解決方法的文章就介紹到這了,更多相關(guān)uniapp打包微信小程序樣式失效內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決微信小程序scroll-view組件無橫向滾動(dòng)的問題
這篇文章主要介紹了微信小程序scroll-view組件無橫向滾動(dòng)的解決方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02
javascript中callee與caller的區(qū)別分析
有些小伙伴可能會(huì)問caller,callee 是什么?在javascript 中有什么樣的作用?那么本篇會(huì)對(duì)于此做一些基本介紹。希望能夠?qū)Υ蠹依斫鈐avascript中的callee與caller有所幫助。2015-04-04
js前端對(duì)于大量數(shù)據(jù)的展示方式及處理方法
這篇文章主要介紹了js前端對(duì)于大量數(shù)據(jù)的展示方式及處理方法,幫助大家更好的理解和使用js,感興趣的朋友可以了解下2020-12-12
利用canvas中toDataURL()將圖片轉(zhuǎn)為dataURL(base64)的方法詳解
這篇文章主要給大家介紹了關(guān)于利用canvas中toDataURL()將圖片轉(zhuǎn)為dataURL(base64)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11
Bootstrap table 服務(wù)器端分頁功能實(shí)現(xiàn)方法示例
這篇文章主要介紹了Bootstrap table 服務(wù)器端分頁功能實(shí)現(xiàn)方法,結(jié)合實(shí)例形式詳細(xì)分析了Bootstrap table 服務(wù)器端后臺(tái)交互與分頁功能相關(guān)操作技巧,需要的朋友可以參考下2020-06-06
script標(biāo)簽中的async和defer詳細(xì)說明與使用場(chǎng)景
這篇文章主要介紹了script標(biāo)簽中的async和defer詳細(xì)說明與使用場(chǎng)景,需要的朋友可以參考下2023-02-02
使用eslint和githooks統(tǒng)一前端風(fēng)格的技巧
這篇文章主要介紹了使用eslint和githooks統(tǒng)一前端風(fēng)格,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
微信小程序視頻彈幕發(fā)送功能的實(shí)現(xiàn)
這篇文章主要介紹了微信小程序視頻彈幕發(fā)送功能的實(shí)現(xiàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
微信小程序?qū)崿F(xiàn)一個(gè)簡(jiǎn)單swiper代碼實(shí)例
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)一個(gè)簡(jiǎn)單swiper代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12

