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