@Wangww0925
2020-08-03T02:52:58.000000Z
字数 2691
阅读 312
Vue_CLI css预处理器_stylus
打开test.html页面
注意: 文件目录(路径以根目录开始)
stylus_demo|-| src|--| css|---| test.css (使用grunt生成的)|--| stylus|---| test.styl (内容根据实际来)|--| test.html|-| Gruntfile.js (grunt配置文件)|-| package.json|-| package-lock.json
test.styl
/**********************************继承************************************/.positionCenterposition:absolutetop:50%left:50%vendor('transform',translate(-50%,-50%))/**********************************定义函数********************************//** vendor('border-radius',5px)* vendor('box-shadow',0px 0px 1px 2px #333)* vendor('transform',translate(-50%,-50%))*/vendor(prop, n)-webkit-{prop}:n-moz-{prop}:n-ms-{prop}:n-o-{prop}:n{prop}:n/**********************************主体内容********************************/.positionTop@extend .positionCenterwidth:100pxheight:100pxbackground-color:redcolor:#ffftext-align:centerline-height:100px.divline-height:30pxcolor:red&:hovercolor:blue
test.html
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Document</title><link rel="stylesheet" href="./css/test.css"></head><body><div class="positionTop">定位</div><div class="div">11111111111</div></body></html>
module.exports = function(grunt) {grunt.initConfig({ // 任务配置,所有插件的配置信息pkg: grunt.file.readJSON('package.json'),stylus:{build: {options: {linenos: false,compress: true},files: [{'src/css/test.css': ['src/stylus/test.styl'] // 将test.styl转成test.css}]}},watch: { // watch插件的配置信息another: {files: ['src/css/*','src/stylus/*.styl'],tasks: ['stylus'],options: {livereload: 1337}}}});// 告诉grunt我们将使用插件grunt.loadNpmTasks('grunt-contrib-watch');grunt.loadNpmTasks('grunt-contrib-stylus');// 告诉grunt当我们在终端中输入grunt时需要做些什么 根据情况使用grunt.registerTask('default', ['watch']); // 监听.styl文件更改,并转换};
& npm init // 创建项目& npm install grunt // 下载grunt& npm install grunt-contrib-stylus // .styl 转 .css& npm install grunt-contrib-watch // 监听指定的.styl
grunt执行命令之后会发现多了 src/css/test.css文件

npm install stylus --save-devnpm install stylus-loader --save-dev
方法一: 在.vue文件中使用stylus标签
例: 在style标签加上 lang="stylus"
<style scoped lang="stylus">.avatarfloat: left;width: 300px;imgwidth: 60px;height: 60px;display: inline-block;border-radius: 30px;</style>
方法二: 在.vue文件中引用.styl文件
<style lang="stylus">@import "~@/assets/stylus/common.styl";</style>
assets/stylus/base.styl
p(n)padding: n;
.vue文件
<template><div id="contentBg>stylus使用</div></template><style lang="stylus">@import "~@/assets/stylus/base.styl";#contentBgp(50px 30px);</style>