spacing.md 2.97 KB
Newer Older
1
2
3
4
5
6
---
layout: docs
title: Spacing
group: utilities
---

7
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`.
8

9
10
11
12
13
## Contents

* Will be replaced with the ToC, excluding the "Contents" header
{:toc}

14
15
16
17
18
## 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`.
19
20
21
22
23
24
25
26
27
28
29
30
31
32

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`
33
* blank - for classes that set a `margin` or `padding` on all 4 sides of the element
34
35
36
37

Where *size* is one of:

* `0` - for classes that eliminate the `margin` or `padding` by setting it to `0`
Mark Otto's avatar
Mark Otto committed
38
39
40
41
42
* `1` - (by default) for classes that set the `margin` or `padding` to `$spacer * .25` or `$spacer * .25`
* `2` - (by default) for classes that set the `margin` or `padding` to `$spacer * .5` or `$spacer * .5`
* `3` - (by default) for classes that set the `margin` or `padding` to `$spacer` or `$spacer`
* `4` - (by default) for classes that set the `margin` or `padding` to `$spacer * 1.5` or `$spacer * 1.5`
* `5` - (by default) for classes that set the `margin` or `padding` to `$spacer * 3` or `$spacer * 3`
43
44
45

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

46
47
## Examples

48
49
50
Here are some representative examples of these classes:

{% highlight scss %}
51
.mt-0 {
52
53
54
  margin-top: 0 !important;
}

55
.ml-1 {
Mark Otto's avatar
Mark Otto committed
56
  margin-left: ($spacer * .25) !important;
57
58
}

59
.px-2 {
Mark Otto's avatar
Mark Otto committed
60
61
  padding-left: ($spacer * .5) !important;
  padding-right: ($spacer * .5) !important;
62
63
}

64
.p-3 {
Mark Otto's avatar
Mark Otto committed
65
  padding: $spacer $spacer !important;
66
67
68
69
}
{% endhighlight %}

### Horizontal centering
70
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`.
71
72

<div class="bd-example">
73
  <div class="mx-auto" style="width: 200px; background-color: rgba(86,61,124,.15);">
74
75
76
77
78
    Centered element
  </div>
</div>

{% highlight html %}
79
<div class="mx-auto" style="width: 200px;">
80
81
82
  Centered element
</div>
{% endhighlight %}