.clearfix() { &:before, &:after { content: " "; // 1 display: table; // 2 } &:after { clear: both; } } .clearfix { .clearfix(); } .ve_non_responsive { //If "Disable responsive content elements" is checked in VC Settings .ve_row { .ve_col-sm-1 { .make-xs-column(1); } .ve_col-sm-2 { .make-xs-column(2); } .ve_col-sm-3 { .make-xs-column(3); } .ve_col-sm-4 { .make-xs-column(4); } .ve_col-sm-5 { .make-xs-column(5); } .ve_col-sm-6 { .make-xs-column(6); } .ve_col-sm-7 { .make-xs-column(7); } .ve_col-sm-8 { .make-xs-column(8); } .ve_col-sm-9 { .make-xs-column(9); } .ve_col-sm-10 { .make-xs-column(10); } .ve_col-sm-11 { .make-xs-column(11); } .ve_col-sm-12 { .make-xs-column(12); } .ve_loop-grid-columns(@grid-columns, sm, offset); .ve_hidden-sm { .responsive-invisibility(); } } } .responsive-invisibility() { display: none !important; } .make-row(@gutter: @grid-gutter-width) { margin-left: (@gutter / -2); margin-right: (@gutter / -2); .clearfix(); } .make-xs-column(@columns; @gutter: @grid-gutter-width) { position: relative; float: left; width: percentage((@columns / @grid-columns)); min-height: 1px; padding-left: (@gutter / 2); padding-right: (@gutter / 2); } @grid-columns: 12; //** Padding between columns. Gets divided in half for the left and right. @grid-gutter-width: 30px; @screen-xs: 480px; //** Deprecated `@screen-xs-min` as of v3.2.0 @screen-xs-min: @screen-xs; //** Deprecated `@screen-phone` as of v3.0.1 @screen-phone: @screen-xs-min; // Small screen / tablet //** Deprecated `@screen-sm` as of v3.0.1 @screen-sm: 768px; @screen-sm-min: @screen-sm; //** Deprecated `@screen-tablet` as of v3.0.1 @screen-tablet: @screen-sm-min; // Medium screen / desktop //** Deprecated `@screen-md` as of v3.0.1 @screen-md: 992px; @screen-md-min: @screen-md; //** Deprecated `@screen-desktop` as of v3.0.1 @screen-desktop: @screen-md-min; // Large screen / wide desktop //** Deprecated `@screen-lg` as of v3.0.1 @screen-lg: 1200px; @screen-lg-min: @screen-lg; //** Deprecated `@screen-lg-desktop` as of v3.0.1 @screen-lg-desktop: @screen-lg-min; // So media queries don't overlap when required, provide a maximum @screen-xs-max: (@screen-sm-min - 1); @screen-sm-max: (@screen-md-min - 1); @screen-md-max: (@screen-lg-min - 1); .ve_make-grid-columns() { // Common styles for all sizes of grid columns, widths 1-12 .ve_col(@index) when (@index = 1) { // initial @item: ~".ve_col-xs-@{index}, .ve_col-sm-@{index}, .ve_col-md-@{index}, .ve_col-lg-@{index}"; .ve_col((@index + 1), @item); } .ve_col(@index, @list) when (@index =< @grid-columns) { // general; "=<" isn't a typo @item: ~".ve_col-xs-@{index}, .ve_col-sm-@{index}, .ve_col-md-@{index}, .ve_col-lg-@{index}"; .ve_col((@index + 1), ~"@{list}, @{item}"); } .ve_col(@index, @list) when (@index > @grid-columns) { // terminal @{list} { position: relative; // Prevent columns from collapsing when empty min-height: 1px; // Inner gutter via padding padding-left: (@grid-gutter-width / 2); padding-right: (@grid-gutter-width / 2); box-sizing: border-box; } } .ve_col(1); // kickstart it } .ve_float-grid-columns(@class) { .ve_col(@index) when (@index = 1) { // initial @item: ~".ve_col-@{class}-@{index}"; .ve_col((@index + 1), @item); } .ve_col(@index, @list) when (@index =< @grid-columns) { // general @item: ~".ve_col-@{class}-@{index}"; .ve_col((@index + 1), ~"@{list}, @{item}"); } .ve_col(@index, @list) when (@index > @grid-columns) { // terminal @{list} { float: left; } } .ve_col(1); // kickstart it } .ve_calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) { .ve_col-@{class}-@{index} { width: percentage((@index / @grid-columns)); } } .ve_calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) { .ve_col-@{class}-push-@{index} { left: percentage((@index / @grid-columns)); } } .ve_calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) { .ve_col-@{class}-push-0 { left: auto; } } .ve_calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) { .ve_col-@{class}-pull-@{index} { right: percentage((@index / @grid-columns)); } } .ve_calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) { .ve_col-@{class}-pull-0 { right: auto; } } .ve_calc-grid-column(@index, @class, @type) when (@type = offset) { .ve_col-@{class}-offset-@{index} { margin-left: percentage((@index / @grid-columns)); } } // Basic looping in LESS .ve_loop-grid-columns(@index, @class, @type) when (@index >= 0) { .ve_calc-grid-column(@index, @class, @type); // next iteration .ve_loop-grid-columns((@index - 1), @class, @type); } // Create grid for specific class .ve_make-grid(@class) { .ve_float-grid-columns(@class); .ve_loop-grid-columns(@grid-columns, @class, width); .ve_loop-grid-columns(@grid-columns, @class, pull); .ve_loop-grid-columns(@grid-columns, @class, push); .ve_loop-grid-columns(@grid-columns, @class, offset); } .ve_row { .make-row(); } .ve_make-grid-columns(); // Extra small grid // // Columns, offsets, pushes, and pulls for extra small devices like // smartphones. .ve_make-grid(xs); @media (min-width: @screen-sm-min) { .ve_make-grid(sm); } // Medium grid // // Columns, offsets, pushes, and pulls for the desktop device range. @media (min-width: @screen-md-min) { .ve_make-grid(md); } // Large grid // // Columns, offsets, pushes, and pulls for the large desktop device range. @media (min-width: @screen-lg-min) { .ve_make-grid(lg); } /* //Grid .ve_container-block { .container-fixed(); @media (min-width: @screen-sm) { width: @container-sm; } @media (min-width: @screen-md) { width: @container-md; } @media (min-width: @screen-lg-min) { width: @container-lg; } } */