Nodejs中Stylus让CSS也能编程

Nodejs中Stylus让CSS也能编程

alt Stylus让CSS也能编程

前言:

到目前为止,前端开发三个最重要的部分HTML, Javascript, CSS中,不管是文档还是工具,对于CSS的支持是最少的。在HTML5+CSS3的时代,我们要更加懂CSS,要让CSS也成为开发的利器。

对于开发来说,CSS的弱点在于静态化。我们不得不背CSS的各种规范,然后一字一句的编写文件。我们需要一个真正能提高开发效率的工具,LESS, SASS都在这方面做了一些贡献。

Stylus比LESS更强大,而且基于nodejs比SASS更符合我们的思路。

文章目录:

  • Stylus介绍
  • Stylus安装
  • Stylus语法
  • 在Express3项目中使用Stylus
  • 基于grunt自动处理

请查看博客文章

http://blog.fens.me/nodejs-stylus-css/


6 回复

Nodejs中Stylus让CSS也能编程

前言:

到目前为止,前端开发三个最重要的部分HTML、JavaScript、CSS中,CSS的支持一直是相对较少的。在HTML5+CSS3的时代,我们需要更加灵活地运用CSS,让其成为开发的强大工具。CSS的静态化特性使其难以适应现代Web应用的需求。为了提高开发效率,LESS和SASS等工具应运而生。而Stylus不仅比LESS更强大,而且由于它基于Node.js,更符合我们的开发习惯。

文章目录:

  • Stylus介绍
  • Stylus安装
  • Stylus语法
  • 在Express3项目中使用Stylus
  • 基于Grunt自动处理

Stylus介绍

Stylus是一种CSS预处理器,可以让你用一种更为简洁和灵活的方式编写CSS。它支持变量、嵌套规则、混合(mixins)、函数等功能,极大地提高了CSS的可维护性和扩展性。

Stylus安装

你可以通过npm(Node Package Manager)来安装Stylus:

npm install stylus -g

或者在项目中本地安装:

npm install stylus --save-dev

Stylus语法

Stylus的基本语法非常简单。以下是一个简单的例子:

// 定义变量
$primary-color = #4CAF50

// 定义混合
button-style()
  padding 10px
  border-radius 5px
  background-color $primary-color
  color white

// 使用混合
.button
  button-style()

.container
  width 100%
  height 100%
  display flex
  flex-direction column
  justify-content center
  align-items center

上述代码定义了一个按钮样式,并在一个类名为.button的元素中使用了这个样式。同时,定义了一个容器样式,用于居中显示内容。

在Express3项目中使用Stylus

假设你已经有一个Express3项目,可以在项目中安装Stylus和相关中间件:

npm install stylus nib --save
npm install stylus-middleware --save-dev

然后,在你的Express应用中配置Stylus中间件:

var express = require('express');
var stylus = require('stylus');

var app = express();

app.use(stylus.middleware({
  src: __dirname + '/public',
  compile: function(str, path) {
    return stylus(str)
      .set('filename', path)
      .use(nib()); // 使用nib扩展
  }
}));

app.get('/', function(req, res) {
  res.render('index');
});

app.listen(3000);

在这个配置中,stylus.middleware会将.styl文件编译为CSS,并将其注入到页面中。

基于Grunt自动处理

Grunt是一个流行的前端任务运行器,可以帮助你自动化一些常见的开发任务。你可以使用grunt-contrib-stylus插件来自动处理Stylus文件。

首先,安装必要的插件:

npm install grunt grunt-contrib-stylus --save-dev

然后,在项目的Gruntfile.js中添加Stylus任务:

module.exports = function(grunt) {
  grunt.initConfig({
    stylus: {
      compile: {
        options: {
          compress: true
        },
        files: {
          'public/css/style.css': 'public/stylus/style.styl'
        }
      }
    }
  });

  grunt.loadNpmTasks('grunt-contrib-stylus');
  grunt.registerTask('default', ['stylus']);
};

这样,每次你修改.styl文件时,Grunt都会自动编译并生成对应的CSS文件。

总结

通过Stylus,我们可以更高效地编写和管理CSS,使得CSS代码更加模块化和可复用。结合Express和Grunt,可以进一步提升开发效率,让CSS成为真正的开发利器。


有点意思!

不过是不是直接使用CSS比较好点,干嘛那么复杂呢?

特定场合,解决特定的问题。

比如,CSS换皮肤,极限减少CSS指令集,自动生成Web模板 等的应用,会大力使用这种技术。

不是早就有less了吗?

https://github.com/less/less.js

stylus 很好 当时那么多里边就选了这个

当时expressjs感觉很好时候就选了stylus 一个作者

Nodejs中Stylus让CSS也能编程

前言:

在前端开发中,CSS是相对比较静态的一部分,我们在编写时需要遵守严格的语法规则,并且常常需要处理浏览器兼容性问题。Stylus是一种CSS预处理器,它通过提供更强大的语法来增强CSS的功能,使CSS编程更加灵活和高效。

与LESS和SASS相比,Stylus不仅提供了更多的功能,还支持JavaScript风格的语法,使其在Node.js环境下更为得心应手。接下来,我们将逐步了解如何使用Stylus进行开发。

文章目录:

  1. Stylus介绍
  2. Stylus安装
  3. Stylus语法
  4. 在Express3项目中使用Stylus
  5. 基于Grunt自动处理

示例代码

安装Stylus

首先,你需要安装Stylus和相关的编译器:

npm install stylus -g
编写Stylus代码

创建一个.styl文件,例如styles.styl:

// styles.styl
$primary-color = #42b983 // 变量定义
body
  font-family: Arial, sans-serif
  background-color: $primary-color
  h1
    color: darken($primary-color, 10%) // 使用函数

使用Stylus命令行工具编译:

stylus styles.styl -o public/stylesheets/
在Express3项目中使用Stylus

在Express项目中,可以这样配置:

var express = require('express');
var stylus = require('stylus');

var app = express();

app.set('views', __dirname + '/views'); // 设置视图路径
app.set('view engine', 'jade'); // 设置模板引擎

app.use(stylus.middleware({
  src: __dirname + '/public',
  compile: function(str, path) {
    return stylus(str)
      .set('filename', path);
  }
}));

app.get('/', function(req, res) {
  res.render('index');
});

app.listen(3000);
基于Grunt自动处理

在Gruntfile.js中添加Stylus任务:

module.exports = function(grunt) {

  grunt.initConfig({
    stylus: {
      compile: {
        options: {
          compress: true
        },
        files: {
          'public/stylesheets/style.css': 'public/stylesheets/style.styl'
        }
      }
    }
  });

  grunt.loadNpmTasks('grunt-contrib-stylus');
  grunt.registerTask('default', ['stylus']);
};

运行Grunt命令编译Stylus文件:

grunt

总结

通过上述步骤,你可以将Stylus集成到你的Node.js项目中,并通过工具自动化处理样式文件。这不仅可以提高开发效率,还能保持代码的整洁和可维护性。

回到顶部