前言

  • 好,经过上个章节的介绍完毕之后,了解了一下 uni-app-扩展组件
  • 那么了解完了uni-app-扩展组件之后,这篇文章来给大家介绍一下 uni-app-修改组件主题和样式
  • 首先不管三七二十一,先来新建一个项目

搭建演示环境

创建一个全新的项目,因为本文要修改组件主题和样式,所以这次创建项目选择 uni-ui 模板:

然后在配置一下,微信小程序的 AppId,直接去之前的项目中拷贝一下即可,找到之前项目的 manifest.json 文件,然后选择微信小程序配置,复制一下即可。

  • 经过如上的这么一顿操作之后,就可以搭建完毕运行环境,与编码环境
  • 接下来就可以开始进行介绍 uni-app-修改组件主题和样式内容了

步入正题

修改组件主题

我们先使用一下组件,然后在看完了样式之后我们在进行修改,这里我们使用数字角标组件,先来看一下效果:

<template>
<view>
<uni-badge text="2" type="primary"></uni-badge>
<uni-badge text="4" type="error"></uni-badge>
<uni-badge text="22" type="primary"></uni-badge>
</view>
</template> <script>
export default {
}
</script> <style>
</style>

运行一下,效果如下:

我通过发现这个数字角标组件的样式是根据 type 属性来决定的,那么我们就可以通过修改 type 属性来修改组件的主题,比如说我们把 type 属性的值改为 success,那么组件的主题就会变成绿色。

那么知道了这些内容之后,我们就好办了,假如说我们要更改一下 type=primary 的颜色,那么我们就需要修改 primary 所对应的颜色。

我在前面的文章当中是不是有介绍到一个文件叫做 uni.scss,这个文件就是用来修改组件主题的,使用或修改对应的 scss 变量,就可以修改组件的主题。

上图中,是我查阅官方文档发现,提供了一些变量默认值,这些值就是当前组件的主题,我们可以通过修改这些值来修改组件的主题。

我们要更改的是 primary 的颜色,那么我们就可以在 uni.scss 文件中,找到 primary 这个变量,然后修改它的值即可。

注意:通过 uni-ui 创建的项目, uni.scss 文件是没有内容的,需要自己手动添加

假如说我将 primary 的颜色修改为 red,那么组件的主题就会变成红色。

$uni-primary: red;

修改组件主题的方式就是这样,首先你要确定你要修改组件对应的 scss 变量,在通过修改 uni.scss 文件中的变量值,就可以修改组件的主题。

最主要是就是查阅官方文档,大家都需要有这种查阅官方文档的习惯,这样才能更好的学习。

修改组件样式

就继续以上面的数字角标组件为例,我们来修改一下组件的样式,比如说我们想要修改一下组件的圆角,那么我们就可以通过修改组件的 border-radius 属性来修改组件的圆角, 还想修改一下文字的颜色,那么我们就可以通过修改组件的 color 属性来修改文字的颜色。

那么我们第一步要做的就是,找到要修改样式的组件所对应的元素类名, 这个时候我就打开控制台的审查元素。

然后我就可以看到,数字角标组件所对应的元素类名是 uni-badge,那么我们就可以通过修改 uni-badge 这个类名来修改组件的样式。

我这里可以很明确的告诉大家这样修改是不行的,要想修改组件样式有两种方案,分别是:

  1. 利用 Vue 的深度修改 :deep
  2. 利用全局属性 :global 修改

好,那么知道了方案我们就可以开始修改了,首先我们来看一下第一种方案,利用 Vue 的深度修改 :deep

<style>
:deep(.uni-badge) {
color: #000;
border-radius: 5px;
}
</style>
  • 运行在 H5 端的效果如下:

可以看到是一点问题都没有的,那么我们再来看一下运行在微信小程序端的效果:

可以看到是没有起效果的,那么这是为什么呢?因为我们没有加 !important,我们要将优先级提高, 加上 !important 之后,再来看一下效果:

注意:最好在修改的属性后面加上 !important,否则有的平台可能无效,上面已经验证过了

第二种方案,利用全局属性 :global 修改,这个方案就比较简单了,直接上代码:

<style>
:global(.uni-badge) {
color: #000 !important;
border-radius: 5px !important;
}
</style>

这里我就不贴效果图了,大家可以自己去运行一下,效果是一样的。

总结

  • 本篇文章主要给大家介绍了 uni-app-修改组件主题和样式的内容
  • 通过本篇文章的学习,相信大家对 uni-app-修改组件主题和样式有了一定的了解
  • 本篇文章的内容就介绍到这里,感谢大家的阅读,如果有什么不足的地方,欢迎大家指出,我会及时修改的,谢谢大家的支持

最后

大家好我是 BNTang, 一个热爱分享的技术的开发者,如果大家觉得我的文章对你有帮助的话,可以关注我的公众号 JavaBoyL,我会在公众号中分享一些IT技术和一些个人的见解,谢谢大家的支持。

