Các thành phần

Hàng chục thành phần có thể tái sử dụng được xây dựng để cung cấp điều hướng, cảnh báo, cửa sổ bật lên và hơn thế nữa.

Các ví dụ

Hai tùy chọn cơ bản, cùng với hai biến thể cụ thể hơn.

Nhóm nút đơn

Bọc một loạt các nút với .btntrong .btn-group.

  1. <div class = "btn-group" >
  2. <button class = "btn" > Left </button>
  3. <button class = "btn" > Middle </button>
  4. <button class = "btn" > Right </button>
  5. </div>

Nhiều nhóm nút

Kết hợp các tập hợp <div class="btn-group">thành một <div class="btn-toolbar">thành phần phức tạp hơn.

  1. <div class = "btn-toolbar" >
  2. <div class = "btn-group" >
  3. ...
  4. </div>
  5. </div>

Nhóm nút dọc

Làm cho một tập hợp các nút xuất hiện xếp chồng theo chiều dọc thay vì theo chiều ngang.

  1. <div class = "btn-group btn-group-vertical" >
  2. ...
  3. </div>

Hộp kiểm và hương vị radio

Các nhóm nút cũng có thể hoạt động như bộ đàm, trong đó chỉ một nút có thể hoạt động hoặc hộp kiểm, nơi bất kỳ số nút nào có thể hoạt động. Xem tài liệu JavaScript cho điều đó.

Danh sách thả xuống trong các nhóm nút

Đứng lên!Các nút có trình đơn thả xuống phải được bao bọc riêng lẻ trong của chúng .btn-grouptrong một .btn-toolbarđể hiển thị phù hợp.

Tổng quan và ví dụ

Sử dụng bất kỳ nút nào để kích hoạt menu thả xuống bằng cách đặt nó trong a .btn-groupvà cung cấp đánh dấu menu thích hợp.

  1. <div class = "btn-group" >
  2. <a class = "btn dropdown-toggle" data-toggle = "dropdown" href = "#">
  3. Hoạt động
  4. <span class = "caret" > </span>
  5. </a>
  6. <ul class = "dropdown-menu" >
  7. <! - liên kết menu thả xuống ->
  8. </ul>
  9. </div>

Hoạt động với tất cả các kích thước nút

Nút thả xuống hoạt động ở bất kỳ kích thước nào .btn-large:, .btn-smallhoặc .btn-mini.

Yêu cầu JavaScript

Nút thả xuống yêu cầu plugin thả xuống Bootstrap hoạt động.

Trong một số trường hợp — như thiết bị di động — menu thả xuống sẽ mở rộng ra bên ngoài khung nhìn. Bạn cần giải quyết căn chỉnh theo cách thủ công hoặc bằng JavaScript tùy chỉnh.


Nút chia nhỏ thả xuống

Dựa trên các kiểu và đánh dấu của nhóm nút, chúng ta có thể dễ dàng tạo một nút tách. Các nút phân tách có một hành động tiêu chuẩn ở bên trái và một menu thả xuống ở bên phải với các liên kết theo ngữ cảnh.

  1. <div class = "btn-group" >
  2. <button class = "btn" > Action </button>
  3. <button class = "btn dropdown-toggle" data-toggle = "dropdown" >
  4. <span class = "caret" > </span>
  5. </button>
  6. <ul class = "dropdown-menu" >
  7. <! - liên kết menu thả xuống ->
  8. </ul>
  9. </div>

Kích thước

Sử dụng các lớp nút bổ sung .btn-minihoặc .btn-smallđể .btn-largeđịnh kích thước.

  1. <div class = "btn-group" >
  2. <button class = "btn btn-mini" > Hành động </button>
  3. <button class = "btn btn-mini dropdown-toggle" data-toggle = "dropdown" >
  4. <span class = "caret" > </span>
  5. </button>
  6. <ul class = "dropdown-menu" >
  7. <! - liên kết menu thả xuống ->
  8. </ul>
  9. </div>

Menu thả xuống

Menu thả xuống cũng có thể được chuyển đổi từ dưới lên bằng cách thêm một lớp duy nhất vào lớp cha trực tiếp của .dropdown-menu. Nó sẽ lật hướng của menu .caretvà định vị lại chính menu để di chuyển từ dưới lên thay vì từ trên xuống.

  1. <div class = "btn-group dropup" >
  2. <button class = "btn" > Dropup </button>
  3. <button class = "btn dropdown-toggle" data-toggle = "dropdown" >
  4. <span class = "caret" > </span>
  5. </button>
  6. <ul class = "dropdown-menu" >
  7. <! - liên kết menu thả xuống ->
  8. </ul>
  9. </div>

Standard pagination

Simple pagination inspired by Rdio, great for apps and search results. The large block is hard to miss, easily scalable, and provides large click areas.

  1. <div class="pagination">
  2. <ul>
  3. <li><a href="#">Prev</a></li>
  4. <li><a href="#">1</a></li>
  5. <li><a href="#">2</a></li>
  6. <li><a href="#">3</a></li>
  7. <li><a href="#">4</a></li>
  8. <li><a href="#">5</a></li>
  9. <li><a href="#">Next</a></li>
  10. </ul>
  11. </div>

