On top of the scaffolding, basic HTML elements are styled and enhanced with extensible classes to provide a fresh, consistent look and feel.
The entire typographic grid is based on two Less variables in our preboot.less file: @baseFontSize
and @baseLineHeight
. The first is the base font-size used throughout and the second is the base line-height.
We use those variables, and some math, to create the margins, paddings, and line-heights of all our type and more.
Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nullam id dolor id nibh ultricies vehicula ut id elit.
Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec sed odio dui.
Element | Usage | Optional |
---|---|---|
<strong>
|
For emphasizing a snippet of text with important | None |
<em>
|
For emphasizing a snippet of text with stress | None |
<abbr>
|
Wraps abbreviations and acronyms to show the expanded version on hover |
Include optional title for expanded text
|
<address>
|
For contact information for its nearest ancestor or the entire body of work |
Preserve formatting by ending all lines with <br>
|
Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Maecenas faucibus mollis interdum. Nulla vitae elit libero, a pharetra augue.
Note: Feel free to use <b>
and <i>
in HTML5, but their usage has changed a bit. <b>
is meant to highlight words or phrases without conveying additional importance while <i>
is mostly for voice, technical terms, etc.
Here are two examples of how the <address>
tag can be used:
Abbreviations are styled with uppercase text and a light dotted bottom border. They also have a help cursor on hover so users have extra indication something will be shown on hover.
HTML is the best thing since sliced bread.
An abbreviation of the word attribute is attr.
Element | Usage | Optional |
---|---|---|
<blockquote>
|
Block-level element for quoting content from another source |
Add .pull-left and .pull-right classes for floated options
|
<small>
|
Optional element for adding a user-facing citation, typically an author with title of work |
Place the <cite> around the title or name of source
|
To include a blockquote, wrap <blockquote>
around any HTML as the quote. For straight quotes we recommend a <p>
.
Include an optional <small>
element to cite your source and you'll get an em dash —
before it for styling purposes.
<blockquote> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante venenatis.</p> <small>Someone famous</small> </blockquote>
Default blockquotes are styled as such:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante venenatis.
Someone famous in Body of work
To float your blockquote to the right, add class="pull-right"
:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante venenatis.
Someone famous in Body of work
<ul>
<ul class="unstyled">
<ol>
<dl>
Element | Result |
---|---|
<code> |
In a line of text like this, your wrapped code will look like this <html> element. |
<pre> |
<div> <h1>Heading</h1> <p>Something right here...</p> </div> Note: Be sure to keep code within |
<pre class="prettyprint"> |
Using the google-code-prettify library, you're blocks of code get a slightly different visual style and automatic syntax highlighting. You can also add an additional class to add line numbers. <div> <h1>Heading</h1> <p>Something right here...</p> </div> <div> <h1>Heading</h1> <p>Something right here...</p> </div> Download google-code-prettify and view the readme for how to use. |
Labels | Markup |
---|---|
Default |
<span class="label">Default</span>
|
New |
<span class="label success">New</span>
|
Warning |
<span class="label warning">Warning</span>
|
Important |
<span class="label important">Important</span>
|
Notice |
<span class="label notice">Notice</span>
|
Tag | Description |
---|---|
<table>
|
Wrapping element for displaying data in a tabular format |
<thead>
|
Container element for table header rows (<tr> ) to label table columns
|
<tbody>
|
Container element for table rows (<tr> ) in the body of the table
|
<tr>
|
Container element for a set of table cells (<td> or <th> ) that appears on a single row
|
<td>
|
Default table cell |
<th>
|
Special table cell for column (or row, depending on scope and placement) labels Must be used within a <thead>
|
<caption>
|
Description or summary of what the table holds, especially useful for screen readers |
<table> <thead> <tr> <th>...</th> <th>...</th> </tr> </thead> <tbody> <tr> <td>...</td> <td>...</td> </tr> </tbody> </table>
Name | Class | Description |
---|---|---|
Default | None | No styles, just columns and rows |
Basic |
.table
|
Only horizontal lines between rows |
Bordered |
.table-bordered
|
Rounds corners and adds outter border |
Zebra-stripe |
.table-striped
|
Adds light gray background color to odd rows (1, 3, 5, etc) |
Condensed |
.table-condensed
|
Cuts vertical padding in half, from 8px to 4px, within all td and th elements |
Tables are automatically styled with only a few borders to ensure readability and maintain structure. With 2.0, the .table
class is required.
<table class="table"> ... </table>
# | First Name | Last Name | Language |
---|---|---|---|
1 | Mark | Otto | CSS |
2 | Jacob | Thornton | Javascript |
3 | Stu | Dent | HTML |
Get a little fancy with your tables by adding zebra-striping—just add the .table-striped
class.
Note: Sprited tables use the :nth-child
CSS selector and is not available in IE7-IE8.
<table class="table table-striped"> ... </table>
# | First Name | Last Name | Language |
---|---|---|---|
1 | Mark | Otto | CSS |
2 | Jacob | Thornton | Javascript |
3 | Stu | Dent | HTML |
Add borders around the entire table and rounded corners for aesthetic purposes.
<table class="table table-bordered"> ... </table>
# | First Name | Last Name | Language |
---|---|---|---|
1 | Mark Otto | CSS | |
2 | Jacob | Thornton | Javascript | 3 | Stu | Dent |
3 | Brosef | Stalin | HTML |
Make your tables more compact by adding the .table-condensed
class to cut table cell padding in half (from 10px to 5px).
<table class="table table-condensed"> ... </table>
# | First Name | Last Name | Language |
---|---|---|---|
1 | Mark | Otto | CSS |
2 | Jacob | Thornton | Javascript |
3 | Stu | Dent | HTML |
Include the jQuery Tablesorter plugin and automaically get clear styles for sorted columns.
<script src="jquery.tablesorter.js"></script> <script > $(function() { $("table#sortTableExample") .tablesorter({ sortList: [[1,0]] }); }); </script> <table class="table table-striped"> ... </table>
# | First Name | Last Name | Language |
---|---|---|---|
1 | Mark | Otto | CSS |
2 | Jacob | Thornton | Javascript |
3 | Stu | Dent | HTML |
4 | Brosef | Stalin | HTML |
Styles for the Tablesorter, zebra striping, borders, and condensing may all compound in any variation to fit your needs.
# | First Name | Last Name | Language |
---|---|---|---|
1 | Mark | Otto | CSS |
2 | Jacob | Thornton | Javascript |
3 | Stu | Dent | HTML |
4 | Brosef | Stalin | HTML |
The best part about forms in Bootstrap is that all your inputs and controls look great no matter how you build them in your markup. No superfluous HTML is required, but we provide the patterns for those who require it.
More complicated layouts come with succinct and scalable classes for easy styling and event binding, so you're covered at every step.
Bootstrap comes with support for four types of form layouts:
Different types of form layouts require some changes to markup, but the controls themselves remain and behave the same.
Bootstrap's forms include styles for all the base form controls like input, textarea, and select you'd expect. But it also comes with a number of custom components like appended and prepended inputs and support for lists of checkboxes.
States like error, warning, and success are included for each type of form control. Also included are styles for disabled controls.
Bootstrap provides simple markup and styles for four styles of common web forms.
Name | Class | Description |
---|---|---|
Vertical (default) | .vertical-form (not required) |
Stacked, left-aligned labels over controls |
Horizontal | .form-horizontal |
Float left, right-aligned labels on same line as controls |
Inline | .form-inline |
Left-aligned label and inline-block controls for compact style |
Search | .form-search |
Extra-rounded text input for a typical search aesthetic |
With v2.0, we have lighter and smarter defaults for form styles. No extra markup, just form controls.
Reflecting default WebKit styles, just add .form-search
for extra rounded search fields.
Inputs are block level to start. For .form-inline
and .form-horizontal
, we use inline-block.
Shown on the left are all the default form controls we support. Here's the bulleted list:
Up to v1.4, Bootstrap's default form styles used the horizontal layout. With Bootstrap 2, we removed that constraint to have smarter, more scalable defaults for any form.
Bootstrap features styles for browser-supported focused and disabled
states. We remove the default Webkit outline
and apply a box-shadow
in it's place for :focus
.
It also includes validation styles for errors, warnings, and success. To use, add the a class to the surrounding .control-group
.
<fieldset class="control-group error"> ... </fieldset>
Input groups—with appended or prepended text—provide an easy way to give more context for your inputs. Great examples include the @ sign for Twitter usernames or $ for finances.
Up to v1.4, Bootstrap required extra markup around checkboxes and radios to stack them. Now, it's a simple matter of repeating the <label class="checkbox">
that wraps the <input type="checkbox">
.
Inline checkboxes and radios are also supported. Just add .inline
to any .checkbox
or .radio
and you're done.
Light red background color is only used to show the dimensions of the icons in the docs.
Instead of making every icon an extra request, we've compiled them into a sprite—a bunch of images in one file that uses CSS to position the images with background-position
. This is the same method we use on Twitter.com and it has worked well for us.
Glyphicons has granted us use of the Halflings set in our open-source toolkit so long as we provide a link and credit. Please consider doing the same in your projects.
With v2.0.0, the <i>
tag is essentially dedicated to iconography. To use the icons, you can place the follow code wherever you like one to appear:
<i class="chevron-left"></i>
There are over 100 classes to choose from for your icons. Just add an <i>
tag with the right class and you're set. You can find the full list in sprites.less or right here in this document.
Icons are great, but where would one use them? Here are a few ideas:
Essentially, anywhere you can put an <i>
tag, you can put an icon.