当前位置: 首页 > news >正文

uni-app项目实战笔记11--定义scss颜色变量方便页面引用

在完成项目创建后,uniapp为我们创建了一个全局的uni.scss文件,里边定义了一些颜色,字体大小的变量,我们可以在项目中直接引用:

/* 行为相关颜色 */
$uni-color-primary: #007aff;
$uni-color-success: #4cd964;
$uni-color-warning: #f0ad4e;
$uni-color-error: #dd524d;/* 文字基本颜色 */
$uni-text-color:#333;//基本色
$uni-text-color-inverse:#fff;//反色
$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
$uni-text-color-placeholder: #808080;
$uni-text-color-disable:#c0c0c0;

使用时只需直接使用名称即可,如$uni-color-primary。

我们也可以定义一些样式,然后在uni.scss中引入,注意引入需要这样写才生效:

@import "@/common/style/base-style.scss";

前面的@/不可少,要以英文分号结尾。如果页面中引入了自定义的样式,uni.scss也正确引入了,需要把HBuilder X项目重新启动才会生效,要不然会报错。

页面中<style>中的样式可直接使用名称进行引用:

color: $brand-theme-color;

但是在html中定义的颜色,比如像下面的代码:

<uni-icons type="calendar" size="18" color="#28B389"></uni-icons>

则不能直接使用$brand-theme-color来引用,需要在<style>中定义样式才能使用颜色变量,

color:$brand-theme-color;

如果像上面替换了不起作用,有可能是行内样式,被覆盖了(调试时会发现样式代码被横线划掉),可以使用!import来提高权重让设置生效:

color:$brand-theme-color !important;

但该种方式在H5页面可以生效,在微信小程序却不生效,需要使用deep深度穿透来让设置生效:

:deep(){.uni-icons{color:$brand-theme-color !important;}	

:deep() 的作用

在 Vue 3 的 <style scoped> 或 微信小程序自定义组件的样式隔离 环境下,默认无法直接修改子组件的样式。

:deep() 是一个样式穿透选择器,允许绕过样式隔离,强制影响子组件内部的样式。    

 

相关文章:

  • HarmonyOS 组件复用 指南
  • [直播推流] 使用 librtmp 库推流
  • 开心灿烂go开发面试题
  • C++/OpenCV地砖识别系统结合 Libevent 实现网络化 AI 接入
  • 雪豹速清APP:高效清理,畅享流畅手机体验
  • 【C++进阶篇】哈希的应用(位图)
  • 代码随想录算法训练营day4
  • Verilog自适应位宽与指定位宽不同导致模块无法正常执行
  • CMake 构建系统概述
  • CAD中DWG到DXF文件解析(一)
  • Linux入门(十六)shellshell变量设置环境变量位置参数变量预定义变量
  • langchain_mcp_adapters - MultiServerMCPClient 获取工具
  • 全球化2.0|云轴科技ZStack联合Teleplex举办技术沙龙 · 吉隆坡站
  • Flask文件上传与异常处理完全指南
  • 【Qt】QStateMachine状态机-对状态机分组、历史状态,实现复杂状态机
  • Git命令与代码仓库管理
  • qt中自定义控件编译成动态库
  • RabbitMQ核心函数的参数意义和使用场景
  • 深入解析JVM字节码执行引擎
  • SpringBoot自动化部署实战指南
  • 滨海专业做网站/企业短视频推广
  • 扫码进入网站 怎么做/个人怎么注册自己的网站
  • java做网站用的是什么/软文范例大全
  • 商务网站建设目的/免费的十大免费货源网站
  • 云南省住房建设厅网站/洛阳市网站建设
  • 网站开发如何压缩图片/丁的老头seo博客