Vue项目的 Sass 全局基础样式格式化方案,包含常见元素的样式重置

步骤 1:创建全局样式文件

在项目中创建文件:src/assets/scss/global.scss

内容如下:

cpp 复制代码
// 全局盒模型设定(边框计入宽高)
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

// 基础元素样式重置
body, div, p, h1, h2, h3, h4, h5, h6,
ul, ol, li, dl, dt, dd, blockquote,
figure, figcaption, hr, pre, form, fieldset,
input, textarea, button, img {
  margin: 0;
  padding: 0;
  border: 0;
}

// 图片默认处理
img {
  display: block;      // 解决图片底部间隙问题
  max-width: 100%;     // 响应式限制
  height: auto;        // 保持比例
}

// 列表项去除默认符号
ul, ol, li {
  list-style: none;
}

// 链接样式重置
a {
  text-decoration: none;
  color: inherit;
  &:hover {
    text-decoration: underline;
  }
}

// 表格边框合并
table {
  border-collapse: collapse;
  border-spacing: 0;
}

// 表单元素重置
button, input, optgroup, select, textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0;
}

// 移除输入框默认样式(可选)
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

步骤 2:配置全局引入

修改 vue.config.js(没有则新建):

cpp 复制代码
module.exports = {
  css: {
    loaderOptions: {
      sass: {
        // 注意根据 sass-loader 版本调整属性名:
        // v8 用 'prependData', v10+ 用 'additionalData'
        additionalData: `@import "@/assets/scss/global.scss";`
      }
    }
  }
};

步骤 3:安装依赖

确保已安装 Sass 相关依赖(Vue2 推荐使用 sass-loader@10):

cpp 复制代码
npm install sass sass-loader@10 --save-dev

步骤 4:重启项目

cpp 复制代码
npm run serve

扩展建议

  1. 字体统一设定:可在 body 选择器中添加默认字体
cpp 复制代码
body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  line-height: 1.5;
}
  1. 颜色变量管理:定义全局颜色变量
cpp 复制代码
$primary-color: #1890ff;
$text-color: #333;
  1. 响应式断点:添加媒体查询变量
cpp 复制代码
$breakpoint-sm: 576px;
$breakpoint-md: 768px;

最终效果

  1. 所有元素默认无内外边距
  2. 盒子尺寸包含边框(border-box 模型)
  3. 图片自适应且无底部间隙
  4. 列表无默认符号
  5. 链接无下划线
  6. 表单元素样式统一

可根据项目需求在上述模板基础上继续扩展!

相关推荐
咩咩啃树皮8 小时前
第40篇:Vue3组件化开发精讲——组件拆分、复用、父子通信、工程化架构
java·前端·架构
阳光是sunny8 小时前
LangGraph中的Reducer是什么
前端·人工智能·后端
触底反弹8 小时前
一文搞懂 Tailwind CSS 弹性布局:从原理到实战
前端·css·html
阳光是sunny8 小时前
从链到图:LangGraph 入门基础全解析
前端·人工智能·后端
小林ixn9 小时前
从 ??= 到 onKeyDown:一个 React 组件的“自我修养”
前端·javascript·react.js
REDcker9 小时前
显示分辨率标准对照详解
前端·网络·分辨率·显示·屏幕
এ慕ོ冬℘゜9 小时前
前端实战:jQuery 多条件联合搜索(标题模糊查询 + 日历时间段筛选)
前端·javascript·jquery
武子康10 小时前
Search Console Platform Properties 扩大 SEO 资产边界:从 Page Ranking 到 Topic Coverage(5 类误读边界 + 3 表数据层设计)
前端·人工智能·后端
一点一木10 小时前
从60首歌到1个网站:输入你的故事,还你一首歌
前端·github
IT_陈寒11 小时前
Vue这个特性差点让我加班到凌晨,谁懂啊
前端·人工智能·后端