常用的scss函数(mixin)

2 篇文章 0 订阅

scss自出来之后,广受欢迎,如何能快速写出想要的css呢,可自定义一些scss方法,本人罗列了一些最近用到的scss函数,其实包括文本超出范围的格式化、弹性盒子居中、左浮动、右浮动、鼠标上移样式改变等

1、文本超出范围,显示省略号

/*文本格式化,超出范围,显示省略号*/
@mixin textOverflow($width:100%,$display:block) {
  width: $width;
  display: $display;
  white-space: nowrap;
  -ms-text-overflow: ellipsis;
  text-overflow: ellipsis;
  overflow: hidden;
}

调用@include textOverflow();也可以自己传入参数,display为block或inline-block才能达到预期的效果

生成的css:

    width: 100%;
    display: block;
    white-space: nowrap;
    -ms-text-overflow: ellipsis;
    text-overflow: ellipsis;
    overflow: hidden;

2、 清除浮动 ,bootstrap有类似的类名,当然也可以用overflow:hidden

/* 清除浮动 */
@mixin clearfix {
  &:after {
    clear: both;
    content: '.';
    display: block;
    height: 0;
    line-height: 0;
    overflow: hidden;
  }
  *height: 1%;
}

生成的css

.demo {
    *height: 1%;
}

.demo:after {
    clear: both;
    content: '.';
    display: block;
    height: 0;
    line-height: 0;
    overflow: hidden;
}

其他的我直接贴出函数,若有不明白如何调用的,欢迎留言


/*弹性盒子(传入null不设置该属性)*/
@mixin flexBox($direction: row, $justify: null, $align: null, $flex-wrap: null) {
    display: flex;
    @if ($direction!=null) {
        flex-direction: $direction;
    }
    @if ($justify!=null) {
        justify-content: $justify;
    }
    @if ($align!=null) {
        align-items: $align;
    }
    @if ($flex-wrap != null) {
        flex-wrap: $flex-wrap;
    }
}

/*绝对定位  参数顺序:上右下左*/
@mixin positionAbsolute($top:null,$right:null,$bottom:null,$left:null) {
  position: absolute;
  @if ($left!="" & & $left!=null) {
    left: $left;
  }
  @if ($right!="" & & $right!=null) {
    right: $right;
  }
  @if ($top!="" & & $top!=null) {
    top: $top;
  }
  @if ($bottom!="" & & $bottom!=null) {
    bottom: $bottom;
  }
}

/*左浮动*/
@mixin float-left($width:19%,$margin-right:1.2%) {
  width: $width;
  float: left;
  @if ($margin-right!=null) {
    margin-right: $margin-right;
  }
}

/*右浮动*/
@mixin float-Right($width:19%,$margin-left:1.2%) {
  width: $width;
  float: right;
  @if ($margin-left!=null) {
    margin-left: $margin-left;
  }
}

/*渐变(从上到下)*/
@mixin linear-gradient($direction:bottom,$color1:transparent,$color2:#306eff,$color3:transparent) {
  //background: -webkit-linear-gradient($direction,$colorTop, $colorCenter, $colorBottom); /* Safari 5.1 - 6.0 */
  background: -o-linear-gradient($direction, $color1, $color2, $color3); /* Opera 11.1 - 12.0 */
  background: -moz-linear-gradient($direction, $color1, $color2, $color3); /* Firefox 3.6 - 15 */
  background: linear-gradient(to $direction, $color1, $color2, $color3); /* 标准的语法 */
}

/* 行高 */
@mixin line-height($height:30px,$line-height:30px) {
  @if ($height != null) {
    height: $height;
  }
  @if ($line-height!=null) {
    line-height: $line-height;
  }
}

/* 画三角形 */
@mixin triangle($width:10px,$direction:top,$color:$bgBlueLight) {
  border: $width solid transparent;
  @if ($direction == top) { // 上三角
    border-bottom-color: $color;
  }
  @if ($direction == bottom) { // 下三角
    border-top-color: $color;
  }
  @if ($direction == left) { // 左三角
    border-right-color: $color;
  }
  @if ($direction == right) { // 右三角
    border-left-color: $color;
  }
}

/* 文本阴影 */
@mixin text-show($h-shadow:0px, $v-shadow:0px, $blur:10px, $color:rgba(0,180,255,0.7)) {
  text-shadow: $h-shadow $v-shadow $blur $color;
}

/* 链接样式 */
@mixin hoverStyle($style:(color:#d9fdff),$hoverStyle:(color:#306eff)) {
  text-decoration: none;
  @each $key, $value in $style {
    #{$key}: #{$value};
  }
  @if ($hoverStyle!=null & & $hoverStyle!="") {
    &:hover {
      @each $key, $value in $hoverStyle {
        #{$key}: #{$value};
      }
    }
  }
}

/* 定义滚动条样式 圆角和阴影不需要则传入null */
@mixin scrollBar($width:10px,$height:10px,$outColor:$bgColor,$innerColor:$bgGrey,$radius:5px,$shadow:null) {
  /*定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/
  &::-webkit-scrollbar {
    width: $width;
    height: $height;
    background-color: $outColor;
  }

  /*定义滚动条轨道 内阴影+圆角*/
  &::-webkit-scrollbar-track {
    @if ($shadow!=null) {
      -webkit-box-shadow: $shadow;
    }
    @if ($radius!=null) {
      border-radius: $radius;
    }
    background-color: $outColor;
  }

  /*定义滑块 内阴影+圆角*/
  &::-webkit-scrollbar-thumb {
    @if ($shadow!=null) {
      -webkit-box-shadow: $shadow;
    }
    @if ($radius!=null) {
      border-radius: $radius;
    }
    background-color: $innerColor;
    border: 1px solid $innerColor;
  }
}

/* css3动画 默认3s宽度到200px */
@mixin animation($from:(width:0px),$to:(width:200px),$name:mymove,$animate:mymove 2s 1 linear infinite) {
  -webkit-animation: $animate;
  -o-animation: $animate;
  animation: $animate;
  @keyframes #{$name}
  {
    from {
      @each $key, $value in $from {
        #{$key}: #{$value};
      }
    }
    to {
      @each $key, $value in $to {
        #{$key}: #{$value};
      }
    }
  }

  @-webkit-keyframes #{$name}
  {
    from {
      @each $key, $value in $from {
        $key: $value;
      }
    }
    to {
      @each $key, $value in $to {
        $key: $value;
      }
    }
  }
}

/* 圆形盒子 */
@mixin circle($size: 11px,$bg: #fff) {
  border-radius: 50%;
  width: $size;
  height: $size;
  line-height: $size;
  text-align: center;
  background: $bg;
}

/* placeholder */
@mixin placeholder($color: #bbb) {
    // Firefox
    &::-moz-placeholder {
      color: $color;
      opacity: 1; 
    }
    // Internet Explorer 10+
    &:-ms-input-placeholder {
      color: $color;
    }
    // Safari and Chrome
    &::-webkit-input-placeholder {
      color: $color;
    }
  
    &:placeholder-shown {
      text-overflow: ellipsis;
    }
  }

以上是我个人写的scss常用的函数,当然,肯定有很多没有写到,欢迎各位补充指正,若不明白如何调用的同志,欢迎留言。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值