vue使用Element-UI部分組件適配移動端問題
前言
使用組件庫現(xiàn)成的組件是一件非常爽的事,基本不用自己敲代碼,不用自己思考來思考去樣式,就能得到一個比較滿意的效果。
但與此同時也會帶來一些不便,那就是部分組件在移動端顯得不太友好,還有就是有些樣式達不到自己的預期,這時修改起來就比較麻煩了。
vue使用Element-UI部分組件適配移動端
組件適配1—Message 消息提示
//消息提示
this.$message({
message:'雨傘下架成功',
duration:1500,
type:'success'
})
Message 消息提示在PC端顯示是非常好的:

但移動端效果就有點勉強了,寬度太長了:

適配樣式代碼
@media screen and (max-width: 500px) {
.el-message {
min-width: 300px !important;
}
}
適配后移動端的效果是比之前好很多的:

組件適配2—MessageBox 彈框
/*退出登錄*/
loginOut(){
this.$confirm('確定退出登錄嗎?', '提示', {
confirmButtonText: '確定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$router.replace({name:'login'})
})
}
MessageBox 彈框在PC端顯示是非常好的:

但移動端效果就有點勉強了,還是寬度太長了:

適配樣式代碼
@media screen and (max-width: 500px) {
.el-message-box{
width: 300px !important;
}
}
適配后移動端的效果是比之前好很多的:

組件適配3—Dialog 對話框
Dialog 對話框可通過自己設置top,width等控制樣式,算是比較方便更改樣式的一個組件了。
但為了同時適配手機和pc,還需要我們進行一些操作,盡管我將width設置為比較小的400以及對表單內(nèi)的組件樣式進行了一定的修改,但還是無法比較好的適配手機。
<el-dialog title="雨傘上架" :visible.sync="isToInsert" top="30vh" width="400px">
<el-form :inline="true" class="deleteForm">
<el-form-item label="登記者">
<el-input v-model="beginWorker" autocomplete="off" placeholder="請輸入登記者的名字"></el-input>
</el-form-item>
<el-form-item label="放傘地點" style="margin-top: 15px;">
<el-select v-model="stationId1" placeholder="請選擇放傘地點">
<el-option label="B區(qū)正門" value="B區(qū)正門"></el-option>
<el-option label="二樓" value="二樓"></el-option>
<el-option label="B5棟門口" value="B5棟門口"></el-option>
<el-option label="圖書館二樓" value="圖書館二樓"></el-option>
</el-select>
<p class="errorTip" v-show="beginWorkerError">{{beginWorkerError}}</p>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button size="small" @click="isToInsert = false">取 消</el-button>
<el-button size="small" type="primary" @click="ToInsert">確 定</el-button>
</div>
</el-dialog>
為了更好的兼容pc端而設置了部分樣式:
.el-dialog__wrapper{
?? ?.el-dialog__body{
?? ? ?padding: 20px 20px 10px;
?? ? ?.deleteForm{
?? ? ? ?.errorTip{
?? ? ? ? ?color: red;
?? ? ? ? ?font-size: 14px;
?? ? ? ? ?line-height: 20px;
?? ? ? ? ?margin: 5px auto;
?? ? ? ?}
?? ? ? ?.el-form-item{
?? ? ? ? ?margin: 0;
?? ? ? ? ?.el-form-item__label{
?? ? ? ? ? ?width: 90px;
?? ? ? ? ?}
?? ? ? ? ?.el-select,.el-input{
?? ? ? ? ? ?width: 250px;
?? ? ? ? ?}
?? ? ? ?}
?? ? ?}
?? ?}
?? ?.el-dialog__footer{
?? ? ?padding-bottom: 15px;
?? ? ?padding-top: 5px;
?? ?}
}在PC端顯示的效果我感覺還是挺好的:

但移動端效果就還是有點勉強了:

適配樣式代碼
@media screen and (max-width: 500px) {
.el-dialog__wrapper .el-dialog {
width: 300px !important;
.el-dialog__body{
padding: 10px 20px!important;
.el-form-item__label{
width: 68px!important;
}
.el-select,.el-input{
width: 180px!important;
}
}
}
}
適配后移動端的效果是比之前好很多的:

結語
其他組件的適配基本都是這樣,你只需要打開控制臺找到控制樣式的類然后進行修改即可。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
el-table樹形數(shù)據(jù)量過大,導致頁面卡頓問題及解決
這篇文章主要介紹了el-table樹形數(shù)據(jù)量過大,導致頁面卡頓問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-04-04
Vue?中?Promise?的then方法異步使用及async/await?異步使用總結
then?方法是?Promise?中?處理的是異步調(diào)用,異步調(diào)用是非阻塞式的,在調(diào)用的時候并不知道它什么時候結束,也就不會等到他返回一個有效數(shù)據(jù)之后再進行下一步處理,這篇文章主要介紹了Vue?中?Promise?的then方法異步使用及async/await?異步使用總結,需要的朋友可以參考下2023-01-01
vue 實現(xiàn)通過vuex 存儲值 在不同界面使用
今天小編就為大家分享一篇vue 實現(xiàn)通過vuex 存儲值 在不同界面使用,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11
vue實現(xiàn)同一個頁面可以有多個router-view的方法
今天小編就為大家分享一篇vue實現(xiàn)同一個頁面可以有多個router-view的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09
vue項目中在外部js文件中直接調(diào)用vue實例的方法比如說this
這篇文章主要介紹了vue項目中在外部js文件中直接調(diào)用vue實例的方法比如說this,需要的朋友可以參考下2019-04-04

