How it works

    Bootstrap’s grid system uses a series of containers, rows, and columns to layout and align content. It’s built with flexbox and is fully responsive. Below is an example and an in-depth look at how the grid comes together.

    New to or unfamiliar with flexbox? Read this CSS Tricks flexbox guide for background, terminology, guidelines, and code snippets.

    One of three columns
    One of three columns
    One of three columns

    The above example creates three equal-width columns on small, medium, large, and extra large devices using our predefined grid classes. Those columns are centered in the page with the parent .container.

    Breaking it down, here’s how it works:

    • Containers provide a means to center and horizontally pad your site’s contents. Use .container for a responsive pixel width or .container-fluid for width: 100% across all viewport and device sizes.
    • Rows are wrappers for columns. Each column has horizontal padding (called a gutter) for controlling the space between them. This padding is then counteracted on the rows with negative margins. This way, all the content in your columns is visually aligned down the left side.
    • In a grid layout, content must be placed within columns and only columns may be immediate children of rows.
    • Thanks to flexbox, grid columns without a specified width will automatically layout as equal width columns. For example, four instances of .col-sm will each automatically be 25% wide from the small breakpoint and up. See the auto-layout columns section for more examples.
    • Column classes indicate the number of columns you’d like to use out of the possible 12 per row. So, if you want three equal-width columns across, you can use .col-4.
    • Column widths are set in percentages, so they’re always fluid and sized relative to their parent element.
    • Columns have horizontal padding to create the gutters between individual columns, however, you can remove the margin from rows and padding from columns with .no-gutters on the .row.
    • To make the grid responsive, there are five grid breakpoints, one for each responsive breakpoint: all breakpoints (extra small), small, medium, large, and extra large.
    • Grid breakpoints are based on minimum width media queries, meaning they apply to that one breakpoint and all those above it (e.g., .col-sm-4 applies to small, medium, large, and extra large devices, but not the first xs breakpoint).
    • You can use predefined grid classes (like .col-4) or Sass mixins for more semantic markup.

    Be aware of the limitations and bugs around flexbox, like the inability to use some HTML elements as flex containers.

    Grid options

    While Bootstrap uses ems or rems for defining most sizes, pxs are used for grid breakpoints and container widths. This is because the viewport width is in pixels and does not change with the font size.

    See how aspects of the Bootstrap grid system work across multiple devices with a handy table.

    Extra small
    <576px
    Small
    ≥576px
    Medium
    ≥768px
    Large
    ≥992px
    Extra large
    ≥1200px
    Max container width None (auto) 540px 720px 960px 1140px
    Class prefix .col- .col-sm- .col-md- .col-lg- .col-xl-
    # of columns 12
    Gutter width 30px (15px on each side of a column)
    Nestable Yes
    Column ordering Yes

    Auto-layout columns

    Utilize breakpoint-specific column classes for easy column sizing without an explicit numbered class like .col-sm-6.

    Equal-width

    For example, here are two grid layouts that apply to every device and viewport, from xs to xl. Add any number of unit-less classes for each breakpoint you need and every column will be the same width.

    1 of 2
    2 of 2
    1 of 3
    2 of 3
    3 of 3

    Equal-width columns can be broken into multiple lines, but there was a Safari flexbox bug that prevented this from working without an explicit flex-basis or border. There are workarounds for older browser versions, but they shouldn’t be necessary if you’re up-to-date.

    Column
    Column
    Column
    Column

    Setting one column width

    Auto-layout for flexbox grid columns also means you can set the width of one column and have the sibling columns automatically resize around it. You may use predefined grid classes (as shown below), grid mixins, or inline widths. Note that the other columns will resize no matter the width of the center column.

    1 of 3
    2 of 3 (wider)
    3 of 3
    1 of 3
    2 of 3 (wider)
    3 of 3

    Variable width content

    Use col-{breakpoint}-auto classes to size columns based on the natural width of their content.

    1 of 3
    Variable width content
    3 of 3
    1 of 3
    Variable width content
    3 of 3

    Equal-width multi-row

    Create equal-width columns that span multiple rows by inserting a .w-100 where you want the columns to break to a new line. Make the breaks responsive by mixing the .w-100 with some responsive display utilities.

    col
    col
    col
    col

    Responsive classes

    Bootstrap’s grid includes five tiers of predefined classes for building complex responsive layouts. Customize the size of your columns on extra small, small, medium, large, or extra large devices however you see fit.

    All breakpoints

    For grids that are the same from the smallest of devices to the largest, use the .col and .col-* classes. Specify a numbered class when you need a particularly sized column; otherwise, feel free to stick to .col.

    col
    col
    col
    col
    col-8
    col-4

    Stacked to horizontal

    Using a single set of .col-sm-* classes, you can create a basic grid system that starts out stacked before becoming horizontal with at the small breakpoint (sm).

    col-sm-8
    col-sm-4
    col-sm
    col-sm
    col-sm

    Mix and match

    Don’t want your columns to simply stack in some grid tiers? Use a combination of different classes for each tier as needed. See the example below for a better idea of how it all works.

    .col-12 .col-md-8
    .col-6 .col-md-4
    .col-6 .col-md-4
    .col-6 .col-md-4
    .col-6 .col-md-4
    .col-6
    .col-6

    Alignment

    Use flexbox alignment utilities to vertically and horizontally align columns.

    Vertical alignment

    One of three columns
    One of three columns
    One of three columns
    One of three columns
    One of three columns
    One of three columns
    One of three columns
    One of three columns
    One of three columns
    One of three columns
    One of three columns
    One of three columns

    Horizontal alignment

    One of two columns
    One of two columns
    One of two columns
    One of two columns
    One of two columns
    One of two columns
    One of two columns
    One of two columns
    One of two columns
    One of two columns

    No gutters

    The gutters between columns in our predefined grid classes can be removed with .no-gutters. This removes the negative margins from .row and the horizontal padding from all immediate children columns.

    Here’s the source code for creating these styles. Note that column overrides are scoped to only the first children columns and are targeted via attribute selector. While this generates a more specific selector, column padding can still be further customized with spacing utilities.

    Need an edge-to-edge design? Drop the parent .container or .container-fluid.

                .no-gutters {
                  margin-right: 0;
                  margin-left: 0;
    
                  > .col,
                  > [class*="col-"] {
                    padding-right: 0;
                    padding-left: 0;
                  }
                }
            

    In practice, here’s how it looks. Note you can continue to use this with all other predefined grid classes (including column widths, responsive tiers, reorders, and more).

    .col-12 .col-sm-6 .col-md-8
    .col-6 .col-md-4

    Column wrapping

    If more than 12 columns are placed within a single row, each group of extra columns will, as one unit, wrap onto a new line.

    .col-9
    .col-4
    Since 9 + 4 = 13 > 12, this 4-column-wide div gets wrapped onto a new line as one contiguous unit.
    .col-6
    Subsequent columns continue along the new line.

    Column breaks

    Breaking columns to a new line in flexbox requires a small hack: add an element with width: 100% wherever you want to wrap your columns to a new line. Normally this is accomplished with multiple .rows, but not every implementation method can account for this.

    .col-6 .col-sm-3
    .col-6 .col-sm-3
    .col-6 .col-sm-3
    .col-6 .col-sm-3

    You may also apply this break at specific breakpoints with our responsive display utilities.

    .col-6 .col-sm-4
    .col-6 .col-sm-4
    .col-6 .col-sm-4
    .col-6 .col-sm-4

    Reordering

    Order classes

    Use .order- classes for controlling the visual order of your content. These classes are responsive, so you can set the order by breakpoint (e.g., .order-1.order-md-2). Includes support for 1 through 12 across all five grid tiers.

    First, but unordered
    Second, but last
    Third, but first

    There are also responsive .order-first and .order-last classes that change the order of an element by applying order: -1 and order: 13 (order: $columns + 1), respectively. These classes can also be intermixed with the numbered .order-* classes as needed.

    First, but last
    Second, but unordered
    Third, but first

    Offsetting columns

    You can offset grid columns in two ways: our responsive .offset- grid classes and our margin utilities. Grid classes are sized to match columns while margins are more useful for quick layouts where the width of the offset is variable.

    Offset classes

    Move columns to the right using .offset-md-* classes. These classes increase the left margin of a column by * columns. For example, .offset-md-4 moves .col-md-4 over four columns.

    .col-md-4
    .col-md-4 .offset-md-4
    .col-md-3 .offset-md-3
    .col-md-3 .offset-md-3
    .col-md-6 .offset-md-3

    In addition to column clearing at responsive breakpoints, you may need to reset offsets. See this in action in the grid example.

    .col-sm-5 .col-md-6
    .col-sm-5 .offset-sm-2 .col-md-6 .offset-md-0
    .col-sm-6 .col-md-5 .col-lg-6
    .col-sm-6 .col-md-5 .offset-md-2 .col-lg-6 .offset-lg-0

    Margin utilities

    With the move to flexbox in v4, you can use margin utilities like .mr-auto to force sibling columns away from one another.

    .col-md-4
    .col-md-4 .ml-auto
    .col-md-3 .ml-md-auto
    .col-md-3 .ml-md-auto
    .col-auto .mr-auto
    .col-auto

    Nesting

    To nest your content with the default grid, add a new .row and set of .col-sm-* columns within an existing .col-sm-* column. Nested rows should include a set of columns that add up to 12 or fewer (it is not required that you use all 12 available columns).

    Level 1: .col-sm-9
    Level 2: .col-8 .col-sm-6
    Level 2: .col-4 .col-sm-6

    Sass mixins

    When using Bootstrap’s source Sass files, you have the option of using Sass variables and mixins to create custom, semantic, and responsive page layouts. Our predefined grid classes use these same variables and mixins to provide a whole suite of ready-to-use classes for fast responsive layouts.

    Variables

    Variables and maps determine the number of columns, the gutter width, and the media query point at which to begin floating columns. We use these to generate the predefined grid classes documented above, as well as for the custom mixins listed below.

                $grid-columns:      12;
                $grid-gutter-width: 30px;
    
                $grid-breakpoints: (
                  // Extra small screen / phone
                  xs: 0,
                  // Small screen / phone
                  sm: 576px,
                  // Medium screen / tablet
                  md: 768px,
                  // Large screen / desktop
                  lg: 992px,
                  // Extra large screen / wide desktop
                  xl: 1200px
                );
    
                $container-max-widths: (
                  sm: 540px,
                  md: 720px,
                  lg: 960px,
                  xl: 1140px
                );
            

    Mixins

    Mixins are used in conjunction with the grid variables to generate semantic CSS for individual grid columns.

                // Creates a wrapper for a series of columns
                @include make-row();
    
                // Make the element grid-ready (applying everything but the width)
                @include make-col-ready();
                @include make-col($size, $columns: $grid-columns);
    
                // Get fancy by offsetting, or changing the sort order
                @include make-col-offset($size, $columns: $grid-columns);
            

    Example usage

    You can modify the variables to your own custom values, or just use the mixins with their default values. Here’s an example of using the default settings to create a two-column layout with a gap between.

                .example-container {
                  width: 800px;
                  @include make-container();
                }
    
                .example-row {
                  @include make-row();
                }
    
                .example-content-main {
                  @include make-col-ready();
    
                  @include media-breakpoint-up(sm) {
                    @include make-col(6);
                  }
                  @include media-breakpoint-up(lg) {
                    @include make-col(8);
                  }
                }
    
                .example-content-secondary {
                  @include make-col-ready();
    
                  @include media-breakpoint-up(sm) {
                    @include make-col(6);
                  }
                  @include media-breakpoint-up(lg) {
                    @include make-col(4);
                  }
                }
            
    Main content
    Secondary content

    Customizing the grid

    Using our built-in grid Sass variables and maps, it’s possible to completely customize the predefined grid classes. Change the number of tiers, the media query dimensions, and the container widths—then recompile.

    Columns and gutters

    The number of grid columns can be modified via Sass variables. $grid-columns is used to generate the widths (in percent) of each individual column while $grid-gutter-width sets the width for the column gutters.

                $grid-columns: 12 !default;
                $grid-gutter-width: 30px !default;
            

    Grid tiers

    Moving beyond the columns themselves, you may also customize the number of grid tiers. If you wanted just four grid tiers, you’d update the $grid-breakpoints and $container-max-widths to something like this:

                $grid-breakpoints: (
                  xs: 0,
                  sm: 480px,
                  md: 768px,
                  lg: 1024px
                );
    
                $container-max-widths: (
                  sm: 420px,
                  md: 720px,
                  lg: 960px
                );
            

    When making any changes to the Sass variables or maps, you’ll need to save your changes and recompile. Doing so will output a brand new set of predefined grid classes for column widths, offsets, and ordering. Responsive visibility utilities will also be updated to use the custom breakpoints. Make sure to set grid values in px (not rem, em, or %).

    Responsive images

    Images in Bootstrap are made responsive with .img-fluid. max-width: 100%; and height: auto; are applied to the image so that it scales with the parent element.

    100%x250
    SVG images and IE 10

    In Internet Explorer 10, SVG images with .img-fluid are disproportionately sized. To fix this, add width: 100% \9; where necessary. This fix improperly sizes other image formats, so Bootstrap doesn’t apply it automatically.

    Image thumbnails

    In addition to our border-radius utilities, you can use .img-thumbnail to give an image a rounded 1px border appearance.

    200x200

    Aligning images

    Align images with the helper float classes or text alignment classes. block-level images can be centered using the .mx-auto margin utility class.

    200x200 200x200
    200x200

    Picture

    If you are using the <picture> element to specify multiple <source> elements for a specific <img>, make sure to add the .img-* classes to the <img> and not to the <picture> tag.

    200x200

    Heading 1

    Heading 2

    Heading 3

    Heading 4

    Heading 5
    Heading 6

    Heading with muted text

    Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.

    Example body text

    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.

    This line of text is meant to be treated as fine print.

    The following is rendered as bold text.

    The following is rendered as italicized text.

    An abbreviation of the word attribute is attr.

    Emphasis classes

    Fusce dapibus, tellus ac cursus commodo, tortor mauris nibh.

    Nullam id dolor id nibh ultricies vehicula ut id elit.

    Etiam porta sem malesuada magna mollis euismod.

    Donec ullamcorper nulla non metus auctor fringilla.

    Duis mollis, est non commodo luctus, nisi erat porttitor ligula.

    Maecenas sed diam eget risus varius blandit sit amet non magna.

    Blockquotes

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.

    Someone famous in Source Title

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.

    Someone famous in Source Title

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.

    Someone famous in Source Title

    Examples

    Due to the widespread use of tables across third-party widgets like calendars and date pickers, we’ve designed our tables to be opt-in. Just add the base class .table to any <table>, then extend with custom styles or our various included modifier classes.

    Using the most basic table markup, here’s how .table-based tables look in Bootstrap. All table styles are inherited in Bootstrap 4, meaning any nested tables will be styled in the same manner as the parent.

    # First Last Handle
    1 Mark Otto @mdo
    2 Jacob Thornton @fat
    3 Larry the Bird @twitter

    You can also invert the colors—with light text on dark backgrounds—with .table-dark.

    # First Last Handle
    1 Mark Otto @mdo
    2 Jacob Thornton @fat
    3 Larry the Bird @twitter

    Table head options

    Similar to tables and dark tables, use the modifier classes .thead-light or .thead-dark to make <thead>s appear light or dark gray.

    # First Last Handle
    1 Mark Otto @mdo
    2 Jacob Thornton @fat
    3 Larry the Bird @twitter
    # First Last Handle
    1 Mark Otto @mdo
    2 Jacob Thornton @fat
    3 Larry the Bird @twitter

    Striped rows

    Use .table-striped to add zebra-striping to any table row within the <tbody>.

    # First Last Handle
    1 Mark Otto @mdo
    2 Jacob Thornton @fat
    3 Larry the Bird @twitter
    # First Last Handle
    1 Mark Otto @mdo
    2 Jacob Thornton @fat
    3 Larry the Bird @twitter

    Bordered table

    Add .table-bordered for borders on all sides of the table and cells.

    # First Last Handle
    1 Mark Otto @mdo
    2 Jacob Thornton @fat
    3 Larry the Bird @twitter
    # First Last Handle
    1 Mark Otto @mdo
    2 Jacob Thornton @fat
    3 Larry the Bird @twitter

    Borderless table

    Add .table-borderless for a table without borders.

    # First Last Handle
    1 Mark Otto @mdo
    2 Jacob Thornton @fat
    3 Larry the Bird @twitter

    .table-borderless can also be used on dark tables.

    # First Last Handle
    1 Mark Otto @mdo
    2 Jacob Thornton @fat
    3 Larry the Bird @twitter

    Hoverable rows

    Add .table-hover to enable a hover state on table rows within a <tbody>.

    # First Last Handle
    1 Mark Otto @mdo
    2 Jacob Thornton @fat
    3 Larry the Bird @twitter
    # First Last Handle
    1 Mark Otto @mdo
    2 Jacob Thornton @fat
    3 Larry the Bird @twitter

    Small table

    Add .table-sm to make tables more compact by cutting cell padding in half.

    # First Last Handle
    1 Mark Otto @mdo
    2 Jacob Thornton @fat
    3 Larry the Bird @twitter
    # First Last Handle
    1 Mark Otto @mdo
    2 Jacob Thornton @fat
    3 Larry the Bird @twitter

    Contextual classes

    Use contextual classes to color table rows or individual cells.

    Class Heading Heading
    Active Cell Cell
    Default Cell Cell
    Primary Cell Cell
    Secondary Cell Cell
    Success Cell Cell
    Danger Cell Cell
    Warning Cell Cell
    Info Cell Cell
    Light Cell Cell
    Dark Cell Cell

    Regular table background variants are not available with the dark table, however, you may use text or background utilities to achieve similar styles.

    # Heading Heading
    1 Cell Cell
    2 Cell Cell
    3 Cell Cell
    4 Cell Cell
    5 Cell Cell
    6 Cell Cell
    7 Cell Cell
    8 Cell Cell
    9 Cell Cell
    Conveying meaning to assistive technologies

    Using color to add meaning only provides a visual indication, which will not be conveyed to users of assistive technologies – such as screen readers. Ensure that information denoted by the color is either obvious from the content itself (e.g. the visible text), or is included through alternative means, such as additional text hidden with the .sr-only class.

    Create responsive tables by wrapping any .table with .table-responsive{-sm|-md|-lg|-xl}, making the table scroll horizontally at each max-width breakpoint of up to (but not including) 576px, 768px, 992px, and 1120px, respectively.

    Note that since browsers do not currently support range context queries, we work around the limitations of min- and max- prefixes and viewports with fractional widths (which can occur under certain conditions on high-dpi devices, for instance) by using values with higher precision for these comparisons.

    Captions

    A <caption> functions like a heading for a table. It helps users with screen readers to find a table and understand what it’s about and decide if they want to read it.

    List of users
    # First Last Handle
    1 Mark Otto @mdo
    2 Jacob Thornton @fat
    3 Larry the Bird @twitter

    Responsive tables

    Responsive tables allow tables to be scrolled horizontally with ease. Make any table responsive across all viewports by wrapping a .table with .table-responsive. Or, pick a maximum breakpoint with which to have a responsive table up to by using .table-responsive{-sm|-md|-lg|-xl}.

    Vertical clipping/truncation

    Responsive tables make use of overflow-y: hidden, which clips off any content that goes beyond the bottom or top edges of the table. In particular, this can clip off dropdown menus and other third-party widgets.

    Always responsive

    Across every breakpoint, use .table-responsive for horizontally scrolling tables.

    # Heading Heading Heading Heading Heading Heading Heading Heading Heading
    1 Cell Cell Cell Cell Cell Cell Cell Cell Cell
    2 Cell Cell Cell Cell Cell Cell Cell Cell Cell
    3 Cell Cell Cell Cell Cell Cell Cell Cell Cell
    Legend
    We'll never share your email with anyone else.
    This is some placeholder block-level help text for the above input. It's a bit lighter and easily wraps to a new line.
    Radio buttons
    Checkboxes
    Success! You've done it.
    Sorry, that username's taken. Try another?
    $
    .00
    Custom forms
    Upload

    Alerts

    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.

    Oh snap! Change a few things up and try submitting again.
    Well done! You successfully read this important alert message.
    Heads up! This alert needs your attention, but it's not super important.
    Oh snap! Change a few things up and try submitting again.
    Well done! You successfully read this important alert message.
    Heads up! This alert needs your attention, but it's not super important.

    Badges

    Inline

    Badges scale to match the size of the immediate parent element by using relative font sizing and em units.

    Example heading New

    Example heading New

    Example heading New

    Example heading New

    Example heading New
    Example heading New

    Contextual variations

    Add any of the below mentioned modifier classes to change the appearance of a badge.

    Primary Secondary Success Danger Warning Info Light Dark
    Primary Secondary Success Danger Warning Info Light Dark

    Basic

    Contextual alternatives

    Multiple bars

    Striped

    Animated

    Hello, world!

    This is a simple hero unit, a simple jumbotron-style component for calling extra attention to featured content or information.


    It uses utility classes for typography and spacing to space content out within the larger container.

    Learn more

    List groups

    Cards

    Header

    Primary card title

    Some quick example text to build on the card title and make up the bulk of the card's content.

    Header

    Secondary card title

    Some quick example text to build on the card title and make up the bulk of the card's content.

    Header

    Success card title

    Some quick example text to build on the card title and make up the bulk of the card's content.

    Header

    Danger card title

    Some quick example text to build on the card title and make up the bulk of the card's content.

    Header

    Warning card title

    Some quick example text to build on the card title and make up the bulk of the card's content.

    Header

    Info card title

    Some quick example text to build on the card title and make up the bulk of the card's content.

    Header

    Light card title

    Some quick example text to build on the card title and make up the bulk of the card's content.

    Header

    Dark card title

    Some quick example text to build on the card title and make up the bulk of the card's content.

    Header

    Primary card title

    Some quick example text to build on the card title and make up the bulk of the card's content.

    Header

    Secondary card title

    Some quick example text to build on the card title and make up the bulk of the card's content.

    Header

    Success card title

    Some quick example text to build on the card title and make up the bulk of the card's content.

    Header

    Danger card title

    Some quick example text to build on the card title and make up the bulk of the card's content.

    Header

    Warning card title

    Some quick example text to build on the card title and make up the bulk of the card's content.

    Header

    Info card title

    Some quick example text to build on the card title and make up the bulk of the card's content.

    Header

    Light card title

    Some quick example text to build on the card title and make up the bulk of the card's content.

    Header

    Dark card title

    Some quick example text to build on the card title and make up the bulk of the card's content.

    Card header

    Special title treatment
    Support card subtitle
    Card image

    Some quick example text to build on the card title and make up the bulk of the card's content.

    • Cras justo odio
    • Dapibus ac facilisis in
    • Vestibulum at eros

    Card title

    Card subtitle

    Some quick example text to build on the card title and make up the bulk of the card's content.

    Card link Another link

    Modals

    Popovers

    Tooltips

    Border

    Use border utilities to add or remove an element’s borders. Choose from all borders or one at a time.

    Additive

    Subtractive

    Border color

    Change the border color using utilities built on our theme colors.

    Border-radius

    Add classes to an element to easily round its corners.

    75x75
    75x75
    75x75
    75x75
    75x75
    75x75
    75x75

    About

    Rules are directly applied to <iframe>, <embed>, <video>, and <object> elements; optionally use an explicit descendant class .embed-responsive-item when you want to match the styling for other attributes.

    Pro-Tip! You don’t need to include frameborder="0" in your <iframe>s as we override that for you.

    Example

    Wrap any embed like an <iframe> in a parent element with .embed-responsive and an aspect ratio. The .embed-responsive-item isn’t strictly required, but we encourage it.

    Aspect ratios

    Aspect ratios can be customized with modifier classes.

    <!-- 21:9 aspect ratio -->
    <div class="embed-responsive embed-responsive-21by9">
      <iframe class="embed-responsive-item" src="..."></iframe>
    </div>
    
    <!-- 16:9 aspect ratio -->
    <div class="embed-responsive embed-responsive-16by9">
      <iframe class="embed-responsive-item" src="..."></iframe>
    </div>
    
    <!-- 4:3 aspect ratio -->
    <div class="embed-responsive embed-responsive-4by3">
      <iframe class="embed-responsive-item" src="..."></iframe>
    </div>
    
    <!-- 1:1 aspect ratio -->
    <div class="embed-responsive embed-responsive-1by1">
      <iframe class="embed-responsive-item" src="..."></iframe>
    </div>

    Examples

    While shadows on components are disabled by default in Bootstrap and can be enabled via $enable-shadows, you can also quickly add or remove a shadow with our box-shadow utility classes. Includes support for .shadow-none and three default sizes (which have associated variables to match).

    No shadow
    Small shadow
    Regular shadow
    Larger shadow

    How it works

    Assign responsive-friendly margin or padding values to an element or a subset of its sides with shorthand classes. Includes support for individual properties, all properties, and vertical and horizontal properties. Classes are built from a default Sass map ranging from .25rem to 3rem.

    Notation

    Spacing utilities that apply to all breakpoints, from xs to xl, have no breakpoint abbreviation in them. This is because those classes are applied from min-width: 0 and up, and thus are not bound by a media query. The remaining breakpoints, however, do include a breakpoint abbreviation.

    The classes are named using the format {property}{sides}-{size} for xs and {property}{sides}-{breakpoint}-{size} for sm, md, lg, and xl.

    Where property is one of:

    • m - for classes that set margin
    • p - for classes that set padding

    Where sides is one of:

    • t - for classes that set margin-top or padding-top
    • b - for classes that set margin-bottom or padding-bottom
    • l - for classes that set margin-left or padding-left
    • r - for classes that set margin-right or padding-right
    • x - for classes that set both *-left and *-right
    • y - for classes that set both *-top and *-bottom
    • blank - for classes that set a margin or padding on all 4 sides of the element

    Where size is one of:

    • 0 - for classes that eliminate the margin or padding by setting it to 0
    • 1 - (by default) for classes that set the margin or padding to $spacer * .25
    • 2 - (by default) for classes that set the margin or padding to $spacer * .5
    • 3 - (by default) for classes that set the margin or padding to $spacer
    • 4 - (by default) for classes that set the margin or padding to $spacer * 1.5
    • 5 - (by default) for classes that set the margin or padding to $spacer * 3
    • auto - for classes that set the margin to auto

    (You can add more sizes by adding entries to the $spacers Sass map variable.)

    Examples

    Here are some representative examples of these classes:

    .mt-0 {
      margin-top: 0 !important;
    }
    
    .ml-1 {
      margin-left: ($spacer * .25) !important;
    }
    
    .px-2 {
      padding-left: ($spacer * .5) !important;
      padding-right: ($spacer * .5) !important;
    }
    
    .p-3 {
      padding: $spacer !important;
    }

    Horizontal centering

    Additionally, Bootstrap also includes an .mx-auto class for horizontally centering fixed-width block level content—that is, content that has display: block and a width set—by setting the horizontal margins to auto.

    Centered element