添加 Less (Leaner Style Sheets)
好的,Less,代表 Leaner Style Sheets,是 CSS 的语言扩展。它看起来很像 CSS,因此可以在更短的时间内非常容易地掌握它。Less 仅对 CSS 语言进行了一些方便的补充,这也是它能如此快速被学会的原因之一。在使用 Less 编写 CSS 时,你可以拥有变量、混合(mixins)、嵌套、嵌套的 @ 规则和冒泡、运算、函数等等;例如,以下是变量的样子:
@width: 10px;
@height: @width + 10px;
这些变量的使用方式与其他编程语言中的变量类似;例如,你可以在普通的 CSS 中以以下方式使用前面的变量:
#header {
width: @width;
height: @height;
}
上面的代码将被转换为以下 CSS,我们的浏览器可以理解:
#header {
width: 10px;
height: 20px;
}
这非常简单和整洁,不是吗?在 Nuxt 中,你可以通过在 <style> 块中使用 lang 属性将 Less 用作你的 CSS 预处理器:
<style lang="less">
</style>
如果你想将局部样式应用于特定的页面或布局,这种方式很好且易于管理。你应该在 lang 属性之前添加 scoped 属性,以便局部样式仅应用于特定的页面,而不会干扰其他页面中的样式。但是,如果你的多个页面和布局共享一个通用样式,那么你应该在项目 /assets/ 目录中全局创建该样式。因此,让我们通过以下步骤了解如何使用 Less 创建全局样式:
-
在你的终端上通过
npm安装Less及其webpack loader:$ npm i less --save-dev $ npm i less-loader --save-dev -
在
/assets/目录下创建一个main.less文件,并添加以下样式:// assets/less/main.less @borderWidth: 1px; @borderStyle: solid; .cell { border: @borderWidth @borderStyle blue; } .row { border: @borderWidth @borderStyle red; } -
如下所示,在
Nuxt配置文件中安装前面的全局样式:// nuxt.config.js export default { css: [ 'assets/less/main.less' ] } -
在你的项目中的任何地方应用前面的样式,例如:
// pages/index.vue
<template>
<div class="row">
<div class="grid-x">
<div class="medium-6 cell">
<img class="welcome" src="~/assets/images/sample-01.jpg">
</div>
<div class="medium-6 cell">
<img class="welcome" src="~/assets/images/sample-02.jpg">
</div>
</div>
</div>
</template>
当你在浏览器上启动你的应用程序时,你应该会看到你刚刚添加到 CSS 类中的边框。这些边框在开发布局时可以用作指导线,因为网格系统下面的网格线是 “不可见的”,如果没有可见的线条,就很难可视化它们。
|
你可以在我们的 |
由于我们在本节中讨论 CSS 预处理器,值得一提的是,我们可以在 <style> 块、<template> 块或 <script> 块中使用任何预处理器,例如:
-
如果你想使用
CoffeeScript编写JavaScript,你可以这样做:<script lang="coffee"> export default data: -> { message: 'hello World' } </script>有关
CoffeeScript的更多信息,请访问 https://coffeescript.org/。 -
如果你想在
Nuxt中使用Pug编写HTML标签,你可以这样做:<template lang="pug"> h1.blue Greet {{ message }}! </template>有关
Pug的更多信息,请访问 https://coffeescript.org/。 -
如果你想使用
Sass(Syntactically Awesome Style Sheets)或Scss(Sassy Cascaded Style Sheets)而不是Less编写CSS样式,你可以这样做:<style lang="sass"> .blue color: blue </style> <style lang="scss"> .blue { color: blue; } </style>有关
Sass和Scss的更多信息,请访问 https://coffeescript.org/。
本书中,我们在所有章节中都使用 Less、原生 HTML 和 JavaScript(主要是 ECMAScript 6 或 ECMAScript 2015)。但你可以随意尝试我们提到的任何预处理器。现在让我们看一下在你的 Nuxt 项目中向 HTML 元素添加效果和动画的另一种方法 – jQuery UI。