【UniApp】-uni-app-修改组件主题和样式的更多相关文章

  1. hexo修改Next主题的样式

    Next主题默认对超链接只有下划线样式,很容易被忽略,就想着怎么修改下 主题样式是在\hexoBlog\themes\next\source\css,这里面保存了Muse,Mist和Pisces三个主 ...

  2. Vue中修改组件默认样式

    vue 中直接使用 class 修改组件的默认样式,在使用 scoped 之后,样式是没有效果. 此时可以使用div 包裹组件,deep 可以实现修改组件样式 .lxfix /deep/ .contr ...

  3. vue组件中的样式属性:scoped,解决在父组件中无法修改子组件样式问题

    Scoped CSS规范是Web组件产生不污染其他组件,也不被其他组件污染的CSS规范. vue组件中的style标签标有scoped属性时表明style里的css样式只适用于当前组件元素,它是通过使 ...

  4. Vue中的scoped及穿透方法(修改第三方组件局部的样式)

    何为scoped? 在vue文件中的style标签上,有一个特殊的属性:scoped.当一个style标签拥有scoped属性时,它的CSS样式就只能作用于当前的组件,也就是说,该样式只能适用于当前组 ...

  5. 如何在vue中修改动态标签中的样式和修改组件库样式

    vue中修改动态标签中的样式和修改组件库样式 因为vue中的标签在渲染的时候,都会给标签加上id 所以你想在<style lang="scss" scoped>直接修改 ...

  6. rtvue-lowcode:一款基于uniapp框架和uview组件库的开源低代码开发平台

    rtvue-lowcode低代码开发平台 rtvue-lowcode一款基于uniapp框架和uview组件库的低代码开发平台,项目提供可视化拖拽编辑器,采用MIT开源协议,适用于app.小程序等项目 ...

  7. uni app 零基础小白到项目实战-1

    uni-app是一个使用vue.js开发跨平台应用的前端框架. 开发者通过编写vue.js代码,uni-app将其编译到Ios,android,微信小程序等多个平台,保证其正确并达到优秀体验. Uni ...

  8. android 修改系统的dialog样式

    android 修改系统的dialog样式 一.觉得自定义配置文件麻烦?那就来修改系统自定义XML文件来实现修改系统dialog的样式吧. 如果是在XML中样式:首先来说下样式.  在 Style.x ...

  9. vue组件中的样式属性--scoped

    Scoped CSS Scoped CSS规范是Web组件产生不污染其他组件,也不被其他组件污染的CSS规范. vue组件中的style标签标有scoped属性时表明style里的css样式只适用于当 ...

  10. Android学习系列(40)--Android主题和样式之系统篇(下)

    11)Widget样式(Widget Style) 特别说明,此处定义大量的系统内置控件的样式,对于重写原生控件的样式具有很大的参考价值. <!-- Widget styles --> & ...

随机推荐

  1. 关于Vue的就地更新策略的解析

    在Vue中使用v-for渲染列表时,默认使用就地更新策略.该策略默认是基于索引的,规定在列表绑定的数据元素顺序变化时,不会重新创建整个列表,而只是更新对应DOM元素上的数据.以下代码实现了一个TODO ...

  2. 三维模型OSGB格式轻量化的纹理压缩和质量保持分析

    三维模型OSGB格式轻量化的纹理压缩和质量保持分析 在三维模型应用中,纹理数据是一个重要的部分,可以为模型增加更多的真实感和细节.但是,由于纹理数据通常会占用大量的存储空间和传输带宽,因此,在OSGB ...

  3. Java日志框架的依赖设置备查(SLF4J, Log4j, Logback)

    前言 最近在看代码的过程中,发现身边的许多人在使用Java日志框架时,对于应该引入何种依赖不甚了解,搜索网络上的文章,常常也是互不一致.这篇文章可以看着是Java日志框架的入门使用和实践建议,重点介绍 ...

  4. 从壹开始前后端开发【.Net6+Vue3】(二)前端框架

    项目名称:KeepGoing(继续前进) 介绍 工作后,学习的脚步一直停停走走,希望可以以此项目为基础,可以不断的迫使自己不断的学习以及成长 将以Girvs框架为基础,从壹开始二次开发一个前后端管理框 ...

  5. Java实现常见查找算法

    Java实现常见查找算法 查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找. 线性查找 线性查找(Linear Search)是一种简单的查 ...

  6. Vue 搭配 Spring MVC 创建一个 web 项目

    Vue 搭配 Spring MVC 创建一个 web 项目 想要写一个登录的web应用程序.页面使用Vue,后端使用Spring MVC,最终打成war包,放在tomcat下启动. 1.创建Sprin ...

  7. WPF中以MVVM方式,实现RTSP视频播放

    前言视频播放在上位机开发中经常会遇到,基本上是两种常见的解决方案 1.采用厂家提供的sdk和前端控件进行展示,常见的海康/大华都提供了相关sdk及文档 2.开启相机onvif协议,捅过rtsp视频流进 ...

  8. Oracle字符串函数-Translate()总结

    Oracle的Translate(expr,from_string,to_string)是字符串操作函数,实现from_string,to_string字符的一 一替换 1)典型示例: select ...

  9. 2020 ICPC 南京站

    gym A. Ah, It's Yesterday Once More 有趣的题,但场上的人恐怕不会这么想( 构造一条长路径,且拐弯处在不同边界.这样每条竖线合并后都在一边,还需要走一遍才能合并到一起 ...

  10. Python网络编程——基于tcp协议实现远程执行命令、udp协议没有粘包问题、解决粘包问题、socketserver模块的基本使用(基于tcp协议、基于udp协议的使用)

    文章目录 基于tcp协议实现远程执行命令 udp协议没有粘包问题 解决粘包问题 解决粘包问题(终极版) socketserver模块的基本使用 基于tcp协议的使用 基于udp协议的使用 基于tcp协 ...