Vue项目中关于全局css的处理

这篇具有很好参考价值的文章主要介绍了Vue项目中关于全局css的处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我们在写CSS的时候,会遇到大量相同的属性(比如:margin-top:10px)这种属性几乎每个vue页面都有。这个时候,我们可以把css挂载到全局上,供所有vue页面使用,同时也方便修改。

步骤一:定义声明全局CSS的样式文件(common.scss)

// 关于声明全局的CSS:
	1 我们可以直接定义我们需要的。比如margin-top:10px
	2 我们可以引用第三方定义好的样式(element-ui或者elementPlus)


例如:
// 1.我们自己对margin的定义
$base-margin-5: 5px;
$base-margin-10: 10px;
$base-margin-15: 15px;
$base-margin-20: 20px;
$base-margin-20: 25px;


// 2. 引用第三方的CSS
$base-color-primary: var(--el-color-primary);
$base-color-primary-light1: var(--el-color-primary-light-1);
$base-border-color: var(--el-border-color);

步骤二:挂载到全局

  1. 在App.vue的style标签内引入
    vue css 全局变量,vue封装专栏,vue.js,css,前端
  2. 在main.js中引入
    vue css 全局变量,vue封装专栏,vue.js,css,前端
  3. 在index.html 中引入

vue css 全局变量,vue封装专栏,vue.js,css,前端
4. 在vue.comfig.js中引入

vue css 全局变量,vue封装专栏,vue.js,css,前端

封装一:对common.scss拆分

拆分的结果可以分为以下几类:
新建index.scss作为所有css文件的入口文件
vue css 全局变量,vue封装专栏,vue.js,css,前端文章来源地址https://www.toymoban.com/news/detail-767268.html

  1. common.scss 文件放的是对html、div等约束的样式
  2. element-reset.scss文件放的是对element-ui样式的修改(修改el-menu等样式)
  3. reset.scss文件放的是 normalize.css
  4. variable.scss文件放的是上面说的那些公共的样式

封装二:新建index.scss,对elementPlus或者element-ui样式进行覆盖

//  比如:覆盖elementPlus的主题背景
@forward 'element-plus/theme-chalk/src/common/var.scss' with (
  $colors: (
    'primary': (
      'base': #990066,
    )
  )
);

@use "element-plus/theme-chalk/src/message.scss" as *;
@use "element-plus/theme-chalk/src/message-box.scss" as *;

封装三:variable.scss

<style>
/**
 * 全局主题变量配置
 */

 // 框架默认主题色
$base-color-primary: var(--el-color-primary);

// hover基础样式
$base-hover-color: #f5f5f5;


// 中间内容背景
$base-content-bg-color: #f1f2f5;
// 标题颜色
$base-title-color: #fff;


// width
$base-width: 100%;
$base-tab-width_active: 70px;
$base-select-width-small: 120px;
$base-drawer-width: 320px;
$base-logo-width: 240px;
// 菜单栏收起宽度
$base-unfold-width: 60px;
// 菜单栏宽度
$base-menu-width: 240px;
// 头像宽度
$base-avatar-widht: 40px;

// height
$base-height: 100%;
// 主题配置底部高度
$base-drawer-footer-height: 60px;
// 二级菜单标题高度
$sub-menu__title-height: 50px;
// logo 高度
$base-logo-height: 55px;
// 头像下拉框高度
$base-avatar-dropdown-height: 50px;
// 头像高度
$base-avatar-height: 40px;
// 底部copyright高度
$footer-copyright-height: 55px;
// 内容最低高度
$app-main-min-height: calc(100vh - 140px);


// 边框配置
$base-border-width-mini: 1px;
$base-border-width-small: 3px;
$base-border-width-default: 5px;
$base-border-width-big: 10px;
$base-border-radius: 2px;
$base-border-radius-circle: 50%;
$base-border-none: none;

// 字体大小配置
$base-font-size-small: 12px;
$base-font-size-default: 14px;
$base-font-size-big: 16px;
$base-font-size-bigger: 18px;
$base-font-size-max: 22px;
$base-border-color: #dcdfe6;

// icon配置
$base-icon-width-default: 14px;
$base-icon-width-small: 12px;
$base-icon-width-big: 16px;
$base-icon-width-bigger: 18px;
$base-icon-width-max: 22px;
$base-icon-width-super-max: 34px;
$base-icon-height-super-max: 50px;

// 字体颜色
$base-font-color: #606266;
$base-color-6: #666666;
$base-color-3: #333333;
$base-color-blue: $base-color-primary;
$base-color-green: #91cc75;
$base-color-white: #fff;
$base-color-black: #000;
$base-color-yellow: #fac858;
$base-color-orange: #ff6700;
$base-color-red: #ee6666;
$base-color-gray: rgba(0, 0, 0, 0.65);

// paddiing
$base-main-padding: 20px 30px;
$base-content-padding: 15px 20px;
$base-padding: 20px;
$base-cell-item-padding: 8px 0;
$base-padding-20-10: 20px 10px;
$base-padding-10-20: 10px 20px;
$base-padding-5-15: 5px 15px;
$base-padding-10: 10px;

