- Details
- Written by Super User Super User
- Parent Category: Documentation Documentation
- Category: Documentation and Setup Documentation and Setup
- Published: 09 September 2013 09 September 2013
- Last Updated: 26 September 2013 26 September 2013
- Created: 09 September 2013 09 September 2013
- Hits: 6520 6520
Button Groups
-
Examples
Two basic options, along with two more specific variations.
Single button group
Wrap a series of buttons with
.btn
in.btn-group
.<div class="btn-group"> <button class="btn">Left</button> <button class="btn">Middle</button> <button class="btn">Right</button> </div>
Multiple button groups
Combine sets of
<div class="btn-group">
into a<div class="btn-toolbar">
for more complex components.<div class="btn-toolbar"> <div class="btn-group"> ... </div> </div>
Vertical button groups
Make a set of buttons appear vertically stacked rather than horizontally.
<div class="btn-group btn-group-vertical"> ... </div>
Checkbox and radio flavors
Button groups can also function as radios, where only one button may be active, or checkboxes, where any number of buttons may be active.
Dropdowns in button groups
Heads up! Buttons with dropdowns must be individually wrapped in their own
.btn-group
within a.btn-toolbar
for proper rendering. Button Dropdowns
-
Overview and examples
Use any button to trigger a dropdown menu by placing it within a
.btn-group
and providing the proper menu markup.<div class="btn-group"> <a class="btn dropdown-toggle" data-toggle="dropdown" href="#"> Action <span class="caret"></span> </a> <ul class="dropdown-menu"> <!-- dropdown menu links --> </ul> </div>
Works with all button sizes
Button dropdowns work at any size:
.btn-large
,.btn-small
, or.btn-mini
.
Split button dropdowns
Building on the button group styles and markup, we can easily create a split button. Split buttons feature a standard action on the left and a dropdown toggle on the right with contextual links.
<div class="btn-group"> <button class="btn">Action</button> <button class="btn dropdown-toggle" data-toggle="dropdown"> <span class="caret"></span> </button> <ul class="dropdown-menu"> <!-- dropdown menu links --> </ul> </div>
Sizes
Utilize the extra button classes
.btn-mini
,.btn-small
, or.btn-large
for sizing.<div class="btn-group"> <button class="btn btn-mini">Action</button> <button class="btn btn-mini dropdown-toggle" data-toggle="dropdown"> <span class="caret"></span> </button> <ul class="dropdown-menu"> <!-- dropdown menu links --> </ul> </div>
Dropup menus
Dropdown menus can also be toggled from the bottom up by adding a single class to the immediate parent of
.dropdown-menu
. It will flip the direction of the.caret
and reposition the menu itself to move from the bottom up instead of top down.<div class="btn-group dropup"> <button class="btn">Dropup</button> <button class="btn dropdown-toggle" data-toggle="dropdown"> <span class="caret"></span> </button> <ul class="dropdown-menu"> <!-- dropdown menu links --> </ul> </div>
Navs
-
Lightweight defaults Same markup, different classes
All nav components here—tabs, pills, and lists—share the same base markup and styles through the
.nav
class.Basic tabs
Take a regular
<ul>
of links and add.nav-tabs
:<ul class="nav nav-tabs"> <li class="active"> <a href="#">Home</a> </li> <li><a href="#">...</a></li> <li><a href="#">...</a></li> </ul>
Basic pills
Take that same HTML, but use
.nav-pills
instead:<ul class="nav nav-pills"> <li class="active"> <a href="#">Home</a> </li> <li><a href="#">...</a></li> <li><a href="#">...</a></li> </ul>
Disabled state
For any nav component (tabs, pills, or list), add
.disabled
for gray links and no hover effects. Links will remain clickable, however, unless you remove thehref
attribute. Alternatively, you could implement custom JavaScript to prevent those clicks.<ul class="nav nav-pills"> ... <li class="disabled"><a href="#">Home</a></li> ... </ul>
Component alignment
To align nav links, use the
.pull-left
or.pull-right
utility classes. Both classes will add a CSS float in the specified direction.
Stackable
As tabs and pills are horizontal by default, just add a second class,
.nav-stacked
, to make them appear vertically stacked.Stacked tabs
<ul class="nav nav-tabs nav-stacked"> ... </ul>
Stacked pills
<ul class="nav nav-pills nav-stacked"> ... </ul>
Dropdowns
Add dropdown menus with a little extra HTML.
Tabs with dropdowns
<ul class="nav nav-tabs"> <li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown" href="#"> Dropdown <b class="caret"></b> </a> <ul class="dropdown-menu"> <!-- links --> </ul> </li> </ul>
Pills with dropdowns
<ul class="nav nav-pills"> <li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown" href="#"> Dropdown <b class="caret"></b> </a> <ul class="dropdown-menu"> <!-- links --> </ul> </li> </ul>
Nav lists
A simple and easy way to build groups of nav links with optional headers. They're best used in sidebars like the Finder in OS X.
Example nav list
Take a list of links and add
class="nav nav-list"
:<ul class="nav nav-list"> <li class="nav-header">List header</li> <li class="active"><a href="#">Home</a></li> <li><a href="#">Library</a></li> ... </ul>
Note For nesting within a nav list, include
class="nav nav-list"
on any nested<ul>
.Horizontal dividers
Add a horizontal divider by creating an empty list item with the class
.divider
, like so:<ul class="nav nav-list"> ... <li class="divider"></li> ... </ul>
Tabbable nav
Bring your tabs to life with a simple plugin to toggle between content via tabs. Bootstrap integrates tabbable tabs in four styles: top (default), right, bottom, and left.
Tabbable example
To make tabs tabbable, create a
.tab-pane
with unique ID for every tab and wrap them in.tab-content
.I'm in Section 1.
Howdy, I'm in Section 2.
What up girl, this is Section 3.
<div class="tabbable"> <!-- Only required for left/right tabs --> <ul class="nav nav-tabs"> <li class="active"><a href="#tab1" data-toggle="tab">Section 1</a></li> <li><a href="#tab2" data-toggle="tab">Section 2</a></li> </ul> <div class="tab-content"> <div class="tab-pane active" id="tab1"> <p>I'm in Section 1.</p> </div> <div class="tab-pane" id="tab2"> <p>Howdy, I'm in Section 2.</p> </div> </div> </div>
Fade in tabs
To make tabs fade in, add
.fade
to each.tab-pane
.Tabbable in any direction
Tabs on the bottom
Flip the order of the HTML and add a class to put tabs on the bottom.
I'm in Section A.
Howdy, I'm in Section B.
What up girl, this is Section C.
<div class="tabbable tabs-below"> <div class="tab-content"> ... </div> <ul class="nav nav-tabs"> ... </ul> </div>
Tabs on the left
Swap the class to put tabs on the left.
I'm in Section A.
Howdy, I'm in Section B.
What up girl, this is Section C.
<div class="tabbable tabs-left"> <ul class="nav nav-tabs"> ... </ul> <div class="tab-content"> ... </div> </div>
Tabs on the right
Swap the class to put tabs on the right.
I'm in Section A.
Howdy, I'm in Section B.
What up girl, this is Section C.
<div class="tabbable tabs-right"> <ul class="nav nav-tabs"> ... </ul> <div class="tab-content"> ... </div> </div>
Navbar
-
Basic navbar
To start, navbars are static (not fixed to the top) and include support for a project name and basic navigation. Place one anywhere within a
.container
, which sets the width of your site and content.<div class="navbar"> <div class="navbar-inner"> <a class="brand" href="#">Title</a> <ul class="nav"> <li class="active"><a href="#">Home</a></li> <li><a href="#">Link</a></li> <li><a href="#">Link</a></li> </ul> </div> </div>
Navbar components
Brand
A simple link to show your brand or project name only requires an anchor tag.
<a class="brand" href="#">Project name</a>
Nav links
Nav items are simple to add via unordered lists.
<ul class="nav"> <li class="active"> <a href="#">Home</a> </li> <li><a href="#">Link</a></li> <li><a href="#">Link</a></li> </ul>
You can easily add dividers to your nav links with an empty list item and a simple class. Just add this between links:
<ul class="nav"> ... <li class="divider-vertical"></li> ... </ul>
Forms
To properly style and position a form within the navbar, add the appropriate classes as shown below. For a default form, include
.navbar-form
and either.pull-left
or.pull-right
to properly align it.<form class="navbar-form pull-left"> <input type="text" class="span2"> <button type="submit" class="btn">Submit</button> </form>
Search form
For a more customized search form, add
.navbar-search
to theform
and.search-query
to the input for specialized styles in the navbar.<form class="navbar-search pull-left"> <input type="text" class="search-query" placeholder="Search"> </form>
Component alignment
Align nav links, search form, or text, use the
.pull-left
or.pull-right
utility classes. Both classes will add a CSS float in the specified direction.Using dropdowns
Add dropdowns and dropups to the nav with a bit of markup.
<ul class="nav"> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown"> Account <b class="caret"></b> </a> <ul class="dropdown-menu"> ... </ul> </li> </ul>
Text
Wrap strings of text in an element with
.navbar-text
, usually on a<p>
tag for proper leading and color.
Optional display variations
Fix the navbar to the top or bottom of the viewport with an additional class on the outermost div,
.navbar
.Fixed to top
Add
.navbar-fixed-top
and remember to account for the hidden area underneath it by adding at least 40pxpadding
to the<body>
. Be sure to add this after the core Bootstrap CSS and before the optional responsive CSS.<div class="navbar navbar-fixed-top"> ... </div>
Fixed to bottom
Add
.navbar-fixed-bottom
instead.<div class="navbar navbar-fixed-bottom"> ... </div>
Static top navbar
Create a full-width navbar that scrolls away with the page by adding
.navbar-static-top
. Unlike the.navbar-fixed-top
class, you do not need to change any padding on thebody
.<div class="navbar navbar-static-top"> ... </div>
Responsive navbar
To implement a collapsing responsive navbar, wrap your navbar content in a containing div,
.nav-collapse.collapse
, and add the navbar toggle button,.btn-navbar
.<div class="navbar"> <div class="navbar-inner"> <div class="container"> <!-- .btn-navbar is used as the toggle for collapsed navbar content --> <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a> <!-- Be sure to leave the brand out there if you want it shown --> <a class="brand" href="#">Project name</a> <!-- Everything you want hidden at 940px or less, place within here --> <div class="nav-collapse collapse"> <!-- .nav, .navbar-search, .navbar-form, etc --> </div> </div> </div> </div>
Inverted variation
Modify the look of the navbar by adding
.navbar-inverse
.<div class="navbar navbar-inverse"> ... </div>
Labels and Badges
-
Labels
Labels Markup Default <span class="label">Default</span>
Success <span class="label label-success">Success</span>
Warning <span class="label label-warning">Warning</span>
Important <span class="label label-important">Important</span>
Info <span class="label label-info">Info</span>
Inverse <span class="label label-inverse">Inverse</span>
Badges
Name Example Markup Default 1 <span class="badge">1</span>
Success 2 <span class="badge badge-success">2</span>
Warning 4 <span class="badge badge-warning">4</span>
Important 6 <span class="badge badge-important">6</span>
Info 8 <span class="badge badge-info">8</span>
Inverse 10 <span class="badge badge-inverse">10</span>
Easily collapsible
For easy implementation, labels and badges will simply collapse (via CSS's
:empty
selector) when no content exists within. Typographic Components
-
Hero unit
A lightweight, flexible component to showcase key content on your site. It works well on marketing and content-heavy sites.
Hello, world!
This is a simple hero unit, a simple jumbotron-style component for calling extra attention to featured content or information.
<div class="hero-unit"> <h1>Heading</h1> <p>Tagline</p> <p> <a class="btn btn-primary btn-large"> Learn more </a> </p> </div>
Page header
A simple shell for an
h1
to appropriately space out and segment sections of content on a page. It can utilize theh1
's defaultsmall
, element as well most other components (with additional styles).Example page header Subtext for header
<div class="page-header"> <h1>Example page header <small>Subtext for header</small></h1> </div>
Thumbnails
-
Default thumbnails
By default, Bootstrap's thumbnails are designed to showcase linked images with minimal required markup.
Highly customizable
With a bit of extra markup, it's possible to add any kind of HTML content like headings, paragraphs, or buttons into thumbnails.
Why use thumbnails
Thumbnails (previously
.media-grid
up until v1.4) are great for grids of photos or videos, image search results, retail products, portfolios, and much more. They can be links or static content.Simple, flexible markup
Thumbnail markup is simple—a
ul
with any number ofli
elements is all that is required. It's also super flexible, allowing for any type of content with just a bit more markup to wrap your contents.Uses grid column sizes
Lastly, the thumbnails component uses existing grid system classes—like
.span2
or.span3
—for control of thumbnail dimensions.Markup
As mentioned previously, the required markup for thumbnails is light and straightforward. Here's a look at the default setup for linked images:
<ul class="thumbnails"> <li class="span4"> <a href="#" class="thumbnail"> <img src="http://placekitten.com/300/200" alt=""> </a> </li> ... </ul>
For custom HTML content in thumbnails, the markup changes slightly. To allow block level content anywhere, we swap the
<a>
for a<div>
like so:<ul class="thumbnails"> <li class="span4"> <div class="thumbnail"> <img src="http://placekitten.com/300/200" alt=""> <h4>Thumbnail label</h4> <p>Thumbnail caption...</p> </div> </li> ... </ul>
More examples
Explore all your options with the various grid classes available to you. You can also mix and match different sizes.
-
Alerts
-
Default alert
Wrap any text and an optional dismiss button in
.alert
for a basic warning alert message.Warning! Best check yo self, you're not looking too good.<div class="alert"> <button type="button" class="close" data-dismiss="alert">×</button> <strong>Warning!</strong> Best check yo self, you're not looking too good. </div>
Dismiss buttons
Mobile Safari and Mobile Opera browsers, in addition to the
data-dismiss="alert"
attribute, require anhref="#"
for the dismissal of alerts when using an<a>
tag.<a href="#" class="close" data-dismiss="alert">×</a>
Alternatively, you may use a
<button>
element with the data attribute, which we have opted to do for our docs. When using<button>
, you must includetype="button"
or your forms may not submit.<button type="button" class="close" data-dismiss="alert">×</button>
Options
For longer messages, increase the padding on the top and bottom of the alert wrapper by adding
.alert-block
.Warning!
Best check yo self, you're not looking too good. Nulla vitae elit libero, a pharetra augue. Praesent commodo cursus magna, vel scelerisque nisl consectetur et.
<div class="alert alert-block"> <button type="button" class="close" data-dismiss="alert">×</button> <h5>Warning!</h5> Best check yo self, you're not... </div>
Contextual alternatives
Add optional classes to change an alert's connotation.
Error or danger
Oh snap! Change a few things up and try submitting again.<div class="alert alert-error"> ... </div>
Success
Well done! You successfully read this important alert message.<div class="alert alert-success"> ... </div>
Information
Heads up! This alert needs your attention, but it's not super important.<div class="alert alert-info"> ... </div>
Miscelaneous
-
Wells
Use the well as a simple effect on an element to give it an inset effect.
Look, I'm in a well!<div class="well"> ... </div>
Optional classes
Control padding and rounded corners with two optional modifier classes.
Look, I'm in a well!<div class="well well-large"> ... </div>
Look, I'm in a well!<div class="well well-small"> ... </div>
Close icon
Use the generic close icon for dismissing content like modals and alerts.
<button class="close">×</button>
iOS devices require an
href="#"
for click events if you would rather use an anchor.<a class="close" href="#">×</a>
Helper classes
Simple, focused classes for small display or behavior tweaks.
.pull-left
Float an element left
class="pull-left"
.pull-left { float: left; }
.pull-right
Float an element right
class="pull-right"
.pull-right { float: right; }
.muted
Change an element's color to
#999
class="muted"
.muted { color: #999; }
.clearfix
Clear the
float
on any elementclass="clearfix"
.clearfix { *zoom: 1; &:before, &:after { display: table; content: ""; } &:after { clear: both; } }