diff options
| author | Mark Otto <[email protected]> | 2016-12-21 23:29:16 -0800 |
|---|---|---|
| committer | Mark Otto <[email protected]> | 2016-12-27 22:37:50 -0800 |
| commit | fd75c4127988a9d61c3fec208b398763b68ae338 (patch) | |
| tree | ee180ecdf5602b716d0ce6a4e0b41e8633cf9c33 | |
| parent | 2cb2979908291faead4251ece787c9f4c40a0b28 (diff) | |
| download | bootstrap-fd75c4127988a9d61c3fec208b398763b68ae338.tar.xz bootstrap-fd75c4127988a9d61c3fec208b398763b68ae338.zip | |
revamp button group with flexbox
| -rw-r--r-- | docs/components/button-group.md | 18 | ||||
| -rw-r--r-- | scss/_button-group.scss | 58 |
2 files changed, 34 insertions, 42 deletions
diff --git a/docs/components/button-group.md b/docs/components/button-group.md index cff38e1b1..f4c164749 100644 --- a/docs/components/button-group.md +++ b/docs/components/button-group.md @@ -26,17 +26,17 @@ Wrap a series of buttons with `.btn` in `.btn-group`. ## Button toolbar -Combine sets of button groups into button toolbars for more complex components. +Combine sets of button groups into button toolbars for more complex components. Use utility classes as needed to space out groups, buttons, and more. {% example html %} <div class="btn-toolbar" role="toolbar" aria-label="Toolbar with button groups"> - <div class="btn-group" role="group" aria-label="First group"> + <div class="btn-group mr-2" role="group" aria-label="First group"> <button type="button" class="btn btn-secondary">1</button> <button type="button" class="btn btn-secondary">2</button> <button type="button" class="btn btn-secondary">3</button> <button type="button" class="btn btn-secondary">4</button> </div> - <div class="btn-group" role="group" aria-label="Second group"> + <div class="btn-group mr-2" role="group" aria-label="Second group"> <button type="button" class="btn btn-secondary">5</button> <button type="button" class="btn btn-secondary">6</button> <button type="button" class="btn btn-secondary">7</button> @@ -106,6 +106,18 @@ Make a set of buttons appear vertically stacked rather than horizontally. **Spli <div class="btn-group-vertical" role="group" aria-label="Vertical button group"> <button type="button" class="btn btn-secondary">Button</button> <button type="button" class="btn btn-secondary">Button</button> + <button type="button" class="btn btn-secondary">Button</button> + <button type="button" class="btn btn-secondary">Button</button> + <button type="button" class="btn btn-secondary">Button</button> + <button type="button" class="btn btn-secondary">Button</button> + </div> +</div> + + +<div class="bd-example"> + <div class="btn-group-vertical" role="group" aria-label="Vertical button group"> + <button type="button" class="btn btn-secondary">Button</button> + <button type="button" class="btn btn-secondary">Button</button> <div class="btn-group" role="group"> <button id="btnGroupVerticalDrop1" type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Dropdown diff --git a/scss/_button-group.scss b/scss/_button-group.scss index 0e63ecc54..bbee02abf 100644 --- a/scss/_button-group.scss +++ b/scss/_button-group.scss @@ -4,28 +4,27 @@ .btn-group, .btn-group-vertical { position: relative; - display: inline-block; + display: flex; + // display: inline-block; vertical-align: middle; // match .btn alignment given font-size hack above > .btn { position: relative; - float: left; - margin-bottom: 0; + flex: 0 1 auto; - // Bring the "active" button to the front + // Bring the hover, focused, and "active" buttons to the fron to overlay + // the borders properly + @include hover { + z-index: 2; + } &:focus, &:active, &.active { z-index: 2; } - @include hover { - z-index: 2; - } } -} -// Prevent double borders when buttons are next to each other -.btn-group { + // Prevent double borders when buttons are next to each other .btn + .btn, .btn + .btn-group, .btn-group + .btn, @@ -36,19 +35,8 @@ // Optional: Group multiple button groups together for a toolbar .btn-toolbar { - margin-left: -$btn-toolbar-margin; // Offset the first child's margin - @include clearfix(); - - .btn-group, - .input-group { - float: left; - } - - > .btn, - > .btn-group, - > .input-group { - margin-left: $btn-toolbar-margin; - } + display: flex; + justify-content: flex-start; } .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { @@ -158,22 +146,14 @@ // .btn-group-vertical { - > .btn, - > .btn-group, - > .btn-group > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; - } - - // Clear floats so dropdown menus can be properly placed - > .btn-group { - @include clearfix(); - - > .btn { - float: none; - } + display: flex; + flex-direction: column; + justify-content: center; + align-items: flex-start; + + .btn, + .btn-group { + flex: 0 1 auto; } > .btn + .btn, |