// margin
$base-margin-5: 5px;
$base-margin-10: 10px;
$base-margin-15: 15px;
$base-margin-20: 20px;
$base-margin-20: 25px;

//默认阴影
$base-box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08);
$base-tabs-bar-height: 55px;
$base-tag-item-height: 34px;
$base-nav-bar-height: 60px;

//默认动画
$base-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), border 0s,
  background 0s, color 0s, font-size 0s;
//默认动画长
$base-transition-time: 0.3s;
$base-transition-time-4: 0.4s;
$base-color: #f45;
$green-color: #11d86c;

$color-red: red;
$color-green: green;
$color-blue: blue;


</style>

到了这里,关于Vue项目中关于全局css的处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端vue3分享——项目封装axios、vite使用env环境变量

    大家好,我是yma16,本文分享关于前端vue3分享——项目封装axios、使用env环境变量。 该系列往期文章: csdn新星计划vue3+ts+antd赛道——利用inscode搭建vue3(ts)+antd前端模板 认识vite_vue3 初始化项目到打包 什么是axios axios是一个流行的JavaScript库,用于在浏览器和Node.js环境中进行H

    2024年02月07日
    浏览(88)
  • vue如何定义:全局变量、全局方法

    开发中会经常用到一些常用的变量和方法   例如ajax这种 1.定义专用模块来配置全局变量 定义一个专用模块来配置全局变量,然后通过export暴露出去,在需要的组件引入global.vue  引入及使用 2.通过全局变量挂载到Vue.prototype 同上,定义一个专用模块来配置全局变量,然后通过

    2023年04月20日
    浏览(39)
  • vue3项目中关闭 eslint 检验

    关闭 eslint 检验 在 Vue 3 项目中,可以通过修改 package.json 文件或者配置 .eslintrc.js 文件来关闭 ESLint 检验。 修改 package.json 文件 在 package.json 文件中,找到 “lint” 命令,将其中的 eslint 删除即可。例如: 配置 .eslintrc.js 文件 在 Vue 3 项目中,ESLint 的配置文件默认是 .e

    2024年01月19日
    浏览(43)
  • Vue + TS 封装全局自定义指令

    在 Vue 中,指令是一种特殊的语法,用于在 DOM 元素上添加特定的行为。Vue 提供了许多内置指令,如 v-if 、 v-for 、 v-bind 等,但是在实际开发中,我们可能需要封装一些自定义指令来满足特定的需求。 本文将介绍如何使用 TypeScript 封装全局自定义指令。 在 Vue 中,我们可以使

    2024年02月12日
    浏览(40)
  • 【Vue】全局变量的定义及使用

    首先 声明Vue 使用全局变量的方法有很多,以下只是个人觉得比较简洁的2种。其中两者的第一步操作相同,即: 方法1:在main.js中直接将全局变量挂载到Vue.prototype 用时不用任何多余操作,直接调用 this.GLOBAL.name 即可。 方法2:在需要使用全局变量的页面引入global再使用

    2024年02月12日
    浏览(53)
  • Vue2封装自定义全局Loading组件

    前言 在开发的过程中,点击提交按钮,或者是一些其它场景总会遇到Loading加载框,PC的一些UI库也没有这样的加载框,无法满足业务需求,因此可以自己自定义一个,实现过程如下。 效果图 如何封装? 第1步:创建要封装成全局组件的文件 第2步:注册组件 Loading这类的通用

    2024年02月15日
    浏览(37)
  • vue3 ts 定义全局变量

    在 Vue3 中使用 TypeScript 定义全局变量可以这样做: 创建一个文件,如 global.d.ts ,并在其中声明全局变量。 在 main.ts 或其他入口文件中引入该文件。 在需要使用全局变量的地方直接使用即可。 注意,这种方式只能用于定义全局变量,不能用于定义全局函数或类。

    2024年02月17日
    浏览(47)
  • 记录--封装一个通过js调用的全局vue组件

    在使用vue项目编写的时候,不可避免的会碰到需要时js api来调用组件进行显示的情况 例如饿了么element ui 的 Notification 通知、Message 消息提示等组件 虽然已经提供了,但是由于api的限制,我们只能通过特定的参数来有限的改变组件的样式 之前的文章说过可以使用 new Vue() 、

    2024年02月09日
    浏览(55)
  • 若依vue前端有全局用户信息变量吗

    \\\"若依\\\"是一个基于SpringBoot和Vue的前后端分离的开源项目。在前端Vue部分,全局用户信息通常保存在Vuex中,Vuex是Vue.js的状态管理模式。它提供了一个集中式存储来管理所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 在若依系统中,全局用户信息通常

    2024年02月14日
    浏览(35)
  • Vue2封装一个全局通知组件并发布到NPM

    ✍🏼作者:周棋洛,计算机学生 ♉星座:金牛座 🏠主页:点击查看更多 🌐关键: vue2 组件封装 npm发包 你好!我是王子周棋洛,好久没写文了。 今天带大家 封装 一个类似 element-ui 的全局通知组件,并发布到 npm 后安装使用自己封装的组件。go,go,go🎉 原因1:现成UI组件

    2024年02月09日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包