mirror of
https://github.com/twbs/bootstrap.git
synced 2024-11-29 11:24:18 +01:00
eb2e1102be
* remove the $enable-flex variable option * remove bootstrap-flex.css dist file and it's grunt task * remove the separate flex css file for docs; it's all the same now * remove flexbox docs (porting some to the main grid docs in next commit) * clean up few grid docs bits to simplify copy, start to mention flexbox * port relevant flexbox-grid.md content to grid.md - clean up mixins - update how it works section - bring over sizing and alignment sections * remove the $enable-flex from the options.md page * update lead paragraph to mention flexbox * update migration to mention loss of ie9 support * remove mention of flexbox dist file * clarify IE support * making a note * remove flexbox variant mentions from component docs - updates docs for media object, navs, list group, and cards to consolidate docs - no more need to callout flexbox variants since it's now the default * remove $enable-flex if/else from sass files * remove flex dist files * update scss lint property order to account for flex properties * linting * change to numberless classes for autosizing, wrap in highlighting div * bump gruntfile and postcss to ie10 * redo intro sections * rearrange * phew, redo hella grid docs - rearrange all the things - consolidate some bits * remove reference to flexbox mode * more border action for demo * Make some changes to the .card's in .card-deck's to ensure footers align to the bottom
183 lines
6.2 KiB
Markdown
183 lines
6.2 KiB
Markdown
---
|
|
layout: docs
|
|
title: Overview
|
|
description: Components and options for laying out your Bootstrap project, including wrapping containers, a powerful grid system, a flexible media object, and responsive utility classes.
|
|
group: layout
|
|
redirect_from: "/layout/"
|
|
---
|
|
|
|
Bootstrap includes several components and options for laying out your project, including wrapping containers, a powerful flexbox grid system, a flexible media object, and responsive utility classes.
|
|
|
|
## Contents
|
|
|
|
* Will be replaced with the ToC, excluding the "Contents" header
|
|
{:toc}
|
|
|
|
## Containers
|
|
|
|
Containers are the most basic layout element in Bootstrap and are **required when using our default grid system**. Choose from a responsive, fixed-width container (meaning its `max-width` changes at each breakpoint) or fluid-width (meaning it's `100%` wide all the time).
|
|
|
|
While containers *can* be nested, most layouts do not require a nested container.
|
|
|
|
<div class="bd-example">
|
|
<div class="bd-example-container">
|
|
<div class="bd-example-container-header"></div>
|
|
<div class="bd-example-container-sidebar"></div>
|
|
<div class="bd-example-container-body"></div>
|
|
</div>
|
|
</div>
|
|
|
|
{% highlight html %}
|
|
<div class="container">
|
|
<!-- Content here -->
|
|
</div>
|
|
{% endhighlight %}
|
|
|
|
Use `.container-fluid` for a full width container, spanning the entire width of the viewport.
|
|
|
|
<div class="bd-example">
|
|
<div class="bd-example-container bd-example-container-fluid">
|
|
<div class="bd-example-container-header"></div>
|
|
<div class="bd-example-container-sidebar"></div>
|
|
<div class="bd-example-container-body"></div>
|
|
</div>
|
|
</div>
|
|
|
|
{% highlight html %}
|
|
<div class="container-fluid">
|
|
...
|
|
</div>
|
|
{% endhighlight %}
|
|
|
|
|
|
## Responsive breakpoints
|
|
|
|
Since Bootstrap is developed to be mobile first, we use a handful of [media queries](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries) to create sensible breakpoints for our layouts and interfaces. These breakpoints are mostly based on minimum viewport widths and allow us to scale up elements as the viewport changes.
|
|
|
|
Bootstrap primarily uses the following media query ranges—or breakpoints—in our source Sass files for our layout, grid system, and components.
|
|
|
|
{% highlight scss %}
|
|
// Extra small devices (portrait phones, less than 576px)
|
|
// No media query since this is the default in Bootstrap
|
|
|
|
// Small devices (landscape phones, 576px and up)
|
|
@media (min-width: 576px) { ... }
|
|
|
|
// Medium devices (tablets, 768px and up)
|
|
@media (min-width: 768px) { ... }
|
|
|
|
// Large devices (desktops, 992px and up)
|
|
@media (min-width: 992px) { ... }
|
|
|
|
// Extra large devices (large desktops, 1200px and up)
|
|
@media (min-width: 1200px) { ... }
|
|
{% endhighlight %}
|
|
|
|
Since we write our source CSS in Sass, all our media queries are available via Sass mixins:
|
|
|
|
{% highlight scss %}
|
|
@include media-breakpoint-up(xs) { ... }
|
|
@include media-breakpoint-up(sm) { ... }
|
|
@include media-breakpoint-up(md) { ... }
|
|
@include media-breakpoint-up(lg) { ... }
|
|
@include media-breakpoint-up(xl) { ... }
|
|
|
|
// Example usage:
|
|
@include media-breakpoint-up(sm) {
|
|
.some-class {
|
|
display: block;
|
|
}
|
|
}
|
|
{% endhighlight %}
|
|
|
|
We occasionally use media queries that go in the other direction (the given screen size *or smaller*):
|
|
|
|
{% highlight scss %}
|
|
// Extra small devices (portrait phones, less than 576px)
|
|
@media (max-width: 575px) { ... }
|
|
|
|
// Small devices (landscape phones, less than 768px)
|
|
@media (max-width: 767px) { ... }
|
|
|
|
// Medium devices (tablets, less than 992px)
|
|
@media (max-width: 991px) { ... }
|
|
|
|
// Large devices (desktops, less than 1200px)
|
|
@media (max-width: 1199px) { ... }
|
|
|
|
// Extra large devices (large desktops)
|
|
// No media query since the extra-large breakpoint has no upper bound on its width
|
|
{% endhighlight %}
|
|
|
|
Once again, these media queries are also available via Sass mixins:
|
|
|
|
{% highlight scss %}
|
|
@include media-breakpoint-down(xs) { ... }
|
|
@include media-breakpoint-down(sm) { ... }
|
|
@include media-breakpoint-down(md) { ... }
|
|
@include media-breakpoint-down(lg) { ... }
|
|
{% endhighlight %}
|
|
|
|
We also have media between the breakpoint's minimum and maximum widths for only the given screen size:
|
|
|
|
{% highlight scss %}
|
|
// Extra small devices (portrait phones, less than 576px)
|
|
@media (max-width: 575px) { ... }
|
|
|
|
// Small devices (landscape phones, 576px and up)
|
|
@media (min-width: 576px) and (max-width: 767px) { ... }
|
|
|
|
// Medium devices (tablets, 768px and up)
|
|
@media (min-width: 768px) and (max-width: 991px) { ... }
|
|
|
|
// Large devices (desktops, 992px and up)
|
|
@media (min-width: 992px) and (max-width: 1199px) { ... }
|
|
|
|
// Extra large devices (large desktops, 1200px and up)
|
|
@media (min-width: 1200px) { ... }
|
|
{% endhighlight %}
|
|
|
|
These media queries are also available via Sass mixins:
|
|
|
|
{% highlight scss %}
|
|
@include media-breakpoint-only(xs) { ... }
|
|
@include media-breakpoint-only(sm) { ... }
|
|
@include media-breakpoint-only(md) { ... }
|
|
@include media-breakpoint-only(lg) { ... }
|
|
@include media-breakpoint-only(xl) { ... }
|
|
{% endhighlight %}
|
|
|
|
And finally media that spans multiple breakpoint widths:
|
|
|
|
{% highlight scss %}
|
|
// Example
|
|
// Medium devices (tablets, 768px and up) and Large devices (desktops, 992px and up)
|
|
@media (min-width: 768px) and (max-width: 1199px) { ... }
|
|
{% endhighlight %}
|
|
|
|
The Sass mixin for the above example look like that shown beneath:
|
|
|
|
{% highlight scss %}
|
|
@include media-breakpoint-between(md, lg) { ... }
|
|
{% endhighlight %}
|
|
|
|
## Z-index
|
|
|
|
Several Bootstrap components utilize `z-index`, the CSS property that helps control layout by providing a third axis to arrange content. We utilize a default z-index scale in Bootstrap that's been designed to properly layer navigation, tooltips and popovers, modals, and more.
|
|
|
|
We don't encourage customization of these values; should you change one, you likely need to change them all.
|
|
|
|
```scss
|
|
$zindex-dropdown-backdrop: 990 !default;
|
|
$zindex-navbar: 1000 !default;
|
|
$zindex-dropdown: 1000 !default;
|
|
$zindex-navbar-fixed: 1030 !default;
|
|
$zindex-navbar-sticky: 1030 !default;
|
|
$zindex-modal-backdrop: 1040 !default;
|
|
$zindex-modal: 1050 !default;
|
|
$zindex-popover: 1060 !default;
|
|
$zindex-tooltip: 1070 !default;
|
|
```
|
|
|
|
Background elements—like the backdrops that allow click-dismissing—tend to reside on a lower `z-index`s, while navigation and popovers utilize higher `z-index`s to ensure they overlay surrounding content.
|