解决vue加scoped后就无法修改vant的UI组件的样式问题


Posted in Javascript onSeptember 07, 2020

有时候UI组件提供的默认的样式不能满足项目的需要,就需要我们对它的样式进行修改,但是发现加了scoped后修改的样式不起作用。

解决方法:

使用深度选择器,将scoped样式中的选择器“深入”,即影响子组件

<style scoped>
 .a >>> .b { /* ... */ }
</style>

以上的代码会编译成:

.a[data-v-f3f3eg9] .b { /* ... */ }

注意:如果你使用了Less或Sass等预处理器,可能无法>>>正确解析。在这些情况下,您可以使用组合/deep/或::v-deep组合 - 两者都是别名,>>>并且工作完全相同。

使用Less或Sass等预处理器的写法如下:

.van-radio {
 /deep/ .van-radio__label {
  width: 500px;
 }
}

补充知识:vue+vant移动端遇到的那些问题

1、项目引用了lib-flexible 跟px2rem-loader做适配,然后真机测试的时候发现字体在手机上显示的很小。【推荐去看下px2rem-loader的文档】

原因+解决:百度说应该在后面加上/*px*/(font-size:14px;/*px*/),这里这么设置时,字体的大小要为两倍,如你想让字体显示为14px,css代码则为【font-size:28px;/*px*/】,对于border这些不想转换为rem的(或者说没必要转换的),在后面加上/*no*/;

2、使用vant组件时发现样式什么的跟vant官网的demo天差地别

原因+解决:是引入的适配框架把单位都给转换成rem了,所以gg了,自己调整样式就好了

3、页面写style用了scoped,调整vant组件样式的时候,不起作用【这里涉及了vue最重要的点:父子组件,半吊子的我完全没吃透父子关系】

原因+解决:scoped的作用是让样式应用于当前页,不影响其他的页面的样式,而当你用了vant组件想调整它的组件样式时,这个组件是子组件,因为你用了scoped,所以影响不到它,这个时候你应该使用deep——深入选择器,下图就是用法,如果你用了less或者sass这些,写法请自行百度!!!(本人略怂,不敢在项目赶得时候用太多不熟的东西),当然啦,你也可以任性的在公共css样式文件里写,我说的就跟你没半毛钱关系了,谨防被打死就好!

解决vue加scoped后就无法修改vant的UI组件的样式问题

4、使用了vant的搜索组件,然后在ios上测试时发现,input框被放大了

原因+解决:在index.html的头部加上"maximum-scale=1.0, user-scalable=0",禁止它放大

<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />

5、vant的组件,我是按需引入的,在main.js中引入,使用toast组件时,引用了,直接在要用的页面的方法里this.$toast()这样就可以,然后使用vant的图片预览组件的时候以为这样也可以,结果gg,发现直接在页面上引入,照着文档那样写就可以。

原因+解决:仔细对比了toast跟imagePreview的文档介绍,发现toast是有介绍说它挂载到了vue上。。。emmmm,imagePreview怕是没挂载,挂载上去之后就可以用了

解决vue加scoped后就无法修改vant的UI组件的样式问题

6、 跳转页面时标题名没切换,比如首页跳到联系页,页面头部还是首页【看Vue Router文档】

原因+解决:因为我没做什么修改操作,所以不会变。在路由router/index.js中对路由配置 meta 字段,再在main.js中使用全局前置守卫

解决vue加scoped后就无法修改vant的UI组件的样式问题

router.beforeEach((to, from, next) => {
 //修改标题
 if (to.meta.title) {
  document.title = to.meta.title;
 }
 next();
});

第一次将自己自学的东西应用到项目中,新项目开始,自己作为项目中唯一的前端,不怕死的用了vue,其实也是个半吊子,现在一期开发结束,总结下这些遇到的问题,可能很基础,但是毕竟是自己遇到的,还是要记录下来的!

