0
0
mirror of https://github.com/twbs/bootstrap.git synced 2025-02-21 18:54:30 +01:00

Responsive display utilities (#20934)

* Explore responsive display utils, but with a twist: lowest breakpoint has no breakpoint modifier in the class name
* make floats use the same format, add float-none mixin
This commit is contained in:
Mark Otto 2016-10-31 21:27:56 -07:00 committed by GitHub
parent 76d53404b5
commit ffaad0a819
12 changed files with 73 additions and 50 deletions

View File

@ -231,7 +231,7 @@ Use Bootstrap's nav pills or tabs within a card header. Be sure to always includ
{% example html %} {% example html %}
<div class="card text-xs-center"> <div class="card text-xs-center">
<div class="card-header"> <div class="card-header">
<ul class="nav nav-tabs card-header-tabs float-xs-left"> <ul class="nav nav-tabs card-header-tabs float-left">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" href="#">Active</a> <a class="nav-link active" href="#">Active</a>
</li> </li>
@ -254,7 +254,7 @@ Use Bootstrap's nav pills or tabs within a card header. Be sure to always includ
{% example html %} {% example html %}
<div class="card text-xs-center"> <div class="card text-xs-center">
<div class="card-header"> <div class="card-header">
<ul class="nav nav-pills card-header-pills float-xs-left"> <ul class="nav nav-pills card-header-pills float-left">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" href="#">Active</a> <a class="nav-link active" href="#">Active</a>
</li> </li>

View File

@ -32,15 +32,15 @@ Add badges to any list group item to show unread counts, activity, etc.
{% example html %} {% example html %}
<ul class="list-group"> <ul class="list-group">
<li class="list-group-item"> <li class="list-group-item">
<span class="badge badge-default badge-pill float-xs-right">14</span> <span class="badge badge-default badge-pill float-right">14</span>
Cras justo odio Cras justo odio
</li> </li>
<li class="list-group-item"> <li class="list-group-item">
<span class="badge badge-default badge-pill float-xs-right">2</span> <span class="badge badge-default badge-pill float-right">2</span>
Dapibus ac facilisis in Dapibus ac facilisis in
</li> </li>
<li class="list-group-item"> <li class="list-group-item">
<span class="badge badge-default badge-pill float-xs-right">1</span> <span class="badge badge-default badge-pill float-right">1</span>
Morbi leo risus Morbi leo risus
</li> </li>
</ul> </ul>

View File

@ -55,7 +55,7 @@ Here's an example of all the sub-components included in a default, non-responsiv
</div> </div>
</li> </li>
</ul> </ul>
<form class="form-inline float-xs-right"> <form class="form-inline float-right">
<input class="form-control" type="text" placeholder="Search"> <input class="form-control" type="text" placeholder="Search">
<button class="btn btn-outline-success" type="submit">Search</button> <button class="btn btn-outline-success" type="submit">Search</button>
</form> </form>
@ -171,7 +171,7 @@ Place various form controls and components within a navbar with `.form-inline`.
{% example html %} {% example html %}
<nav class="navbar navbar-light bg-faded"> <nav class="navbar navbar-light bg-faded">
<form class="form-inline float-xs-left"> <form class="form-inline float-left">
<input class="form-control" type="text" placeholder="Search"> <input class="form-control" type="text" placeholder="Search">
<button class="btn btn-outline-success" type="submit">Search</button> <button class="btn btn-outline-success" type="submit">Search</button>
</form> </form>
@ -182,7 +182,7 @@ Input groups work, too:
{% example html %} {% example html %}
<nav class="navbar navbar-light bg-faded"> <nav class="navbar navbar-light bg-faded">
<form class="form-inline float-xs-left"> <form class="form-inline float-left">
<div class="input-group"> <div class="input-group">
<span class="input-group-addon" id="basic-addon1">@</span> <span class="input-group-addon" id="basic-addon1">@</span>
<input type="text" class="form-control" placeholder="Username" aria-describedby="basic-addon1"> <input type="text" class="form-control" placeholder="Username" aria-describedby="basic-addon1">
@ -195,7 +195,7 @@ Various buttons are supported as part of these navbar forms, too. This is also a
{% example html %} {% example html %}
<nav class="navbar navbar-light bg-faded"> <nav class="navbar navbar-light bg-faded">
<form class="form-inline float-xs-left"> <form class="form-inline float-left">
<button class="btn btn-outline-success" type="button">Main button</button> <button class="btn btn-outline-success" type="button">Main button</button>
<button class="btn btn-sm align-middle btn-outline-secondary" type="button">Smaller button</button> <button class="btn btn-sm align-middle btn-outline-secondary" type="button">Smaller button</button>
</form> </form>
@ -218,7 +218,7 @@ Using our utility classes, you can change the alignment and appearance of your n
{% example html %} {% example html %}
<nav class="navbar navbar-light bg-faded"> <nav class="navbar navbar-light bg-faded">
<span class="navbar-text float-xs-right text-muted"> <span class="navbar-text float-right text-muted">
Muted navbar text that's floated right Muted navbar text that's floated right
</span> </span>
</nav> </nav>
@ -229,7 +229,7 @@ Similarly, you can use utility classes to align navbar text to other navbar elem
{% example html %} {% example html %}
<nav class="navbar navbar-light bg-faded"> <nav class="navbar navbar-light bg-faded">
<a class="navbar-brand" href="#">Navbar</a> <a class="navbar-brand" href="#">Navbar</a>
<span class="navbar-text float-xs-left"> <span class="navbar-text float-left">
Navbar text that's floated left Navbar text that's floated left
</span> </span>
</nav> </nav>
@ -258,7 +258,7 @@ Here are some examples to show what we mean.
<a class="nav-link" href="#">About</a> <a class="nav-link" href="#">About</a>
</li> </li>
</ul> </ul>
<form class="form-inline float-xs-right"> <form class="form-inline float-right">
<input class="form-control" type="text" placeholder="Search"> <input class="form-control" type="text" placeholder="Search">
<button class="btn btn-outline-info" type="submit">Search</button> <button class="btn btn-outline-info" type="submit">Search</button>
</form> </form>
@ -279,7 +279,7 @@ Here are some examples to show what we mean.
<a class="nav-link" href="#">About</a> <a class="nav-link" href="#">About</a>
</li> </li>
</ul> </ul>
<form class="form-inline float-xs-right"> <form class="form-inline float-right">
<input class="form-control" type="text" placeholder="Search"> <input class="form-control" type="text" placeholder="Search">
<button class="btn btn-outline-secondary" type="submit">Search</button> <button class="btn btn-outline-secondary" type="submit">Search</button>
</form> </form>
@ -300,7 +300,7 @@ Here are some examples to show what we mean.
<a class="nav-link" href="#">About</a> <a class="nav-link" href="#">About</a>
</li> </li>
</ul> </ul>
<form class="form-inline float-xs-right"> <form class="form-inline float-right">
<input class="form-control" type="text" placeholder="Search"> <input class="form-control" type="text" placeholder="Search">
<button class="btn btn-outline-primary" type="submit">Search</button> <button class="btn btn-outline-primary" type="submit">Search</button>
</form> </form>

View File

@ -47,13 +47,13 @@ In addition to our [border-radius utilities]({{ site.baseurl }}/utilities/border
Align images with the [helper float classes]({{ site.baseurl }}/utilities/responsive-helpers/#responsive-floats) or [text alignment classes]({{ site.baseurl }}/utilities/typography/#text-alignment). `block`-level images can be centered using [the `.mx-auto` margin utility class]({{ site.baseurl }}/utilities/spacing/#horizontal-centering). Align images with the [helper float classes]({{ site.baseurl }}/utilities/responsive-helpers/#responsive-floats) or [text alignment classes]({{ site.baseurl }}/utilities/typography/#text-alignment). `block`-level images can be centered using [the `.mx-auto` margin utility class]({{ site.baseurl }}/utilities/spacing/#horizontal-centering).
<div class="bd-example bd-example-images"> <div class="bd-example bd-example-images">
<img data-src="holder.js/200x200" class="rounded float-xs-left" alt="A generic square placeholder image with rounded corners"> <img data-src="holder.js/200x200" class="rounded float-left" alt="A generic square placeholder image with rounded corners">
<img data-src="holder.js/200x200" class="rounded float-xs-right" alt="A generic square placeholder image with rounded corners"> <img data-src="holder.js/200x200" class="rounded float-right" alt="A generic square placeholder image with rounded corners">
</div> </div>
{% highlight html %} {% highlight html %}
<img src="..." class="rounded float-xs-left" alt="..."> <img src="..." class="rounded float-left" alt="...">
<img src="..." class="rounded float-xs-right" alt="..."> <img src="..." class="rounded float-right" alt="...">
{% endhighlight %} {% endhighlight %}
<div class="bd-example bd-example-images"> <div class="bd-example bd-example-images">

View File

@ -185,7 +185,8 @@ Dropped entirely for the new card component.
### Utilities ### Utilities
- Added `.float-{xs,sm,md,lg,xl}-{left,right,none}` classes for responsive floats and removed `.pull-left` and `.pull-right` since they're redundant to `.float-xs-left` and `.float-xs-right`. - Made display utilities responsive (e.g., `.d-none` and `d-{sm,md,lg,xl}-none`).
- Added `.float-{sm,md,lg,xl}-{left,right,none}` classes for responsive floats and removed `.pull-left` and `.pull-right` since they're redundant to `.float-left` and `.float-right`.
- Added responsive variations to our text alignment classes `.text-{xs,sm,md,lg,xl}-{left,center,right}` and removed the redundant `.text-{left,center,right}` utilities as they are the same as the `xs` variation. - Added responsive variations to our text alignment classes `.text-{xs,sm,md,lg,xl}-{left,center,right}` and removed the redundant `.text-{left,center,right}` utilities as they are the same as the `xs` variation.
- Dropped `.center-block` for the new `.mx-auto` class. - Dropped `.center-block` for the new `.mx-auto` class.

View File

@ -33,7 +33,7 @@ The following example shows how the clearfix can be used. Without the clearfix t
{% example html %} {% example html %}
<div class="bg-info clearfix"> <div class="bg-info clearfix">
<button class="btn btn-secondary float-xs-left">Example Button pulled left</button> <button class="btn btn-secondary float-left">Example Button pulled left</button>
<button class="btn btn-secondary float-xs-right">Example Button pullred right</button> <button class="btn btn-secondary float-right">Example Button pullred right</button>
</div> </div>
{% endexample %} {% endexample %}

View File

@ -49,9 +49,9 @@ These utility classes float an element to the left or right, or disable floating
Two similar non-responsive Sass mixins (`float-left` and `float-right`) are also available. Two similar non-responsive Sass mixins (`float-left` and `float-right`) are also available.
{% example html %} {% example html %}
<div class="float-xs-left">Float left on all viewport sizes</div><br> <div class="float-left">Float left on all viewport sizes</div><br>
<div class="float-xs-right">Float right on all viewport sizes</div><br> <div class="float-right">Float right on all viewport sizes</div><br>
<div class="float-xs-none">Don't float on all viewport sizes</div><br> <div class="float-none">Don't float on all viewport sizes</div><br>
<div class="float-sm-left">Float left on viewports sized SM (small) or wider</div><br> <div class="float-sm-left">Float left on viewports sized SM (small) or wider</div><br>
<div class="float-md-left">Float left on viewports sized MD (medium) or wider</div><br> <div class="float-md-left">Float left on viewports sized MD (medium) or wider</div><br>

14
js/dist/alert.js vendored
View File

@ -4,7 +4,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-alpha.5): alert.js * Bootstrap (v4.0.0-alpha.4): alert.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -18,7 +18,7 @@ var Alert = function ($) {
*/ */
var NAME = 'alert'; var NAME = 'alert';
var VERSION = '4.0.0-alpha.5'; var VERSION = '4.0.0-alpha.4';
var DATA_KEY = 'bs.alert'; var DATA_KEY = 'bs.alert';
var EVENT_KEY = '.' + DATA_KEY; var EVENT_KEY = '.' + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -38,7 +38,7 @@ var Alert = function ($) {
var ClassName = { var ClassName = {
ALERT: 'alert', ALERT: 'alert',
FADE: 'fade', FADE: 'fade',
ACTIVE: 'active' IN: 'in'
}; };
/** /**
@ -101,18 +101,14 @@ var Alert = function ($) {
}; };
Alert.prototype._removeElement = function _removeElement(element) { Alert.prototype._removeElement = function _removeElement(element) {
var _this = this; $(element).removeClass(ClassName.IN);
$(element).removeClass(ClassName.ACTIVE);
if (!Util.supportsTransitionEnd() || !$(element).hasClass(ClassName.FADE)) { if (!Util.supportsTransitionEnd() || !$(element).hasClass(ClassName.FADE)) {
this._destroyElement(element); this._destroyElement(element);
return; return;
} }
$(element).one(Util.TRANSITION_END, function (event) { $(element).one(Util.TRANSITION_END, $.proxy(this._destroyElement, this, element)).emulateTransitionEnd(TRANSITION_DURATION);
return _this._destroyElement(element, event);
}).emulateTransitionEnd(TRANSITION_DURATION);
}; };
Alert.prototype._destroyElement = function _destroyElement(element) { Alert.prototype._destroyElement = function _destroyElement(element) {

File diff suppressed because one or more lines are too long

View File

@ -4,3 +4,6 @@
@mixin float-right { @mixin float-right {
float: right !important; float: right !important;
} }
@mixin float-none {
float: none !important;
}

View File

@ -2,12 +2,29 @@
// Display utilities // Display utilities
// //
.d-block {
display: block !important; @each $breakpoint in map-keys($grid-breakpoints) {
} @include media-breakpoint-up($breakpoint) {
.d-inline-block { $min: breakpoint-min($breakpoint, $grid-breakpoints);
display: inline-block !important;
} @if $min {
.d-inline { @media (min-width: $min) {
display: inline !important; .d-#{$breakpoint}-none { display: none !important; }
.d-#{$breakpoint}-inline { display: inline !important; }
.d-#{$breakpoint}-inline-block { display: inline-block !important; }
.d-#{$breakpoint}-block { display: block !important; }
.d-#{$breakpoint}-table { display: table !important; }
.d-#{$breakpoint}-table-cell { display: table-cell !important; }
.d-#{$breakpoint}-flex { display: flex !important; }
}
} @else {
.d-none { display: none !important; }
.d-inline { display: inline !important; }
.d-inline-block { display: inline-block !important; }
.d-block { display: block !important; }
.d-table { display: table !important; }
.d-table-cell { display: table-cell !important; }
.d-flex { display: flex !important; }
}
}
} }

View File

@ -1,13 +1,19 @@
@each $breakpoint in map-keys($grid-breakpoints) { @each $breakpoint in map-keys($grid-breakpoints) {
@include media-breakpoint-up($breakpoint) { @include media-breakpoint-up($breakpoint) {
.float-#{$breakpoint}-left { $min: breakpoint-min($breakpoint, $grid-breakpoints);
@include float-left();
@if $min {
// everything else
@media (min-width: $min) {
.float-#{$breakpoint}-left { @include float-left; }
.float-#{$breakpoint}-right { @include float-right; }
.float-#{$breakpoint}-none { @include float-none; }
} }
.float-#{$breakpoint}-right { } @else {
@include float-right(); // xs
} .float-left { @include float-left; }
.float-#{$breakpoint}-none { .float-right { @include float-right; }
float: none !important; .float-none { @include float-none; }
} }
} }
} }