mirror of
https://github.com/twbs/bootstrap.git
synced 2022-11-09 12:25:43 -05:00
Follow-up to #19099 for grid fixes
- Restores two-mixin approach to generating semantic grid columns (now with 'make-col-ready' and 'make-col') - Removes need for .col-xs-12 by restoring the mass list of all grid tier classes to set position, min-height, and padding - Adds an initial 'width: 100%' to flexbox grid column prep (later overridden by the column sizing in 'flex' shorthand or 'width') to prevent flexbox columns from collapsing in lower viewports
This commit is contained in:
parent
e613415a76
commit
a8879c8f82
3 changed files with 51 additions and 30 deletions
|
@ -180,20 +180,21 @@ Mixins are used in conjunction with the grid variables to generate semantic CSS
|
|||
}
|
||||
|
||||
// Make the element grid-ready (applying everything but the width)
|
||||
@mixin make-col($gutter: $grid-gutter-width) {
|
||||
@mixin make-col-ready($size, $columns: $grid-columns, $gutter: $grid-gutter-width) {
|
||||
position: relative;
|
||||
@if $enable-flex {
|
||||
flex: 1;
|
||||
} @else {
|
||||
float: left;
|
||||
}
|
||||
min-height: 1px;
|
||||
padding-left: ($gutter / 2);
|
||||
min-height: 1px; // Prevent collapsing
|
||||
padding-right: ($gutter / 2);
|
||||
padding-left: ($gutter / 2);
|
||||
|
||||
// Prevent columns from becoming too narrow when at smaller grid tiers by
|
||||
// always setting `width: 100%;`. This works because we use `flex` values
|
||||
// later on to override this initial width.
|
||||
@if $enable-flex {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin make-col-span($size, $columns: $grid-columns) {
|
||||
// Set a width (to be used in or out of media queries)
|
||||
@mixin make-col($size, $columns: $grid-columns, $gutter: $grid-gutter-width) {
|
||||
@if $enable-flex {
|
||||
flex: 0 0 percentage($size / $columns);
|
||||
// Add a `max-width` to ensure content within each column does not blow out
|
||||
|
@ -201,6 +202,7 @@ Mixins are used in conjunction with the grid variables to generate semantic CSS
|
|||
// do not appear to require this.
|
||||
max-width: percentage($size / $columns);
|
||||
} @else {
|
||||
float: left;
|
||||
width: percentage($size / $columns);
|
||||
}
|
||||
}
|
||||
|
@ -232,23 +234,23 @@ See it in action in <a href="http://jsbin.com/ruxona/edit">this rendered example
|
|||
@include make-row();
|
||||
}
|
||||
.content-main {
|
||||
@include make-col();
|
||||
@include make-col-ready();
|
||||
|
||||
@media (max-width: 32em) {
|
||||
@include make-col-span(6);
|
||||
@include make-col(6);
|
||||
}
|
||||
@media (min-width: 32.1em) {
|
||||
@include make-col-span(8);
|
||||
@include make-col(8);
|
||||
}
|
||||
}
|
||||
.content-secondary {
|
||||
@include make-col();
|
||||
@include make-col-ready();
|
||||
|
||||
@media (max-width: 32em) {
|
||||
@include make-col-span(6);
|
||||
@include make-col(6);
|
||||
}
|
||||
@media (min-width: 32.1em) {
|
||||
@include make-col-span(4);
|
||||
@include make-col(4);
|
||||
}
|
||||
}
|
||||
{% endhighlight %}
|
||||
|
|
|
@ -4,22 +4,32 @@
|
|||
// any value of `$grid-columns`.
|
||||
|
||||
@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {
|
||||
$breakpoint-counter: 0;
|
||||
@each $breakpoint in map-keys($breakpoints) {
|
||||
$breakpoint-counter: ($breakpoint-counter + 1);
|
||||
@include media-breakpoint-up($breakpoint, $breakpoints) {
|
||||
@if $enable-flex {
|
||||
.col-#{$breakpoint} {
|
||||
|
||||
// Common properties for all breakpoints
|
||||
%grid-column {
|
||||
position: relative;
|
||||
flex-basis: 0;
|
||||
flex-grow: 1;
|
||||
max-width: 100%;
|
||||
// Prevent columns from collapsing when empty
|
||||
min-height: 1px;
|
||||
padding-right: ($gutter / 2);
|
||||
// Inner gutter via padding
|
||||
padding-left: ($gutter / 2);
|
||||
padding-right: ($gutter / 2);
|
||||
|
||||
@if $enable-flex {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
$breakpoint-counter: 0;
|
||||
@each $breakpoint in map-keys($breakpoints) {
|
||||
$breakpoint-counter: ($breakpoint-counter + 1);
|
||||
|
||||
@for $i from 1 through $columns {
|
||||
.col-#{$breakpoint}-#{$i} {
|
||||
@extend %grid-column;
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-up($breakpoint, $breakpoints) {
|
||||
@for $i from 1 through $columns {
|
||||
.col-#{$breakpoint}-#{$i} {
|
||||
@include make-col($i, $columns, $gutter);
|
||||
|
|
|
@ -33,12 +33,21 @@
|
|||
margin-right: ($gutter / -2);
|
||||
}
|
||||
|
||||
@mixin make-col($size, $columns: $grid-columns, $gutter: $grid-gutter-width) {
|
||||
@mixin make-col-ready($size, $columns: $grid-columns, $gutter: $grid-gutter-width) {
|
||||
position: relative;
|
||||
min-height: 1px;
|
||||
min-height: 1px; // Prevent collapsing
|
||||
padding-right: ($gutter / 2);
|
||||
padding-left: ($gutter / 2);
|
||||
|
||||
// Prevent columns from becoming too narrow when at smaller grid tiers by
|
||||
// always setting `width: 100%;`. This works because we use `flex` values
|
||||
// later on to override this initial width.
|
||||
@if $enable-flex {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin make-col($size, $columns: $grid-columns, $gutter: $grid-gutter-width) {
|
||||
@if $enable-flex {
|
||||
flex: 0 0 percentage($size / $columns);
|
||||
// Add a `max-width` to ensure content within each column does not blow out
|
||||
|
|
Loading…
Reference in a new issue