mixin.scss 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. // mixins for clearfix
  2. // ------------------------
  3. //TODO 提出到公共mixin
  4. @mixin clearfix() {
  5. zoom: 1;
  6. &::before,
  7. &::after {
  8. display: table;
  9. content: '';
  10. }
  11. &::after {
  12. clear: both;
  13. }
  14. }
  15. // mixins for grid system
  16. // ------------------------
  17. @mixin make-row($gutter: $width-grid_gutter) {
  18. position: relative;
  19. height: auto;
  20. margin-right: ($gutter / -2);
  21. margin-left: ($gutter / -2);
  22. @include clearfix();
  23. }
  24. @mixin make-grid-columns() {
  25. $index: 1;
  26. @for $i from $index through $width-grid_columns {
  27. $item: '.#{$module}-col-#{$i}, .#{$module}-col-xs-#{$i}, .#{$module}-col-sm-#{$i}, .#{$module}-col-md-#{$i}, .#{$module}-col-lg-#{$i}';
  28. #{$item} {
  29. position: relative;
  30. min-height: 1px;
  31. padding-right: ($width-grid_gutter / 2);
  32. padding-left: ($width-grid_gutter / 2);
  33. }
  34. }
  35. }
  36. @mixin float-grid-columns($class) {
  37. $index: 1;
  38. @for $i from $index through $width-grid_columns {
  39. $item: '.#{$module}-col#{$class}-#{$i}';
  40. #{$item} {
  41. flex: 0 0 auto;
  42. float: left;
  43. }
  44. }
  45. }
  46. @mixin loop-grid-columns($index, $class) {
  47. @for $i from 1 through ($index) {
  48. .#{$module}-col#{$class}-#{$i} {
  49. display: block;
  50. box-sizing: border-box;
  51. width: percentage(($i / $width-grid_columns));
  52. }
  53. .#{$module}-col#{$class}-push-#{$i} {
  54. left: percentage(($i / $width-grid_columns));
  55. }
  56. .#{$module}-col#{$class}-pull-#{$i} {
  57. right: percentage(($i / $width-grid_columns));
  58. }
  59. .#{$module}-col#{$class}-offset-#{$i} {
  60. margin-left: percentage(($i / $width-grid_columns));
  61. }
  62. .#{$module}-col#{$class}-order-#{$i} {
  63. order: $i;
  64. }
  65. }
  66. }
  67. // grid rtl mixin
  68. @mixin float-grid-columns-rtl($class) {
  69. $index: 1;
  70. @for $i from $index through $width-grid_columns {
  71. $item: '.#{$module}-col#{$class}-#{$i}';
  72. #{$item} {
  73. .#{$prefix}-rtl & {
  74. // float 应该改为镜像的
  75. float: right;
  76. }
  77. }
  78. }
  79. }
  80. @mixin loop-grid-columns-rtl($index, $class) {
  81. @for $i from 1 through ($index) {
  82. .#{$module}-col#{$class}-offset-#{$i} {
  83. .#{$prefix}-rtl & {
  84. margin-left: auto;
  85. margin-right: percentage(($i / $width-grid_columns));
  86. }
  87. }
  88. }
  89. }
  90. @mixin make-grid($class: '') {
  91. @include float-grid-columns($class);
  92. @include loop-grid-columns($width-grid_columns, $class);
  93. @include float-grid-columns-rtl($class);
  94. @include loop-grid-columns-rtl($width-grid_columns, $class);
  95. }