解决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 相关文章推荐
JS 用6N±1法求素数 实例教程
Oct 20 Javascript
一个简单的Ext.XTemplate的实例代码
Mar 18 Javascript
js中的referrer返回上一页使用介绍
Sep 26 Javascript
jquery 插件实现多行文本框[textarea]自动高度
Mar 04 Javascript
Bootstrap作品展示站点实战项目2
Oct 14 Javascript
js防刷新的倒计时代码 js倒计时代码
Sep 06 Javascript
js实现HTML中Select二级联动的实例
Jan 05 Javascript
vue mounted组件的使用
Jun 18 Javascript
详解基于webpack&amp;gettext的前端多语言方案
Jan 29 Javascript
JSON的parse()方法介绍
Jan 31 Javascript
小程序实现锚点滑动效果
Sep 23 Javascript
vue使用require.context实现动态注册路由
Dec 25 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来处理多个提交任务
2008/05/08 PHP
php 代码优化的42条建议 推荐
2009/09/25 PHP
按上下级层次关系输出内容的PHP代码
2010/07/17 PHP
PHP从二维数组得到N层分类树的实现代码
2016/10/11 PHP
PHP微信支付结果通知与回调策略分析
2019/01/10 PHP
二级域名转向类
2006/11/09 Javascript
从sohu弄下来的flash中展示图片的代码
2007/04/27 Javascript
CLASS_CONFUSION JS混淆 全源码
2007/12/12 Javascript
关于JS管理作用域的问题
2013/04/10 Javascript
jQuery处理xml格式的返回数据(实例解析)
2013/11/28 Javascript
基于jquery和svg实现超炫酷的动画特效
2014/12/09 Javascript
angularjs表格分页功能详解
2016/01/21 Javascript
ajax异步请求详解
2017/01/06 Javascript
jQuery实现Table表格隔行变色及高亮显示当前选择行效果示例
2017/02/14 Javascript
vue项目优化之通过keep-alive数据缓存的方法
2017/12/11 Javascript
js点击时关闭该范围下拉菜单之外的菜单方法
2018/01/11 Javascript
基于打包工具Webpack进行项目开发实例
2018/05/29 Javascript
Python中暂存上传图片的方法
2015/02/18 Python
Python缩进和冒号详解
2016/06/01 Python
Python列表切片操作实例总结
2019/02/19 Python
Python 继承,重写,super()调用父类方法操作示例
2019/09/29 Python
基于python实现百度语音识别和图灵对话
2020/11/02 Python
详解CSS3选择器:nth-child和:nth-of-type之间的差异
2017/09/18 HTML / CSS
科室工作的个人自我评价
2013/10/30 职场文书
中学生在校期间的自我评价分享
2013/11/13 职场文书
写演讲稿要注意的六件事
2014/01/14 职场文书
关于运动会的稿件
2014/02/02 职场文书
酒店管理求职信范文
2014/04/06 职场文书
优秀学生干部先进事迹材料
2014/05/26 职场文书
秋冬农业生产标语
2014/10/09 职场文书
2014年工人工作总结
2014/11/25 职场文书
2016大学生社会实践心得体会范文
2016/01/14 职场文书
煤矿安全学习心得体会
2016/01/18 职场文书
2016年优秀团员事迹材料
2016/02/25 职场文书
MYSQL 无法识别中文的永久解决方法
2021/06/03 MySQL
Win10玩csgo闪退如何解决?Win10玩csgo闪退的解决方法
2022/07/23 数码科技