0
0
mirror of https://github.com/twbs/bootstrap.git synced 2024-12-13 01:08:58 +01:00
Bootstrap/site/docs/4.3/examples/grid/index.html
Mark Otto 2892675f65 v4/v5: Add responsive containers (#29095)
* create responsive containers

provide more flexibility and allow the user to determine when containers switch from fluid to fixed width.

* fix the base container code

this commit fixes the non-media portion of the generated CSS. I learned about the `@extends` directive and was able to put it to good use.

I create a new temporary map that contains all the main `$container-max-widths` and join it to our 2 special cases of 'xs' and 'fluid'.  Then we loop through that and, with the appropriate infixes, extend our placeholder

* formatting for style

forgot to run my tests before the last push, i think these are better.

* finish incomplete comment

* fix the responsive containers

using the `@extend` directive I was able to clean up this code

* fix responsive containers in the navbar

mostly we just look through all of our breakpoints so we can include all of the responsive container classes in the tweaks we have to do for the navbar (redeclaring flex properties, don't double up on padding, etc)

* Simplify container extends

* Simplify navbar containers

* Rearrange, add comments, ensure everything is nested in $enable-grid-classes

* Reduce new CSS by using attribute selector

We avoid using `@extend` whenever possible, and this is more readable

* Update _grid.scss

* Update _navbar.scss

* Add docs for responsive containers, redesign the container layout page

* Add to the Grid example
2019-08-17 17:03:00 +03:00

137 lines
5.8 KiB
HTML

---
layout: examples
title: Grid Template
extra_css: "grid.css"
body_class: "py-4"
include_js: false
---
<div class="container">
<h1>Bootstrap grid examples</h1>
<p class="lead">Basic grid layouts to get you familiar with building within the Bootstrap grid system.</p>
<p>In these examples the <code>.themed-grid-col</code> class is added to the columns to add some theming. This is not a class that is available in Bootstrap by default.</p>
<h2 class="mt-4">Five grid tiers</h2>
<p>There are five tiers to the Bootstrap grid system, one for each range of devices we support. Each tier starts at a minimum viewport size and automatically applies to the larger devices unless overridden.</p>
<div class="row mb-3">
<div class="col-4 themed-grid-col">.col-4</div>
<div class="col-4 themed-grid-col">.col-4</div>
<div class="col-4 themed-grid-col">.col-4</div>
</div>
<div class="row mb-3">
<div class="col-sm-4 themed-grid-col">.col-sm-4</div>
<div class="col-sm-4 themed-grid-col">.col-sm-4</div>
<div class="col-sm-4 themed-grid-col">.col-sm-4</div>
</div>
<div class="row mb-3">
<div class="col-md-4 themed-grid-col">.col-md-4</div>
<div class="col-md-4 themed-grid-col">.col-md-4</div>
<div class="col-md-4 themed-grid-col">.col-md-4</div>
</div>
<div class="row mb-3">
<div class="col-lg-4 themed-grid-col">.col-lg-4</div>
<div class="col-lg-4 themed-grid-col">.col-lg-4</div>
<div class="col-lg-4 themed-grid-col">.col-lg-4</div>
</div>
<div class="row mb-3">
<div class="col-xl-4 themed-grid-col">.col-xl-4</div>
<div class="col-xl-4 themed-grid-col">.col-xl-4</div>
<div class="col-xl-4 themed-grid-col">.col-xl-4</div>
</div>
<h2 class="mt-4">Three equal columns</h2>
<p>Get three equal-width columns <strong>starting at desktops and scaling to large desktops</strong>. On mobile devices, tablets and below, the columns will automatically stack.</p>
<div class="row mb-3">
<div class="col-md-4 themed-grid-col">.col-md-4</div>
<div class="col-md-4 themed-grid-col">.col-md-4</div>
<div class="col-md-4 themed-grid-col">.col-md-4</div>
</div>
<h2 class="mt-4">Three unequal columns</h2>
<p>Get three columns <strong>starting at desktops and scaling to large desktops</strong> of various widths. Remember, grid columns should add up to twelve for a single horizontal block. More than that, and columns start stacking no matter the viewport.</p>
<div class="row mb-3">
<div class="col-md-3 themed-grid-col">.col-md-3</div>
<div class="col-md-6 themed-grid-col">.col-md-6</div>
<div class="col-md-3 themed-grid-col">.col-md-3</div>
</div>
<h2 class="mt-4">Two columns</h2>
<p>Get two columns <strong>starting at desktops and scaling to large desktops</strong>.</p>
<div class="row mb-3">
<div class="col-md-8 themed-grid-col">.col-md-8</div>
<div class="col-md-4 themed-grid-col">.col-md-4</div>
</div>
<h2 class="mt-4">Full width, single column</h2>
<p class="text-warning">
No grid classes are necessary for full-width elements.
</p>
<hr class="my-4">
<h2 class="mt-4">Two columns with two nested columns</h2>
<p>Per the documentation, nesting is easy—just put a row of columns within an existing column. This gives you two columns <strong>starting at desktops and scaling to large desktops</strong>, with another two (equal widths) within the larger column.</p>
<p>At mobile device sizes, tablets and down, these columns and their nested columns will stack.</p>
<div class="row mb-3">
<div class="col-md-8 themed-grid-col">
<div class="pb-3">
.col-md-8
</div>
<div class="row">
<div class="col-md-6 themed-grid-col">.col-md-6</div>
<div class="col-md-6 themed-grid-col">.col-md-6</div>
</div>
</div>
<div class="col-md-4 themed-grid-col">.col-md-4</div>
</div>
<hr class="my-4">
<h2 class="mt-4">Mixed: mobile and desktop</h2>
<p>The Bootstrap v4 grid system has five tiers of classes: xs (extra small, this class infix is not used), sm (small), md (medium), lg (large), and xl (extra large). You can use nearly any combination of these classes to create more dynamic and flexible layouts.</p>
<p>Each tier of classes scales up, meaning if you plan on setting the same widths for md, lg and xl, you only need to specify md.</p>
<div class="row mb-3">
<div class="col-md-8 themed-grid-col">.col-md-8</div>
<div class="col-6 col-md-4 themed-grid-col">.col-6 .col-md-4</div>
</div>
<div class="row mb-3">
<div class="col-6 col-md-4 themed-grid-col">.col-6 .col-md-4</div>
<div class="col-6 col-md-4 themed-grid-col">.col-6 .col-md-4</div>
<div class="col-6 col-md-4 themed-grid-col">.col-6 .col-md-4</div>
</div>
<div class="row mb-3">
<div class="col-6 themed-grid-col">.col-6</div>
<div class="col-6 themed-grid-col">.col-6</div>
</div>
<hr class="my-4">
<h2 class="mt-4">Mixed: mobile, tablet, and desktop</h2>
<div class="row mb-3">
<div class="col-sm-6 col-lg-8 themed-grid-col">.col-sm-6 .col-lg-8</div>
<div class="col-6 col-lg-4 themed-grid-col">.col-6 .col-lg-4</div>
</div>
<div class="row mb-3">
<div class="col-6 col-sm-4 themed-grid-col">.col-6 .col-sm-4</div>
<div class="col-6 col-sm-4 themed-grid-col">.col-6 .col-sm-4</div>
<div class="col-6 col-sm-4 themed-grid-col">.col-6 .col-sm-4</div>
</div>
</div>
<div class="container">
<h2 class="mt-4">Responsive containers</h2>
<p>Additional classes added in Bootstrap v4.4 allow containers that are 100% wide until a particular breakpoint.</p>
</div>
<div class="container-sm themed-container">.container-sm</div>
<div class="container-md themed-container">.container-md</div>
<div class="container-lg themed-container">.container-lg</div>
<div class="container-xl themed-container">.container-xl</div>