2c323ec33df77289366291e2adc1f1313ef9c6b6.svn-base 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. ---
  2. layout: docs
  3. title: Utility classes
  4. group: components
  5. ---
  6. Bootstrap includes dozens of utilities—classes with a single purpose. They're designed to reduce the frequency of highly repetitive declarations in your CSS down while allowing for quick and easy development.
  7. ## Contents
  8. * Will be replaced with the ToC, excluding the "Contents" header
  9. {:toc}
  10. ## Spacing
  11. Assign `margin` or `padding` to an element or a subset of it's sides with shorthand classes. Includes support for individual properties, all properties, and vertical and horizontal properties. All classes are multiples on the global default value, `1rem`.
  12. ### Margin
  13. {% highlight scss %}
  14. .m-a-0 { margin: 0 !important; }
  15. .m-t-0 { margin-top: 0 !important; }
  16. .m-r-0 { margin-right: 0 !important; }
  17. .m-b-0 { margin-bottom: 0 !important; }
  18. .m-l-0 { margin-left: 0 !important; }
  19. .m-x-0 { margin-right: 0 !important; margin-left: 0 !important; }
  20. .m-y-0 { margin-top: 0 !important; margin-bottom: 0 !important; }
  21. .m-a { margin: $spacer !important; }
  22. .m-t { margin-top: $spacer-y !important; }
  23. .m-r { margin-right: $spacer-x !important; }
  24. .m-b { margin-bottom: $spacer-y !important; }
  25. .m-l { margin-left: $spacer-x !important; }
  26. .m-x { margin-right: $spacer-x !important; margin-left: $spacer-x !important; }
  27. .m-y { margin-top: $spacer-y !important; margin-bottom: $spacer-y !important; }
  28. .m-x-auto { margin-right: auto !important; margin-left: auto !important; }
  29. .m-a-md { margin: ($spacer * 1.5) !important; }
  30. .m-t-md { margin-top: ($spacer-y * 1.5) !important; }
  31. .m-r-md { margin-right: ($spacer-y * 1.5) !important; }
  32. .m-b-md { margin-bottom: ($spacer-y * 1.5) !important; }
  33. .m-l-md { margin-left: ($spacer-y * 1.5) !important; }
  34. .m-x-md { margin-right: ($spacer-x * 1.5) !important; margin-left: ($spacer-x * 1.5) !important; }
  35. .m-y-md { margin-top: ($spacer-y * 1.5) !important; margin-bottom: ($spacer-y * 1.5) !important; }
  36. .m-a-lg { margin: ($spacer * 3) !important; }
  37. .m-t-lg { margin-top: ($spacer-y * 3) !important; }
  38. .m-r-lg { margin-right: ($spacer-y * 3) !important; }
  39. .m-b-lg { margin-bottom: ($spacer-y * 3) !important; }
  40. .m-l-lg { margin-left: ($spacer-y * 3) !important; }
  41. .m-x-lg { margin-right: ($spacer-x * 3) !important; margin-left: ($spacer-x * 3) !important; }
  42. .m-y-lg { margin-top: ($spacer-y * 3) !important; margin-bottom: ($spacer-y * 3) !important; }
  43. {% endhighlight %}
  44. ### Padding
  45. {% highlight scss %}
  46. .p-a-0 { padding: 0 !important; }
  47. .p-t-0 { padding-top: 0 !important; }
  48. .p-r-0 { padding-right: 0 !important; }
  49. .p-b-0 { padding-bottom: 0 !important; }
  50. .p-l-0 { padding-left: 0 !important; }
  51. .p-x-0 { padding-left: 0 !important; padding-right: 0 !important; }
  52. .p-y-0 { padding-top: 0 !important; padding-bottom: 0 !important; }
  53. .p-a { padding: $spacer !important; }
  54. .p-t { padding-top: $spacer-y !important; }
  55. .p-r { padding-right: $spacer-x !important; }
  56. .p-b { padding-bottom: $spacer-y !important; }
  57. .p-l { padding-left: $spacer-x !important; }
  58. .p-x { padding-right: $spacer-x !important; padding-left: $spacer-x !important; }
  59. .p-y { padding-top: $spacer-y !important; padding-bottom: $spacer-y !important; }
  60. .p-a-md { padding: ($spacer * 1.5) !important; }
  61. .p-t-md { padding-top: ($spacer-y * 1.5) !important; }
  62. .p-r-md { padding-right: ($spacer-y * 1.5) !important; }
  63. .p-b-md { padding-bottom: ($spacer-y * 1.5) !important; }
  64. .p-l-md { padding-left: ($spacer-y * 1.5) !important; }
  65. .p-x-md { padding-right: ($spacer-x * 1.5) !important; padding-left: ($spacer-x * 1.5) !important; }
  66. .p-y-md { padding-top: ($spacer-y * 1.5) !important; padding-bottom: ($spacer-y * 1.5) !important; }
  67. .p-a-lg { padding: ($spacer * 3) !important; }
  68. .p-t-lg { padding-top: ($spacer-y * 3) !important; }
  69. .p-r-lg { padding-right: ($spacer-y * 3) !important; }
  70. .p-b-lg { padding-bottom: ($spacer-y * 3) !important; }
  71. .p-l-lg { padding-left: ($spacer-y * 3) !important; }
  72. .p-x-lg { padding-right: ($spacer-x * 3) !important; padding-left: ($spacer-x * 3) !important; }
  73. .p-y-lg { padding-top: ($spacer-y * 3) !important; padding-bottom: ($spacer-y * 3) !important; }
  74. {% endhighlight %}
  75. ## Text alignment
  76. Easily realign text to components with text alignment classes.
  77. {% example html %}
  78. <p class="text-left">Left aligned text.</p>
  79. <p class="text-center">Center aligned text.</p>
  80. <p class="text-right">Right aligned text.</p>
  81. <p class="text-justify">Justified text.</p>
  82. <p class="text-nowrap">No wrap text.</p>
  83. {% endexample %}
  84. ## Text transform
  85. Transform text in components with text capitalization classes.
  86. {% example html %}
  87. <p class="text-lowercase">Lowercased text.</p>
  88. <p class="text-uppercase">Uppercased text.</p>
  89. <p class="text-capitalize">Capitalized text.</p>
  90. {% endexample %}
  91. ## Contextual colors and backgrounds
  92. Convey meaning through color with a handful of emphasis utility classes. These may also be applied to links and will darken on hover just like our default link styles.
  93. {% example html %}
  94. <p class="text-muted">Fusce dapibus, tellus ac cursus commodo, tortor mauris nibh.</p>
  95. <p class="text-primary">Nullam id dolor id nibh ultricies vehicula ut id elit.</p>
  96. <p class="text-success">Duis mollis, est non commodo luctus, nisi erat porttitor ligula.</p>
  97. <p class="text-info">Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
  98. <p class="text-warning">Etiam porta sem malesuada magna mollis euismod.</p>
  99. <p class="text-danger">Donec ullamcorper nulla non metus auctor fringilla.</p>
  100. {% endexample %}
  101. Similar to the contextual text color classes, easily set the background of an element to any contextual class. Anchor components will darken on hover, just like the text classes.
  102. {% example html %}
  103. <div class="bg-primary">Nullam id dolor id nibh ultricies vehicula ut id elit.</div>
  104. <div class="bg-success">Duis mollis, est non commodo luctus, nisi erat porttitor ligula.</div>
  105. <div class="bg-info">Maecenas sed diam eget risus varius blandit sit amet non magna.</div>
  106. <div class="bg-warning">Etiam porta sem malesuada magna mollis euismod.</div>
  107. <div class="bg-danger">Donec ullamcorper nulla non metus auctor fringilla.</div>
  108. {% endexample %}
  109. {% callout info %}
  110. #### Dealing with specificity
  111. Sometimes contextual classes cannot be applied due to the specificity of another selector. In some cases, a sufficient workaround is to wrap your element's content in a `<div>` with the class.
  112. {% endcallout %}
  113. {% callout warning %}
  114. #### Conveying meaning to assistive technologies
  115. Ensure that any meaning conveyed through color is also conveyed in a format that is not purely presentational.
  116. {% endcallout %}
  117. ## Close icon
  118. Use a generic close icon for dismissing content like modals and alerts. **Be sure to include screen reader text when you can** as we've done with `.sr-only`.
  119. {% example html %}
  120. <button type="button" class="close" aria-label="Close">
  121. <span aria-hidden="true">&times;</span>
  122. <span class="sr-only">Close</span>
  123. </button>
  124. {% endexample %}
  125. ## Floats
  126. Float an element to the left or right with a class. `!important` is included to avoid specificity issues. Classes can also be used as mixins.
  127. {% example html %}
  128. <div class="pull-left">Float left</div>
  129. <div class="pull-right">Float right</div>
  130. {% endexample %}
  131. {% highlight scss %}
  132. // Classes
  133. .pull-left {
  134. float: left !important;
  135. }
  136. .pull-right {
  137. float: right !important;
  138. }
  139. // Usage as mixins
  140. .element {
  141. @include pull-left;
  142. }
  143. .another-element {
  144. @include pull-right;
  145. }
  146. {% endhighlight %}
  147. ## Center content
  148. Set an element to `display: block;` and center via `margin`. Available as a mixin and class.
  149. {% example html %}
  150. <div class="center-block">Centered block</div>
  151. {% endexample %}
  152. {% highlight scss %}
  153. // Class
  154. .center-block {
  155. display: block;
  156. margin-left: auto;
  157. margin-right: auto;
  158. }
  159. // Usage as a mixin
  160. .element {
  161. @include center-block;
  162. }
  163. {% endhighlight %}
  164. Easily clear `float`s by adding `.clearfix` **to the parent element**. Utilizes [the micro clearfix](http://nicolasgallagher.com/micro-clearfix-hack/) as popularized by Nicolas Gallagher. Can also be used as a mixin.
  165. {% highlight html %}
  166. <div class="clearfix">...</div>
  167. {% endhighlight %}
  168. {% highlight scss %}
  169. // Mixin itself
  170. .clearfix() {
  171. &:before,
  172. &:after {
  173. content: " ";
  174. display: table;
  175. }
  176. &:after {
  177. clear: both;
  178. }
  179. }
  180. // Usage as a mixin
  181. .element {
  182. @include clearfix;
  183. }
  184. {% endhighlight %}
  185. ## Hidden content
  186. Hide any HTML element with the `[hidden]` attribute. Previously, v3.x included a `.hidden` class that forced toggled content. However, we removed it due to conflicts with jQuery's `hide()` function. It's taken from [PureCSS](http://purecss.io).
  187. Furthermore, `.invisible` can be used to toggle the visibility of an element, meaning its `display` is not modified and the element can still affect the flow of the document.
  188. {% highlight html %}
  189. <input type="text" hidden>
  190. {% endhighlight %}
  191. ## Invisible content
  192. The `.invisible` class can be used to toggle only the visibility of an element, meaning its `display` is not modified and the element can still affect the flow of the document.
  193. {% highlight html %}
  194. <div class="invisible">...</div>
  195. {% endhighlight %}
  196. {% highlight scss %}
  197. // Class
  198. .invisible {
  199. visibility: hidden;
  200. }
  201. // Usage as a mixin
  202. .element {
  203. .invisible();
  204. }
  205. {% endhighlight %}
  206. ## Screen readers
  207. Hide an element to all devices **except screen readers** with `.sr-only`. Combine `.sr-only` with `.sr-only-focusable` to show the element again when it's focused (e.g. by a keyboard-only user). Necessary for following [accessibility best practices](../getting-started/#accessibility). Can also be used as mixins.
  208. {% highlight html %}
  209. <a class="sr-only sr-only-focusable" href="#content">Skip to main content</a>
  210. {% endhighlight %}
  211. {% highlight scss %}
  212. // Usage as a mixin
  213. .skip-navigation {
  214. @include sr-only;
  215. @include sr-only-focusable;
  216. }
  217. {% endhighlight %}
  218. ## Image replacement
  219. Utilize the `.text-hide` class or mixin to help replace an element's text content with a background image.
  220. {% highlight html %}
  221. <h1 class="text-hide">Custom heading</h1>
  222. {% endhighlight %}
  223. {% highlight scss %}
  224. // Usage as a mixin
  225. .heading {
  226. @include text-hide;
  227. }
  228. {% endhighlight %}
  229. ## Responsive embeds
  230. Allow browsers to determine video or slideshow dimensions based on the width of their containing block by creating an intrinsic ratio that will properly scale on any device.
  231. 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.
  232. **Pro-Tip!** You don't need to include `frameborder="0"` in your `<iframe>`s as we override that for you.
  233. {% example html %}
  234. <div class="embed-responsive embed-responsive-16by9">
  235. <iframe class="embed-responsive-item" src="//www.youtube.com/embed/zpOULjyy-n8?rel=0" allowfullscreen></iframe>
  236. </div>
  237. {% endexample %}
  238. Aspect ratios can be customized with modifier classes.
  239. {% highlight html %}
  240. <!-- 21:9 aspect ratio -->
  241. <div class="embed-responsive embed-responsive-21by9">
  242. <iframe class="embed-responsive-item" src="..."></iframe>
  243. </div>
  244. <!-- 16:9 aspect ratio -->
  245. <div class="embed-responsive embed-responsive-16by9">
  246. <iframe class="embed-responsive-item" src="..."></iframe>
  247. </div>
  248. <!-- 4:3 aspect ratio -->
  249. <div class="embed-responsive embed-responsive-4by3">
  250. <iframe class="embed-responsive-item" src="..."></iframe>
  251. </div>
  252. {% endhighlight %}