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

Merge pull request #7838 from blakeembrey/btn-group-radius

Remove the overrides and resets from button groups
This commit is contained in:
Mark Otto 2013-05-10 16:35:25 -07:00
commit 8051695c87
3 changed files with 69 additions and 89 deletions

View File

@ -3717,24 +3717,28 @@ button.close {
border-bottom-color: #ffffff; border-bottom-color: #ffffff;
} }
.btn-group { .btn-group,
.btn-group-vertical {
position: relative; position: relative;
display: inline-block; display: inline-block;
vertical-align: middle; vertical-align: middle;
} }
.btn-group > .btn { .btn-group > .btn,
.btn-group-vertical > .btn {
position: relative; position: relative;
float: left; float: left;
} }
.btn-group > .btn + btn { .btn-group > .btn:hover,
margin-left: -1px; .btn-group-vertical > .btn:hover,
.btn-group > .btn:active,
.btn-group-vertical > .btn:active {
z-index: 2;
} }
.btn-group > .btn:hover, .btn-group .btn + .btn {
.btn-group > .btn:active { margin-left: -1px;
z-index: 2;
} }
.btn-toolbar:before, .btn-toolbar:before,
@ -3768,52 +3772,42 @@ button.close {
margin-left: 5px; margin-left: 5px;
} }
.btn-group > .btn { .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
position: relative;
border-radius: 0; border-radius: 0;
} }
.btn-group > .btn:first-child { .btn-group > .btn:first-child {
margin-left: 0; margin-left: 0;
border-bottom-left-radius: 4px;
border-top-left-radius: 4px;
} }
.btn-group > .btn:last-child, .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
.btn-group > .dropdown-toggle { border-top-right-radius: 0;
border-top-right-radius: 4px; border-bottom-right-radius: 0;
border-bottom-right-radius: 4px;
} }
.btn-group > .btn.large:first-child { .btn-group > .btn:last-child:not(:first-child),
margin-left: 0; .btn-group > .dropdown-toggle:not(:first-child) {
border-bottom-left-radius: 6px; border-bottom-left-radius: 0;
border-top-left-radius: 6px; border-top-left-radius: 0;
}
.btn-group > .btn.large:last-child,
.btn-group > .large.dropdown-toggle {
border-top-right-radius: 6px;
border-bottom-right-radius: 6px;
} }
.btn-group > .btn-group { .btn-group > .btn-group {
float: left; float: left;
} }
.btn-group > .btn-group > .btn { .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
border-radius: 0; border-radius: 0;
} }
.btn-group > .btn-group:last-child > .btn { .btn-group > .btn-group:first-child > .btn:last-child,
border-top-right-radius: 4px; .btn-group > .btn-group:first-child > .dropdown-toggle {
border-bottom-right-radius: 4px; border-top-right-radius: 0;
border-bottom-right-radius: 0;
} }
.btn-group > .btn-group:first-child > .btn { .btn-group > .btn-group:last-child > .btn:first-child {
margin-left: 0; border-bottom-left-radius: 0;
border-bottom-left-radius: 4px; border-top-left-radius: 0;
border-top-left-radius: 4px;
} }
.btn-group .dropdown-toggle:active, .btn-group .dropdown-toggle:active,
@ -3861,26 +3855,22 @@ button.close {
max-width: 100%; max-width: 100%;
} }
.btn-group-vertical .btn:first-child { .btn-group-vertical > .btn + .btn {
margin-top: -1px;
}
.btn-group-vertical .btn:not(:first-child):not(:last-child) {
border-radius: 0; border-radius: 0;
border-top-right-radius: 4px; }
border-top-left-radius: 4px;
.btn-group-vertical .btn:first-child {
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
} }
.btn-group-vertical .btn:last-child { .btn-group-vertical .btn:last-child {
border-radius: 0; border-top-right-radius: 0;
border-bottom-right-radius: 4px; border-top-left-radius: 0;
border-bottom-left-radius: 4px;
}
.btn-group-vertical .btn-large:first-child {
border-top-right-radius: 6px;
border-top-left-radius: 6px;
}
.btn-group-vertical .btn-large:last-child {
border-bottom-right-radius: 6px;
border-bottom-left-radius: 6px;
} }
.btn-group-justified { .btn-group-justified {

View File

@ -552,7 +552,7 @@ lead: "Dozens of reusable components built to provide iconography, dropdowns, na
<h3 id="btn-groups-vertical">Vertical button groups</h3> <h3 id="btn-groups-vertical">Vertical button groups</h3>
<p>Make a set of buttons appear vertically stacked rather than horizontally.</p> <p>Make a set of buttons appear vertically stacked rather than horizontally.</p>
<div class="bs-example"> <div class="bs-example">
<div class="btn-group btn-group-vertical"> <div class="btn-group-vertical">
<button type="button" class="btn btn-default"><i class="glyphicon glyphicon-align-left"></i></button> <button type="button" class="btn btn-default"><i class="glyphicon glyphicon-align-left"></i></button>
<button type="button" class="btn btn-default"><i class="glyphicon glyphicon-align-center"></i></button> <button type="button" class="btn btn-default"><i class="glyphicon glyphicon-align-center"></i></button>
<button type="button" class="btn btn-default"><i class="glyphicon glyphicon-align-right"></i></button> <button type="button" class="btn btn-default"><i class="glyphicon glyphicon-align-right"></i></button>
@ -560,7 +560,7 @@ lead: "Dozens of reusable components built to provide iconography, dropdowns, na
</div> </div>
</div> </div>
{% highlight html %} {% highlight html %}
<div class="btn-group btn-group-vertical"> <div class="btn-group-vertical">
... ...
</div> </div>
{% endhighlight %} {% endhighlight %}

View File

@ -11,17 +11,14 @@
} }
// Make the div behave like a button // Make the div behave like a button
.btn-group { .btn-group,
.btn-group-vertical {
position: relative; position: relative;
display: inline-block; display: inline-block;
vertical-align: middle; // match .btn alignment given font-size hack above vertical-align: middle; // match .btn alignment given font-size hack above
> .btn { > .btn {
position: relative; position: relative;
float: left; float: left;
// Prevent double borders when buttons are next to each other
+ btn {
margin-left: -1px;
}
// Bring the "active" button to the front // Bring the "active" button to the front
&:hover, &:hover,
&:active { &:active {
@ -30,6 +27,11 @@
} }
} }
// Prevent double borders when buttons are next to each other
.btn-group .btn + .btn {
margin-left: -1px;
}
// Optional: Group multiple button groups together for a toolbar // Optional: Group multiple button groups together for a toolbar
.btn-toolbar { .btn-toolbar {
.clearfix(); .clearfix();
@ -46,46 +48,36 @@
} }
} }
// Float them, remove border radius, then re-add to first and last elements .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
.btn-group > .btn {
position: relative;
border-radius: 0; border-radius: 0;
} }
// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match // Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match
.btn-group > .btn:first-child { .btn-group > .btn:first-child {
margin-left: 0; margin-left: 0;
.border-left-radius(@border-radius-base); &:not(:last-child):not(.dropdown-toggle) {
.border-right-radius(0);
}
} }
// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it // Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it
.btn-group > .btn:last-child, .btn-group > .btn:last-child:not(:first-child),
.btn-group > .dropdown-toggle { .btn-group > .dropdown-toggle:not(:first-child) {
.border-right-radius(@border-radius-base); .border-left-radius(0);
}
// Reset corners for large buttons
.btn-group > .btn.large:first-child {
margin-left: 0;
.border-left-radius(@border-radius-large);
}
.btn-group > .btn.large:last-child,
.btn-group > .large.dropdown-toggle {
.border-right-radius(@border-radius-large);
} }
// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group) // Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)
.btn-group > .btn-group { .btn-group > .btn-group {
float: left; float: left;
} }
.btn-group > .btn-group > .btn { .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
border-radius: 0; border-radius: 0;
} }
.btn-group > .btn-group:last-child > .btn { .btn-group > .btn-group:first-child > .btn:last-child,
.border-right-radius(@border-radius-base); .btn-group > .btn-group:first-child > .dropdown-toggle {
.border-right-radius(0);
} }
.btn-group > .btn-group:first-child > .btn { .btn-group > .btn-group:last-child > .btn:first-child {
margin-left: 0; .border-left-radius(0);
.border-left-radius(@border-radius-base);
} }
// On active and open, don't show outline // On active and open, don't show outline
@ -143,20 +135,18 @@
float: none; float: none;
width: 100%; width: 100%;
max-width: 100%; max-width: 100%;
+ .btn {
margin-top: -1px;
}
}
.btn-group-vertical .btn:not(:first-child):not(:last-child) {
border-radius: 0;
} }
.btn-group-vertical .btn:first-child { .btn-group-vertical .btn:first-child {
border-radius: 0; // Needs to be here for specificity since we're not zeroing them out again .border-bottom-radius(0);
.border-top-radius(@border-radius-base);
} }
.btn-group-vertical .btn:last-child { .btn-group-vertical .btn:last-child {
border-radius: 0; // Needs to be here for specificity since we're not zeroing them out again .border-top-radius(0);
.border-bottom-radius(@border-radius-base);
}
.btn-group-vertical .btn-large:first-child {
.border-top-radius(@border-radius-large);
}
.btn-group-vertical .btn-large:last-child {
.border-bottom-radius(@border-radius-large);
} }