UNPKG

4.32 kBSCSSView Raw
1@import "../node_modules/tinper-bee-core/scss/minxin-variables";
2
3@mixin clearfix {
4 :before,
5 :after {
6 content: " "; // 1
7 display: table; // 2
8 }
9 :after {
10 clear: both;
11 }
12}
13
14// Centered container element
15@mixin container-fixed($gutter: $grid-gutter-width) {
16 margin-right: auto;
17 margin-left: auto;
18 padding-left: floor(($gutter / 2));
19 padding-right: ceil(($gutter / 2));
20 @include clearfix;
21 //&:extend(.clearfix all);
22}
23
24// Creates a wrapper for a series of columns
25@mixin make-row($gutter: $grid-gutter-width) {
26 margin-left: ceil(($gutter / -2));
27 margin-right: floor(($gutter / -2));
28 box-sizing: border-box;
29 @include clearfix;
30}
31
32@mixin make-grid($type){
33 .u-col-#{$type}-push-0{
34 left:auto;
35 }
36 .u-col-#{$type}-pull-0{
37 right:auto;
38 }
39 @for $i from 1 through $grid-columns {
40 .u-col-#{$type}-#{$i}{
41 width:percentage($i/$grid-columns);
42 }
43 .u-col-#{$type}-push-#{$i}{
44 left: percentage($i/$grid-columns);
45 }
46 .u-col-#{$type}-pull-#{$i}{
47 right: percentage($i/$grid-columns);
48 }
49 .u-col-#{$type}-offset-#{$i}{
50 margin-left:percentage($i/$grid-columns);
51 }
52 }
53
54 @if $type == md {
55 .u-col-push-0{
56 left:auto;
57 }
58 .u-col-pull-0{
59 right:auto;
60
61
62
63
64
65
66 }
67 @for $i from 1 through $grid-columns {
68 .u-col-#{$i}{
69 width:percentage($i/$grid-columns);
70 }
71 .u-col-push-#{$i}{
72 left: percentage($i/$grid-columns);
73 }
74 .u-col-pull-#{$i}{
75 right: percentage($i/$grid-columns);
76 }
77 .u-col-offset-#{$i}{
78 margin-left:percentage($i/$grid-columns);
79 }
80 }
81 }
82}
83
84
85// Container widths
86//
87// Set the container width, and override it for fixed navbars in media queries.
88
89.u-container {
90 @include container-fixed();
91
92 @media (min-width: $screen-sm-min) {
93 width: $container-sm;
94 }
95 @media (min-width: $screen-md-min) {
96 width: $container-md;
97 }
98 @media (min-width: $screen-lg-min) {
99 width: $container-lg;
100 }
101}
102
103// Fluid container
104//
105// Utilizes the mixin meant for fixed width containers, but without any defined
106// width for fluid, full width layouts.
107
108.u-container-fluid {
109 @include container-fixed();
110}
111
112
113// Row
114//
115// Rows contain and clear the floats of your columns.
116
117.u-row {
118 @include make-row();
119 &:before{
120 display: table;
121 content: " ";
122 };
123 &:after{
124 display: table;
125 content: " ";
126 clear: both;
127 }
128}
129
130// Columns
131//
132// Common styles for small and large grid columns
133// _md 类型是为了兼容 u-col-1 这种类名
134$allColumnName: '';
135$xsColumnName:'';
136$smColumnName:'';
137$mdColumnName:'';
138$_mdColumnName:'';
139$lgColumnName:'';
140@for $i from 1 through $grid-columns {
141 $array: xs sm md lg _md;
142 @for $j from 1 through length($array){
143 @if $j == 5{
144 $allColumnName: $allColumnName + '.u-col-#{$i}' + ',';
145 } @else{
146 $allColumnName: $allColumnName + '.u-col-#{nth($array, $j)}-#{$i}' + ',';
147 }
148
149 @if $j == 1 {
150 $xsColumnName: $xsColumnName + '.u-col-xs-#{$i}' + ',';
151 }
152 @else if $j == 2{
153 $smColumnName: $smColumnName + '.u-col-sm-#{$i}' + ',';
154 }
155 @else if $j == 3{
156 $mdColumnName: $mdColumnName + '.u-col-md-#{$i}' + ',';
157 $_mdColumnName:$_mdColumnName + '.u-col-#{$i}' + ',';
158 }
159 @else if $j == 4{
160 $lgColumnName: $lgColumnName + '.u-col-lg-#{$i}' + ',';
161 }
162 }
163}
164#{$allColumnName} {
165 position: relative;
166// Prevent columns from collapsing when empty
167 min-height: 1px;
168// Inner gutter via padding
169 padding-left: ceil(($grid-gutter-width / 2));
170 padding-right: floor(($grid-gutter-width / 2));
171 box-sizing: border-box;
172}
173
174#{$xsColumnName}{
175 float:left;
176}
177
178@include make-grid(xs)
179
180// Small grid
181//
182// Columns, offsets, pushes, and pulls for the small device range, from phones
183// to tablets.
184@media (min-width: $screen-sm-min) {
185 #{$smColumnName}{
186 float:left;
187 }
188 @include make-grid(sm);
189}
190
191// Medium grid
192//
193// Columns, offsets, pushes, and pulls for the desktop device range.
194
195@media (min-width: $screen-md-min) {
196 #{$mdColumnName}{
197 float:left;
198 }
199 #{$_mdColumnName}{
200 float:left;
201 }
202 @include make-grid(md);
203}
204
205// Large grid
206//
207// Columns, offsets, pushes, and pulls for the large desktop device range.
208
209@media (min-width: $screen-lg-min) {
210 #{$lgColumnName}{
211 float:left;
212 }
213 @include make-grid(lg);
214}