以上这篇解决vue加scoped后就无法修改vant的UI组件的样式问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用JavaScript 处理 URL 的两个函数代码
Aug 13 Javascript
jQuery.query.js 取参数的两点问题分析
Aug 06 Javascript
js Math 对象的方法
Sep 01 Javascript
原生js实现弹出层登录拖拽功能
Dec 05 Javascript
Bootstrap表格使用方法详解
Feb 17 Javascript
Web前端框架Angular4.0.0 正式版发布
Mar 28 Javascript
angularjs实现时间轴效果的示例代码
Nov 29 Javascript
在vue中使用express-mock搭建mock服务的方法
Nov 07 Javascript
微信小程序云开发之使用云数据库
May 17 Javascript
layui使用button按钮 点击出现弹层 弹层中加载表单的实例
Sep 04 Javascript
javascript的hashCode函数实现代码小结
Aug 11 Javascript
Vue中computed和watch有哪些区别
Dec 19 Vue.js
Vue.js原理分析之nextTick实现详解
Sep 07 #Javascript
小程序实现可拖动的悬浮按钮
Sep 07 #Javascript
vue 修改 data 数据问题并实时显示操作
Sep 07 #Javascript
nginx部署多个vue项目的方法示例
Sep 06 #Javascript
js实现简单的无缝轮播效果
Sep 05 #Javascript
JS+CSS实现炫酷光感效果
Sep 05 #Javascript
js实现炫酷光感效果
Sep 05 #Javascript
You might like
php正则
2006/07/07 PHP
php网页后退不再出现过期
2007/03/08 PHP
PHP 程序员也要学会使用“异常”
2009/06/16 PHP
打造超酷的PHP数据饼图效果实现代码
2011/11/23 PHP
一个简洁实用的PHP缓存类完整实例
2014/07/26 PHP
php结合curl实现多线程抓取
2015/07/09 PHP
PHP调用QQ互联接口实现QQ登录网站功能示例
2019/10/24 PHP
javascript 获取网页参数系统
2008/07/19 Javascript
javascript 鼠标滚轮事件
2009/04/09 Javascript
js几秒以后倒计时跳转示例
2013/12/26 Javascript
JS基于Mootools实现的个性菜单效果代码
2015/10/21 Javascript
JavaScript阻止回车提交表单的方法
2015/12/30 Javascript
js获取当前年月日-YYYYmmDD格式的实现代码
2016/06/01 Javascript
jquery与ajax获取特殊字符实例详解
2017/01/08 Javascript
nodejs基础知识
2017/02/03 NodeJs
Vue 使用 Mint UI 实现左滑删除效果CellSwipe
2018/04/27 Javascript
Vue2.0生命周期的理解
2018/08/20 Javascript
JS数组方法push()、pop()用法实例分析
2020/01/18 Javascript
使用 Vue-TCB 快速在 Vue 应用中接入云开发的方法
2020/02/10 Javascript
浅谈python中列表、字符串、字典的常用操作
2017/09/19 Python
解决pandas无法在pycharm中使用plot()方法显示图像的问题
2018/05/24 Python
Python字符串逆序输出的实例讲解
2019/02/16 Python
使用pyinstaller打包PyQt4程序遇到的问题及解决方法
2019/06/24 Python
django框架使用方法详解
2019/07/18 Python
python爬虫 execjs安装配置及使用
2019/07/30 Python
Python文件操作方法详解
2020/02/09 Python
简单掌握CSS3中resize属性的用法
2016/04/01 HTML / CSS
东南亚冒险旅行与活动:Adventoro
2019/10/16 全球购物
C++的几个面试题附答案
2016/08/03 面试题
文明教师事迹材料
2014/01/16 职场文书
2014年党员个人工作总结
2014/12/02 职场文书
村级干部党员公开承诺事项
2015/05/04 职场文书
2016年9月份红领巾广播稿
2015/12/21 职场文书
多属性、多分类MySQL模式设计
2021/04/05 MySQL
vue实现水波涟漪效果的点击反馈指令
2021/05/31 Vue.js
Python之matplotlib绘制折线图
2022/04/13 Python