Options

Disabled and active states

Links are customizable for different circumstances. Use .disabled for unclickable links and .active to indicate the current page.

  1. <div class="pagination">
  2. <ul>
  3. <li class="disabled"><a href="#">&laquo;</a></li>
  4. <li class="active"><a href="#">1</a></li>
  5. ...
  6. </ul>
  7. </div>

You can optionally swap out active or disabled anchors for spans to remove click functionality while retaining intended styles.

  1. <div class="pagination">
  2. <ul>
  3. <li class="disabled"><span>&laquo;</span></li>
  4. <li class="active"><span>1</span></li>
  5. ...
  6. </ul>
  7. </div>

Sizes

Fancy larger or smaller pagination? Add .pagination-large, .pagination-small, or .pagination-mini for additional sizes.

  1. <div class="pagination pagination-large">
  2. <ul>
  3. ...
  4. </ul>
  5. </div>
  6. <div class="pagination">
  7. <ul>
  8. ...
  9. </ul>
  10. </div>
  11. <div class="pagination pagination-small">
  12. <ul>
  13. ...
  14. </ul>
  15. </div>
  16. <div class="pagination pagination-mini">
  17. <ul>
  18. ...
  19. </ul>
  20. </div>

Alignment

Add one of two optional classes to change the alignment of pagination links: .pagination-centered and .pagination-right.

  1. <div class="pagination pagination-centered">
  2. ...
  3. </div>
  1. <div class="pagination pagination-right">
  2. ...
  3. </div>

Pager

Quick previous and next links for simple pagination implementations with light markup and styles. It's great for simple sites like blogs or magazines.

Default example

By default, the pager centers links.

  1. <ul class="pager">
  2. <li><a href="#">Previous</a></li>
  3. <li><a href="#">Next</a></li>
  4. </ul>

Aligned links

Alternatively, you can align each link to the sides:

  1. <ul class="pager">
  2. <li class="previous">
  3. <a href="#">&larr; Older</a>
  4. </li>
  5. <li class="next">
  6. <a href="#">Newer &rarr;</a>
  7. </li>
  8. </ul>

Optional disabled state

Pager links also use the general .disabled utility class from the pagination.

  1. <ul class="pager">
  2. <li class="previous disabled">
  3. <a href="#">&larr; Older</a>
  4. </li>
  5. ...
  6. </ul>

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.

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.

Learn more

  1. <div class="hero-unit">
  2. <h1>Heading</h1>
  3. <p>Tagline</p>
  4. <p>
  5. <a class="btn btn-primary btn-large">
  6. Learn more
  7. </a>
  8. </p>
  9. </div>

Page header

A simple shell for an h1 to appropriately space out and segment sections of content on a page. It can utilize the h1's default small, element as well most other components (with additional styles).

  1. <div class="page-header">
  2. <h1>Example page header <small>Subtext for header</small></h1>
  3. </div>

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.

  • 300x200

    Thumbnail label

    Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.

    Action Action

  • 300x200

    Thumbnail label

    Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.

    Action Action

  • 300x200

    Thumbnail label

    Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.

    Action Action

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 of li 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:

  1. <ul class="thumbnails">
  2. <li class="span4">
  3. <a href="#" class="thumbnail">
  4. <img data-src="holder.js/300x200" alt="">
  5. </a>
  6. </li>
  7. ...
  8. </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:

  1. <ul class="thumbnails">
  2. <li class="span4">
  3. <div class="thumbnail">
  4. <img data-src="holder.js/300x200" alt="">
  5. <h3>Thumbnail label</h3>
  6. <p>Thumbnail caption...</p>
  7. </div>
  8. </li>
  9. ...
  10. </ul>

More examples

Explore all your options with the various grid classes available to you. You can also mix and match different sizes.

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.
  1. <div class="alert">
  2. <button type="button" class="close" data-dismiss="alert">&times;</button>
  3. <strong>Warning!</strong> Best check yo self, you're not looking too good.
  4. </div>

Dismiss buttons

Mobile Safari and Mobile Opera browsers, in addition to the data-dismiss="alert" attribute, require an href="#" for the dismissal of alerts when using an <a> tag.

  1. <a href="#" class="close" data-dismiss="alert">&times;</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 include type="button" or your forms may not submit.

  1. <button type="button" class="close" data-dismiss="alert">&times;</button>

Dismiss alerts via JavaScript

Use the alerts jQuery plugin for quick and easy dismissal of alerts.


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.

  1. <div class="alert alert-block">
  2. <button type="button" class="close" data-dismiss="alert">&times;</button>
  3. <h4>Warning!</h4>
  4. Best check yo self, you're not...
  5. </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.
  1. <div class="alert alert-error">
  2. ...
  3. </div>

Success

Well done! You successfully read this important alert message.
  1. <div class="alert alert-success">
  2. ...
  3. </div>

Information

Heads up! This alert needs your attention, but it's not super important.
  1. <div class="alert alert-info">
  2. ...
  3. </div>

