当前位置:   article > 正文

前端常用样式组元SCSS

前端常用样式组元SCSS

初始化元素


* {margin: 0padding: 0border: 0;box-sizing: border-box;}

基础色


  1. $primary: #183ee4;
  2. $success: #0cce63;
  3. $danger: #f00c63;
  4. $brder-color: #adacae;

设置主题色


  1. /**
  2. *@method 设置主题色类
  3. *@param $name 颜色分类
  4. *@param $oClor 原色
  5. *@param $start 颜色等级开始
  6. *@param $start 颜色等级结束
  7. **/
  8. @mixin setThemeBgColor($name, $oClor, $start, $end) {
  9.     .#{$name}-color {
  10.         color: $oClor
  11.     }
  12.     .#{$name}-color-active {
  13.         color: darken($oClor, 20%)
  14.     }
  15.     .#{$name}-bg {
  16.         background-color: $oClor
  17.     }
  18.     @for $num from $start through $end {
  19.         $color: lighten($oClor, percentage($num/10));
  20.         .#{$name}-color-#{$num} {
  21.             color: $color
  22.         }
  23.         .#{$name}-bg-#{$num} {
  24.             background-color: $color
  25.         }
  26.     }
  27. }
  28. /**
  29. *@method 设置主题色组元
  30. *@param $name 颜色分类
  31. *@param $oClor 原色
  32. *@param $start 颜色等级开始
  33. *@param $start 颜色等级结束
  34. **/
  35. @mixin setTheme($name, $oClor, $start, $end) {
  36.     --#{$name}:#{$oClor};
  37.     --#{$name}-active: #{darken($oClor, 20%)};
  38.     @for $num from $start through $end {
  39.         $color: lighten($oClor, percentage($num/10));
  40.         --#{$name}-#{$num}: #{$color};
  41.     }
  42. }
  43. /**设置组元至根节点**/
  44. :root {
  45.     @include setTheme(primary, $primary, 1, 4);
  46.     @include setTheme(success, #0cce63, 1, 4);
  47.     @include setTheme(danger, #f00c63, 1, 4);
  48. }
  49. /**调用设置主题类**/
  50. @include setThemeBgColor(primary, $primary, 1, 4);
  51. @include setThemeBgColor(success, #0cce63, 1, 4);
  52. @include setThemeBgColor(danger, #f00c63, 1, 4);

设置文本色


  1. @for $num from 1 through 7 {
  2.     .clor#{$num} {
  3.        color: lighten(#000, percentage($num/10));
  4.     }
  5. }

设置不同颜色等级边框


  1. @for $index from 1 through 3 {
  2.     $num: $index+5;
  3. $bcolor:1px solid lighten(#000, percentage($num/10))
  4. .borderL#{$index} {
  5.         border: #{$bcolor};
  6.     }
  7.     .borderL#{$index} {
  8.         border-left: #{$bcolor};
  9.     }
  10.     .borderR#{$index} {
  11.         border-right: #{$bcolor};
  12.     }
  13.     .borderT#{$index} {
  14.         border-top: #{$bcolor};
  15.     }
  16.     .borderB#{$index} {
  17.         border-bottom: #{$bcolor};
  18.     }
  19. }

设置内外边框


  1. @mixin setPdMg($cName, $dName) {
  2.     @for $index from 1 through 10 {
  3.         $num: 5*$index;
  4.         .#{$cName}L#{$num} {
  5.             #{$dName}-left:#{$num}px;
  6.         }
  7.         .#{$cName}R#{$num} {
  8.             #{$dName}-right:#{$num}px;
  9.         }
  10.         .#{$cName}T#{$num} {
  11.             #{$dName}-top:#{$num}px;
  12.         }
  13.         .#{$cName}B#{$num} {
  14.             #{$dName}-bottom:#{$num}px;
  15.         }
  16.         .#{$cName}H#{$num} {
  17.             @extend .#{$cName}L#{$num};
  18.             @extend .#{$cName}R#{$num};
  19.         }
  20.         .#{$cName}V#{$num} {
  21.             @extend .#{$cName}T#{$num};
  22.             @extend .#{$cName}B#{$num};
  23.         }
  24.         .#{$cName}#{$num} {
  25.             @extend .#{$cName}V#{$num};
  26.             @extend .#{$cName}H#{$num};
  27.         }
  28.     }
  29. }
  30. @include setPdMg(mg, margin);
  31. @include setPdMg(pd, margin);

