Box Sizing

Tailwind CSS version

v1.2.0+

Utilities for controlling how the browser should calculate an element’s total size.

Class reference

Class
Properties
.box-borderbox-sizing: border-box;
.box-contentbox-sizing: content-box;

Include borders and padding

Use box-border to set an element’s box-sizing to border-box, telling the browser to include the element’s borders and padding when you give it a height or width.

This means a 100px × 100px element with a 2px border and 4px of padding on all sides will be rendered as 100px × 100px, with an internal content area of 88px × 88px.

Tailwind makes this the default for all elements in our preflight base styles.

Box Sizing - 图1

  1. <div class="box-border h-20 w-32 p-4 border-4 border-gray-400 bg-gray-200">
  2. <div class="h-full w-full bg-gray-400"></div>
  3. </div>

Exclude borders and padding

Use box-content to set an element’s box-sizing to content-box, telling the browser to add borders and padding on top of the element’s specified width or height.

This means a 100px × 100px element with a 2px border and 4px of padding on all sides will actually be rendered as 112px × 112px, with an internal content area of 100px × 100px.

Box Sizing - 图2

  1. <div class="box-content h-20 w-32 p-4 border-4 border-gray-400 bg-gray-200">
  2. <div class="h-full w-full bg-gray-400"></div>
  3. </div>

Responsive

To control the box-sizing at a specific breakpoint, add a {screen}: prefix to any existing box-sizing utility. For example, use md:box-content to apply the box-content utility at only medium screen sizes and above.

  1. <div class="box-border md:box-content ...">
  2. <!-- ... -->
  3. </div>

For more information about Tailwind’s responsive design features, check out the Responsive Design documentation.

Customizing

Responsive and pseudo-class variants

By default, only responsive variants are generated for box-sizing utilities.

You can control which variants are generated for the box-sizing utilities by modifying the boxSizing property in the variants section of your tailwind.config.js file.

For example, this config will also generate hover and focus variants:

  1. // tailwind.config.js
  2. module.exports = {
  3. variants: {
  4. // ...
  5. - boxSizing: ['responsive'],
  6. + boxSizing: ['responsive', 'hover', 'focus'],
  7. }
  8. }

Disabling

If you don’t plan to use the box-sizing utilities in your project, you can disable them entirely by setting the boxSizing property to false in the corePlugins section of your config file:

  1. // tailwind.config.js
  2. module.exports = {
  3. corePlugins: {
  4. // ...
  5. + boxSizing: false,
  6. }
  7. }

← Container   Display →