美文网首页
less中的继承与混合

less中的继承与混合

作者: 东扯葫芦西扯瓜 | 来源:发表于2020-05-07 22:30 被阅读0次

less中的继承与混合

写vue项目,清一色vue+less!有时候习惯了就不想去改,虽然一直想试试scss和stylus!
写样式,免不了写很多重复样式,使用预编译语言后,可以使用继承和混合(可以传递便变量)来减少重复样式!

1.继承

新建extend.less

/*
用于继承的样式
 */

//相对窗口定位的顶部元素
.topFixed{
  position: fixed;
  left:50%;
  width:100%;
  max-width:750px;
  -webkit-transform: translate(-50%,0);
  -moz-transform: translate(-50%,0);
  -ms-transform: translate(-50%,0);
  -o-transform: translate(-50%,0);
  transform: translate(-50%,0);
}
//顶部满屏居中元素
.topNoPositionCenterBox{
  width:100%;
  max-width:750px;
  margin:0 auto;
}

新建common.less

@import "./extend";//引入extend.less
  .lpiName{
    font-weight:bold;
    font-size:.32rem;
    padding:0;
    &:extend(.topFixed);//通过&:extend()继承,括号传需要继承的类名
  }

新建mix.less,用于混合的less,
通过@来声明变量,例如position的值是变量,可以使用@positon,当然也可以使用别的,可以声明默认值,例如@position:absolute,默认值是absolute。
.positionCenter(@position:absolute,@rotate:0deg){
position: @position;
left:50%;
top:50%;
-webkit-transform: translate(-50%,-50%) rotate(@rotate);
-moz-transform: translate(-50%,-50%) rotate(@rotate);
-ms-transform: translate(-50%,-50%) rotate(@rotate);
-o-transform: translate(-50%,-50%) rotate(@rotate);
transform: translate(-50%,-50%) rotate(@rotate);
}

/*
less混合
 */

//省略号
.textEllipsis (@width) {//可以不写默认值
  max-width: @width;
  overflow: hidden;
  -ms-text-overflow: ellipsis;
  text-overflow: ellipsis;
  white-space: nowrap;
}
//定位居中
.positionCenter(@position:absolute,@rotate:0deg){
  position: @position;
  left:50%;
  top:50%;
  -webkit-transform: translate(-50%,-50%) rotate(@rotate);
  -moz-transform: translate(-50%,-50%) rotate(@rotate);
  -ms-transform: translate(-50%,-50%) rotate(@rotate);
  -o-transform: translate(-50%,-50%) rotate(@rotate);
  transform: translate(-50%,-50%) rotate(@rotate);
}
//宽高层级变换圆角
.W_H_ZIndexTransformRadius(@width:100%,@height:100%,@z-index:1,@translateX:0,@translateY:0,@rotate:0,@radius:0){
  width:@width;
  height:@height;
  z-index: @z-index;
  -webkit-transform: translate(@translateX,@translateY) rotate(@rotate);
  -moz-transform: translate(@translateX,@translateY) rotate(@rotate);
  -ms-transform: translate(@translateX,@translateY) rotate(@rotate);
  -o-transform: translate(@translateX,@translateY) rotate(@rotate);
  transform: translate(@translateX,@translateY) rotate(@rotate);
  -webkit-border-radius: @radius;
  -moz-border-radius: @radius;
  border-radius: @radius;
}
//左上定位,宽高,层级 混合里面可以嵌套混合
.positionLeftTopSizeIndex(@position:absolute,@left:0,@top:0,@width:100%,@height:100%,@z-index:1,@translateX:0,@translateY:0,@rotate:0,@radius:0){
  position: @position;
  left:@left;
  top:@top;
 .W_H_ZIndexTransformRadius(@width:@width,@height:@height,@z-index:@z-index,@translateX:@translateX,@translateY:@translateY,@rotate:@rotate,@radius:@radius)
}

在common.less使用,传递变量

  .lpiName{
    font-weight:bold;
    font-size:.32rem;
    padding:0;
    .textEllipsis(2.5rem);//没有默认值的直接传递2.5rem
    //有默认值的,赋值需要加上变量属性名,例如@position: fixed
    .positionLeftTopSizeIndex(@position: fixed,@height: 2rem,@z-index: 999);
  }

相关文章

  • less中的继承与混合

    less中的继承与混合 写vue项目,清一色vue+less!有时候习惯了就不想去改,虽然一直想试试scss和st...

  • Lesson-30 less

    在 less 中 @ 表示变量 . 代表函数 或者叫做混合 嵌套表示继承 &: 可以表示状态 上面说的函数只是简单...

  • 04.less中的混合,带参数混合

    less中的混合 什么是less中的混合(Mixin)?将需要重复使用的代码封装到一个类中,在需要使用的地方调用封...

  • less拓展 写一个flex函数

    今天在工作中偶然看到同组同事为flex布局写了很多less混合 而自己在工作中也经常在对应的文件中写less混合。...

  • Less 混合

    本节我们学习 Less 中的混合(Mixin),混合是一种将一组属性从一个规则集包含或混入到另一个规则集的方法。简...

  • Less 混合

    本节我们学习 Less 中的混合(Mixin),混合是一种将一组属性从一个规则集包含或混入到另一个规则集的方法。简...

  • Less初始

    Less是一门CSS预处理语言,为了解决CSS中过于呆板的写法。Less =变量 +混合 +函数 变量 (1)使用...

  • less使用总结

    less语法 less的基础语法常用到的主要有:变量、混合(Mixins)、嵌套规则; 1.变量 和JS中的变量一...

  • 2017-3-21 less

    混合 1、定义一个带参数的属性集合 LESS: CSS: 2、 LESS : CSS: 3 、 LESS: CSS...

  • LESS混合与匹配模式

    1. 普通混合 (1)什么是混合:混合就是一种将一系列属性从一个规则集引入到另一个规则集的方式 (2)示例: le...

网友评论

      本文标题:less中的继承与混合

      本文链接:https://www.haomeiwen.com/subject/fqktnhtx.html