1 |
efrain |
1 |
---
|
|
|
2 |
layout: docs
|
|
|
3 |
title: Spacing
|
|
|
4 |
description: Bootstrap includes a wide range of shorthand responsive margin and padding utility classes to modify an element's appearance.
|
|
|
5 |
group: utilities
|
|
|
6 |
toc: true
|
|
|
7 |
---
|
|
|
8 |
|
|
|
9 |
## How it works
|
|
|
10 |
|
|
|
11 |
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`.
|
|
|
12 |
|
|
|
13 |
## Notation
|
|
|
14 |
|
|
|
15 |
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.
|
|
|
16 |
|
|
|
17 |
The classes are named using the format `{property}{sides}-{size}` for `xs` and `{property}{sides}-{breakpoint}-{size}` for `sm`, `md`, `lg`, and `xl`.
|
|
|
18 |
|
|
|
19 |
Where *property* is one of:
|
|
|
20 |
|
|
|
21 |
* `m` - for classes that set `margin`
|
|
|
22 |
* `p` - for classes that set `padding`
|
|
|
23 |
|
|
|
24 |
Where *sides* is one of:
|
|
|
25 |
|
|
|
26 |
* `t` - for classes that set `margin-top` or `padding-top`
|
|
|
27 |
* `b` - for classes that set `margin-bottom` or `padding-bottom`
|
|
|
28 |
* `l` - for classes that set `margin-left` or `padding-left`
|
|
|
29 |
* `r` - for classes that set `margin-right` or `padding-right`
|
|
|
30 |
* `x` - for classes that set both `*-left` and `*-right`
|
|
|
31 |
* `y` - for classes that set both `*-top` and `*-bottom`
|
|
|
32 |
* blank - for classes that set a `margin` or `padding` on all 4 sides of the element
|
|
|
33 |
|
|
|
34 |
Where *size* is one of:
|
|
|
35 |
|
|
|
36 |
* `0` - for classes that eliminate the `margin` or `padding` by setting it to `0`
|
|
|
37 |
* `1` - (by default) for classes that set the `margin` or `padding` to `$spacer * .25`
|
|
|
38 |
* `2` - (by default) for classes that set the `margin` or `padding` to `$spacer * .5`
|
|
|
39 |
* `3` - (by default) for classes that set the `margin` or `padding` to `$spacer`
|
|
|
40 |
* `4` - (by default) for classes that set the `margin` or `padding` to `$spacer * 1.5`
|
|
|
41 |
* `5` - (by default) for classes that set the `margin` or `padding` to `$spacer * 3`
|
|
|
42 |
* `auto` - for classes that set the `margin` to auto
|
|
|
43 |
|
|
|
44 |
(You can add more sizes by adding entries to the `$spacers` Sass map variable.)
|
|
|
45 |
|
|
|
46 |
## Examples
|
|
|
47 |
|
|
|
48 |
Here are some representative examples of these classes:
|
|
|
49 |
|
|
|
50 |
```scss
|
|
|
51 |
.mt-0 {
|
|
|
52 |
margin-top: 0 !important;
|
|
|
53 |
}
|
|
|
54 |
|
|
|
55 |
.ml-1 {
|
|
|
56 |
margin-left: ($spacer * .25) !important;
|
|
|
57 |
}
|
|
|
58 |
|
|
|
59 |
.px-2 {
|
|
|
60 |
padding-left: ($spacer * .5) !important;
|
|
|
61 |
padding-right: ($spacer * .5) !important;
|
|
|
62 |
}
|
|
|
63 |
|
|
|
64 |
.p-3 {
|
|
|
65 |
padding: $spacer !important;
|
|
|
66 |
}
|
|
|
67 |
```
|
|
|
68 |
|
|
|
69 |
### Horizontal centering
|
|
|
70 |
|
|
|
71 |
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`.
|
|
|
72 |
|
|
|
73 |
<div class="bd-example">
|
|
|
74 |
<div class="mx-auto" style="width: 200px; background-color: rgba(86,61,124,.15);">
|
|
|
75 |
Centered element
|
|
|
76 |
</div>
|
|
|
77 |
</div>
|
|
|
78 |
|
|
|
79 |
```html
|
|
|
80 |
<div class="mx-auto" style="width: 200px;">
|
|
|
81 |
Centered element
|
|
|
82 |
</div>
|
|
|
83 |
```
|
|
|
84 |
|
|
|
85 |
### Negative margin
|
|
|
86 |
|
|
|
87 |
In CSS, `margin` properties can utilize negative values (`padding` cannot). As of 4.2, we've added negative margin utilities for every non-zero integer size listed above (e.g., `1`, `2`, `3`, `4`, `5`). These utilities are ideal for customizing grid column gutters across breakpoints.
|
|
|
88 |
|
|
|
89 |
The syntax is nearly the same as the default, positive margin utilities, but with the addition of `n` before the requested size. Here's an example class that's the opposite of `.mt-1`:
|
|
|
90 |
|
|
|
91 |
```scss
|
|
|
92 |
.mt-n1 {
|
|
|
93 |
margin-top: -0.25rem !important;
|
|
|
94 |
}
|
|
|
95 |
```
|
|
|
96 |
|
|
|
97 |
Here's an example of customizing the Bootstrap grid at the medium (`md`) breakpoint and above. We've increased the `.col` padding with `.px-md-5` and then counteracted that with `.mx-md-n5` on the parent `.row`.
|
|
|
98 |
|
|
|
99 |
{{< example >}}
|
|
|
100 |
<div class="row mx-md-n5">
|
|
|
101 |
<div class="col px-md-5"><div class="p-3 border bg-light">Custom column padding</div></div>
|
|
|
102 |
<div class="col px-md-5"><div class="p-3 border bg-light">Custom column padding</div></div>
|
|
|
103 |
</div>
|
|
|
104 |
{{< /example >}}
|