uniapp開發(fā)H5打包微信小程序樣式失效的完美解決方法
前言
使用uniapp開發(fā)H5,樣式已經(jīng)按照UI設計稿全部實現(xiàn)。但是在打包微信小程序調試的時候,遇到很多樣式失效的問題。問了度娘很久,并沒有完全解決樣式失效的問題。于是自己按照從度娘上查到的方法去進行組合嘗試,最終樣式失效問題得到了完全的解決。
樣式不生效的原因:u-view框架組件自帶的class優(yōu)先級高于開發(fā)者自定義的優(yōu)先級,所以顯示的是組件的默認樣式(網(wǎng)上有說是樣式隔離)。解決辦法就是提高自定義樣式的優(yōu)先級,使用自定義的樣式去覆蓋默認樣式。
一、輸入框(u–input)樣式失效解決之道
在H5上,u–input的樣式是可以完美展示的,但是到了微信小程序上,樣式完全失效了。經(jīng)過一番摸索,找到了最終的解決方法。
把樣式失效的 u–input 改成 u-input。
在u-input的自定義樣式之前添加默認樣式的class名,u-input__content,而且要使用深度渲染,寫成::v-deep.u-input__content
。這樣H5中的樣式就可以完全應用到微信小程序上了(前后插槽的樣式也完美應用),示例代碼如下。
::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; } }
補充:組件的默認樣式的class名如何獲取。
二、u-list樣式失效的解決之道
在u-list的自定義樣式的class之前添加 默認樣式的class u-list。就可以解決樣式失效的問題。
對于列表頂部被導航欄遮擋,則需要添加一個view進行包裹,通過調節(jié)外層view的margin來進行調節(jié)。
示例代碼如下:
.store-section, .u-list { //添加默認樣式的class u-list background-color: #F7F1E8; border-radius: 40rpx 40rpx 0px 0px; padding: 20rpx 0rpx; }
三、底部安全區(qū)域失效
H5上可以使用 ****標簽設置相應的背景色作為底部安全區(qū)域,但是微信小程序失效了。
微信小程序上應該使用一個 ****來替換。標簽的樣式如下:
.safe-bottom { background-color: #F4EBDF; height: var(--safe-area-inset-bottom); }
四、圖片不顯示問題
圖片不顯示,主要就是路徑不對。
- 自定義組件的圖片路徑: /static/detail/personal-store-logo.png。
- page里組件的路徑: @/static/home/have-a-goods.jpeg。
圖片路徑的問題,也不一定就像上方那樣,自己去嘗試修改就好了,以圖片顯示為準。
五、u-icon不顯示
遇到u-view里的u-icon不顯示的情況,一般就是u-icon外面多包了一層組件,把多包的組件去掉u-icon就可以正常顯示了。
六、u-cell-group樣式失效解決之道
對于u-cell-group樣式失效的問題,嘗試過使用覆蓋樣式的問題,但是不生效。最終的解決之道是在u-cell-group外面包了一層view。把u-cell-group的樣式放到view上。示例代碼如下:
<view class="group-background"> <u-cell-group> <u-cell title="檢測更新" :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的樣式就可以完美的在微信小程序中展示了。
總結
到此這篇關于uniapp開發(fā)H5打包微信小程序樣式失效的完美解決方法的文章就介紹到這了,更多相關uniapp打包微信小程序樣式失效內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
全面解析Bootstrap中nav、collapse的使用方法
這篇文章主要為大家詳細解析了Bootstrap中nav、collapse的使用方法,感興趣的朋友可以參考一下2016-05-05JavaScript實現(xiàn)簡易購物車最全代碼解析(ES6面向對象)
這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)簡易購物車最全代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09JavaScript DOM 編程藝術(第2版)讀書筆記(JavaScript的最佳實踐)
閱讀了本書第五章關于使用JavaScript的最佳實踐,大部分的建議之前都有耳聞,不過閱讀之后有更深的體會2013-10-10