Vue 中的 CSS

有作用域的 CSS

当 <style> 标签有 scoped 属性时,它的 CSS 只作用于当前组件中的元素。

<style>
/* 全局样式 */
</style>

<style scoped>
/* 本地样式 */
</style>

关于有作用域的CSS 官方文档在 这里


在 vue 项目里使用scss

安装node-sass 和 sass-loader :

export SASS_BINARY_SITE="https://npm.taobao.org/mirrors/node-sass"
npm install --save  sass-loader node-sass
<style lang="scss" scoped></style>

在Vue中使用 SCSS 变量

    • 在 assets 目录下新建一个css 目录,然后在css 目录下新建一个 variables.scss文件存放我们的scss变量
  • 安装 sass-resources-loader
npm install sass-resources-loader --save-dev
  • 在项目build文件夹里找到utils.js ,找到下边代码
return {
    css: generateLoaders(),
    postcss: generateLoaders(),
    less: generateLoaders('less'),
    sass: generateLoaders('sass', { indentedSyntax: true }),
    scss: generateLoaders('sass'),
    stylus: generateLoaders('stylus'),
    styl: generateLoaders('stylus')
  }

把上面这句scss: generateLoaders('sass'),改成如下:

scss: generateLoaders('sass').concat(
      {
        loader: 'sass-resources-loader',
        options: {
          resources: path.resolve(__dirname, '../src/assets/css/variables.scss')//这里按照你的文件路径填写
        }
      }
    )
  • 改完之后,重新运行npm run dev (不重新运行会报错)就可以了,无需再引入,就可以在我们任何组件里愉快地用我们的全局变量了
    TIPS: 如果需要全局使用的除了变量还有其他的,比如mixin什么的,可以分类别在 assets/css下创建好scss文件,然后import到一个总的scss文件里,然后将这个总的scss 文件全局引入。或者,在utils.js 文件里的resources 里传入一个数组也可以。

引入CSS文件

1. 引入第三方 CSS

以引入 normalize.css 为例

首先安装 normalize.css:

npm install  --save normalize.css

然后可以看到package.json里多了这个:


image.png

引用:


image.png

还是在控制台看:


image.png

normalize.css 和 reset.css的区别:

  • normalize.css :统一默认样式,让你的页面的默认样式在每一个浏览器都是一样的
  • reset.css : 重置样式

2. 引入自己写的CSS

在Vue 项目 中引入自己写的 reset.scss

  • 在 src/assets 文件夹下新建一个 reset.scss文件

    image.png

    reset.scss 中关于中文字体,可以参考这个网站: 跨平台 CSS 中文字体解决方案

  • 在 main.js中引入


    image.png

然后就可以在控制台看到我们的css已经成功引入了:


image.png

参考:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 编写css是前端工作中,一项普通而又频繁的劳动,由于css并不是一门语言,所以在程序设计上显得有些简陋。对于小型项...
    Jack_Lo阅读 5,738评论 15 39
  • Scoped CSS 限定了范围的css 无法影响外部元素 外部样式一般不影响内部 可以通过/deep/或>>>穿...
    Love小六六阅读 527评论 0 0
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,907评论 1 45
  • 一、概念 1. 实现条件:在需要有过渡效果的标签外面添加 。也就是说vue中被 包裹的元素才能实现过渡效果。 ...
    klmhly阅读 6,107评论 0 3
  • 从和檀子的聊天记录里整理出来的: 柯拉先生其实在生命的最后期,得到了像母亲一样的爱。 其实我是漫画加动画一起看的,...
    项竹阅读 1,009评论 0 2