Examples and markup

Basic

Default progress bar with a vertical gradient.

  1. <div class="progress">
  2. <div class="bar" style="width: 60%;"></div>
  3. </div>

Striped

Uses a gradient to create a striped effect. Not available in IE7-8.

  1. <div class="progress progress-striped">
  2. <div class="bar" style="width: 20%;"></div>
  3. </div>

Animated

Add .active to .progress-striped to animate the stripes right to left. Not available in all versions of IE.

  1. <div class="progress progress-striped active">
  2. <div class="bar" style="width: 40%;"></div>
  3. </div>

Stacked

Place multiple bars into the same .progress to stack them.

  1. <div class="progress">
  2. <div class="bar bar-success" style="width: 35%;"></div>
  3. <div class="bar bar-warning" style="width: 20%;"></div>
  4. <div class="bar bar-danger" style="width: 10%;"></div>
  5. </div>

Options

Additional colors

Progress bars use some of the same button and alert classes for consistent styles.

  1. <div class="progress progress-info">
  2. <div class="bar" style="width: 20%"></div>
  3. </div>
  4. <div class="progress progress-success">
  5. <div class="bar" style="width: 40%"></div>
  6. </div>
  7. <div class="progress progress-warning">
  8. <div class="bar" style="width: 60%"></div>
  9. </div>
  10. <div class="progress progress-danger">
  11. <div class="bar" style="width: 80%"></div>
  12. </div>

Striped bars

Similar to the solid colors, we have varied striped progress bars.

  1. <div class="progress progress-info progress-striped">
  2. <div class="bar" style="width: 20%"></div>
  3. </div>
  4. <div class="progress progress-success progress-striped">
  5. <div class="bar" style="width: 40%"></div>
  6. </div>
  7. <div class="progress progress-warning progress-striped">
  8. <div class="bar" style="width: 60%"></div>
  9. </div>
  10. <div class="progress progress-danger progress-striped">
  11. <div class="bar" style="width: 80%"></div>
  12. </div>

Browser support

Progress bars use CSS3 gradients, transitions, and animations to achieve all their effects. These features are not supported in IE7-9 or older versions of Firefox.

Versions earlier than Internet Explorer 10 and Opera 12 do not support animations.

Abstract object styles for building various types of components (like blog comments, Tweets, etc) that feature a left- or right-aligned image alongside textual content.

Default example

The default media allow to float a media object (images, video, audio) to the left or right of a content block.

64x64

Media heading

Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.
64x64

Media heading

Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.
64x64

Media heading

Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.
  1. <div class="media">
  2. <a class="pull-left" href="#">
  3. <img class="media-object" data-src="holder.js/64x64">
  4. </a>
  5. <div class="media-body">
  6. <h4 class="media-heading">Media heading</h4>
  7. ...
  8.  
  9. <!-- Nested media object -->
  10. <div class="media">
  11. ...
  12. </div>
  13. </div>
  14. </div>

Media list

With a bit of extra markup, you can use media inside list (useful for comment threads or articles lists).

  • 64x64

    Media heading

    Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis.

    64x64

    Nested media heading

    Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis.
    64x64

    Nested media heading

    Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis.
    64x64

    Nested media heading

    Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis.
  • 64x64

    Media heading

    Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis.
  1. <ul class="media-list">
  2. <li class="media">
  3. <a class="pull-left" href="#">
  4. <img class="media-object" data-src="holder.js/64x64">
  5. </a>
  6. <div class="media-body">
  7. <h4 class="media-heading">Media heading</h4>
  8. ...
  9.  
  10. <!-- Nested media object -->
  11. <div class="media">
  12. ...
  13. </div>
  14. </div>
  15. </li>
  16. </ul>

Wells

Use the well as a simple effect on an element to give it an inset effect.

Look, I'm in a well!
  1. <div class="well">
  2. ...
  3. </div>

Optional classes

Control padding and rounded corners with two optional modifier classes.

Look, I'm in a well!
  1. <div class="well well-large">
  2. ...
  3. </div>
Look, I'm in a well!
  1. <div class="well well-small">
  2. ...
  3. </div>

Close icon

Use the generic close icon for dismissing content like modals and alerts.

  1. <button class="close">&times;</button>

iOS devices require an href="#" for click events if you would rather use an anchor.

  1. <a class="close" href="#">&times;</a>

Helper classes

Simple, focused classes for small display or behavior tweaks.

.pull-left

Float an element left

  1. class="pull-left"
  1. .pull-left {
  2. float: left;
  3. }

.pull-right

Float an element right

  1. class="pull-right"
  1. .pull-right {
  2. float: right;
  3. }

.muted

Change an element's color to #999

  1. class="muted"
  1. .muted {
  2. color: #999;
  3. }

.clearfix

Clear the float on any element

  1. class="clearfix"
  1. .clearfix {
  2. *zoom: 1;
  3. &:before,
  4. &:after {
  5. display: table;
  6. content: "";
  7. }
  8. &:after {
  9. clear: both;
  10. }
  11. }