使用Vant定制主题

编程入门 行业动态 更新时间:2024-10-18 19:25:41

使用Vant定制<a href=https://www.elefans.com/category/jswz/34/1770689.html style=主题"/>

使用Vant定制主题

Vant定制主题的核心原理

Vant 提供了一套默认主题,CSS 命名采用 BEM 的风格,方便使用者覆盖样式。如果你想完全替换主题色或者其他样式,可以按照本文档进行主题定制。

定制方法

定制主题时,需要引入组件对应的 Less 样式文件,支持按需引入和手动引入两种方式。

1.引入样式源文件

main.js里面

// 导入并安装 Vant 组件库
import Vant from 'vant'
// 切记:为了能够覆盖默认的 less 变量,这里一定要把后缀名改为 .less
import 'vant/lib/index.less'
2.修改样式变量

使用 Less 提供的 modifyVars 即可对变量进行修改,下面是参考的 webpack 配置。(自己手动搭建的webpack)

// webpack.config.js
module.exports = {rules: [{test: /\.less$/,use: [// ...其他 loader 配置{loader: 'less-loader',options: {// 若 less-loader 版本小于 6.0,请移除 lessOptions 这一级,直接配置选项。lessOptions: {modifyVars: {// 直接覆盖变量'text-color': '#111','border-color': '#eee',// 或者可以通过 less 文件覆盖(文件路径为绝对路径)hack: `true; @import "your-less-file-path.less";`,},},},},],},],
};

如果 vue-cli 搭建的项目,可以在 vue.config.js 中进行配置。
//配置vue,config.js文件(与src目录同级)
vue.config.js 是一个可选的配置文件,如果项目的 (和 package.json 同级的) 根目录中存在这个文件,那么它会被 @vue/cli-service 自动加载。你也可以使用 package.json 中的 vue 字段,但是注意这种写法需要你严格遵照 JSON 的格式来写。

这个文件应该导出一个包含了选项的对象:

// vue.config.js/*** @type {import('@vue/cli-service').ProjectOptions}*/
module.exports = {// 选项...
}
// vue.config.js
module.exports = {css: {loaderOptions: {less: {// 若 less-loader 版本小于 6.0,请移除 lessOptions 这一级,直接配置选项。lessOptions: {modifyVars: {// 直接覆盖变量'text-color': '#111','border-color': '#eee',// 或者可以通过 less 文件覆盖(文件路径为绝对路径)hack: `true; @import "your-less-file-path.less";`,},},},},},
};

less(可编程式语言)的正确打开方式

变量(Variables)
无需多说,看代码一目了然:

@width: 10px;
@height: @width + 10px;#header {width: @width;height: @height;
}

编译为

#header {width: 10px;height: 20px;
}

推荐使用theme.less定制主题

修改服务器需重新打包,所以不建议在服务器中修改。
在src目录下 创建theme.less文件
举例:

// 在 theme.less 文件中,覆盖 Vant 官方的 less 变量值
@blue: #007bff;// 覆盖 Navbar 的 less 样式
@nav-bar-background-color: @blue;
@nav-bar-title-text-color: #fff;

使用:

// 这个文件是 vue-cli 创建出来的项目的配置文件
// 在 vue.config.js 这个配置文件中,可以对整个项目的打包、构建进行全局性的配置// webpack 在进行打包的时候,底层用到了 node.js
// 因此,在 vue.config.js 配置文件中,可以导入并使用 node.js 中的核心模块
const path = require('path')
const themePath = path.join(__dirname, './src/theme.less')module.exports = {publicPath: './',css: {loaderOptions: {less: {modifyVars: {// 直接覆盖变量// 'nav-bar-background-color': 'orange',// 或者可以通过 less 文件覆盖(文件路径为绝对路径)//  ../    ./    theme.less// 从盘符开始的路径,叫做绝对路径   C:\\Users\liulongbin\\theme.lesshack: `true; @import "${themePath}";`}}}}
}

更多推荐

使用Vant定制主题

本文发布于:2024-03-07 10:19:11,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1717554.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:主题   Vant

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!