Css预编译less、sass常用方法封装和使用案例

LESS 和 Sass 都是 CSS 预处理器,它们扩展了 CSS 的功能,允许使用变量、嵌套规则、混合(mixins)、函数等功能来使 CSS 更易于维护和扩展。以下是一些 LESS 和 Sass 的常用方法封装和使用案例。

变量

LESS:

@primary-color: #42b983;
@secondary-color: darken(@primary-color, 10%);

.container {
  color: @primary-color;
  border: 1px solid @secondary-color;
}

Sass:

$primary-color: #42b983;
$secondary-color: darken($primary-color, 10%);

.container {
  color: $primary-color;
  border: 1px solid $secondary-color;
}

混合(Mixins)

LESS:

.rounded-corners (@radius: 5px) {
  border-radius: @radius;
}

.box {
  .rounded-corners(10px);
}

Sass:

@mixin rounded-corners($radius: 5px) {
  border-radius: $radius;
}

.box {
  @include rounded-corners(10px);
}

函数

LESS:

.lighten(@color, @percentage) {
  return: lighten(@color, @percentage);
}

.background {
  background-color: .lighten(@primary-color, 20%);
}

Sass:

@function lighten($color, $amount) {
  @return lighten($color, $amount);
}

.background {
  background-color: lighten($primary-color, 20%);
}

循环

LESS:

.loop(@index) when (@index > 0) {
  .item-@{index} {
    width: (@index * 10px);
  }
  .loop(@index - 1);
}

.loop(5); // 将生成 5 个不同的 .item-N

Sass:

@for $i from 1 through 5 {
  .item-#{$i} {
    width: ($i * 10px);
  }
}

条件语句

LESS:

.box {
  height: 100px;
  & when (@primary-color = #42b983) {
    background-color: @primary-color;
  } 
  & when (isnumber(@secondary-color)) {
    border-color: @secondary-color;
  }
}

Sass:

.box {
  height: 100px;
  @if $primary-color == #42b983 {
    background-color: $primary-color;
  }
  @if type-of($secondary-color) == number {
    border-color: $secondary-color;
  }
}

继承

LESS:

.base {
  margin: 10px;
}

.derived {
  .base; // 继承 .base 的样式
  padding: 10px;
}

Sass (使用 @extend):

.base {
  margin: 10px;
}

.derived {
  @extend .base;
  padding: 10px;
}

使用案例

假设你正在为一个网页应用创建一个按钮样式,你可能会想要重用一些样式,并且根据不同的状态(如悬停、激活)改变样式。

LESS:

.btn {
  display: inline-block;
  padding: 10px 20px;
  border: 1px solid @primary-color;
  color: @primary-color;
  text-decoration: none;
  .rounded-corners;

  &:hover {
    background-color: @primary-color;
    color: white;
  }

  &:active {
    border-color: @secondary-color;
  }
}

.submit-btn {
  .btn;
  border-color: green;
}

Sass:

.btn {
  display: inline-block;
  padding: 10px 20px;
  border: 1px solid $primary-color;
  color: $primary-color;
  text-decoration: none;
  @include rounded-corners;

  &:hover {
    background-color: $primary-color;
    color: white;
  }

  &:active {
    border-color: $secondary-color;
  }
}

.submit-btn {
  @extend .btn;
  border-color: green;
}

在实际项目中,你可能还会使用 LESS 或 Sass 进行更高级的操作,如主题管理、响应式设计、CSS 动画等。预处理器的强大功能可以帮助你编写更高效、更易于维护的样式代码。

我的博客只写前端博文,点击我去看更多喜欢的前端博文,欢迎大家一起讨论学习!【https://blog.csdn.net/qq_29101285?spm=1011.2266.3001.5343】

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值