字体、行高、圆角


  1. @mixin setComm($cName, $aName, $start, $end, $stup) {
  2.     @for $num from $start through $end {
  3.         $val: $num+$stup;
  4.         .#{$cName}#{$val} {
  5.             #{$aName}:#{$val}px
  6.         }
  7.     }
  8. }
  9. /**字体*/
  10. @include setComm(fs, font-size, 10, 40, 2);
  11. /**行高*/
  12. @include setComm(lh, line-height, 10, 40, 6);
  13. /**圆角*/
  14. @include setComm(rd, border-radius, 4, 20, 2);

文本粗细


  1. @for $num from 1 through 8 {
  2.     $val: $num*100;
  3.     .fw#{$num} {
  4.         font-weight:#{$val}
  5.     }
  6. }

flex布局


  1. .flex {
  2.     display: flex;
  3. }
  4. .flex-c {
  5.     flex-direction: column;
  6. }
  7. .flex-wrap {
  8.     flex-wrap: wrap;
  9. }
  10. .jcs {
  11.     justify-content: flex-start;
  12. }
  13. .jcc {
  14.     justify-content: center;
  15. }
  16. .jce {
  17.     justify-content: flex-end;
  18. }
  19. .jca {
  20.     justify-content: space-around;
  21. }
  22. .jcb {
  23.     justify-content: space-between;
  24. }
  25. .ais {
  26.     align-items: flex-start;
  27. }
  28. .aic {
  29.     align-items: center;
  30. }
  31. .aie {
  32.     align-items: flex-end;
  33. }

按钮样式:


  1. $lh: 38px;
  2. $dh: 32px;
  3. $sh: 26px;
  4. $mh: 20px;
  5. $lp: 0 10px;
  6. $dp: 0 15px;
  7. $sp: 0 10px;
  8. $mp: 0 6px;
  9. $dr: 4px;
  10. $fs: 14px;
  11. $fss: 12px;
  12. $fms: 10px;
  13. button,
  14. .button{
  15.     height: $dh;
  16.     line-height: $dh;
  17.     padding: $dp;
  18.     border-radius: $dr;
  19.     font-size: $fs;
  20.     background-color: #cdcdcd;
  21.     cursor: pointer;
  22.     &.small {
  23.         height: $sh;
  24.         line-height: $sh;
  25.         padding: $sp;
  26.         font-size: $fss;
  27.     }
  28.     &.mini {
  29.         height: $mh;
  30.         line-height: $mh;
  31.         padding: $sp;
  32.         font-size: $fms;
  33.     }
  34.     &.small.around {
  35.         border-radius: 10px;
  36.     }
  37.     &.mini.around {
  38.         border-radius: 8px;
  39.     }
  40.     &.around {
  41.         border-radius: 15px;
  42.     }
  43.     &.block {
  44.         width: 100%;
  45.         display: block;
  46.     }
  47.     @each $type in primary, success, danger {
  48.         &.#{$type} {
  49.             background-color: var(--#{$type});
  50.             color: #fff;
  51.         }
  52.         &.#{$type}.plan {
  53.             border: 1px solid var(--#{$type});
  54.             background-color: #fff;
  55.             color: var(--#{$type});
  56.         }
  57.     }
  58.     &[disabled] {
  59.         opacity: .6;
  60.         user-select: none;
  61.         cursor: not-allowed;
  62.     }
  63. }

按钮效果:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/564219
推荐阅读
相关标签
  

闽ICP备14008679号