Menu
Coddy logo textTech

Dimensionamiento de cajas

Parte de la sección Estilos con CSS del Journey de HTML de Coddy. Lección 39 de 76.

En CSS, box-sizing es una propiedad que determina cómo se calculan el ancho y la altura totales de un elemento. De forma predeterminada, las propiedades width y height solo incluyen el tamaño del contenido y no tienen en cuenta el relleno, los bordes ni los márgenes. Sin embargo, al usar la propiedad box-sizing, puedes cambiar este comportamiento y hacer que las propiedades width y height incluyan también los tamaños del relleno y del borde.

Esto puede simplificar los cálculos del diseño y evitar problemas de tamaño inesperados.

Esta es la sintaxis básica para usar la propiedad box-sizing:

selector {
    box-sizing: value;
}

value: El comportamiento de dimensionamiento de caja deseado, que puede ser uno de los siguientes:

  • content-box: Este es el valor predeterminado. Las propiedades width y height solo incluyen el tamaño del contenido. El relleno, los bordes y los márgenes se añaden fuera del ancho y el alto especificados.
  • border-box: Las propiedades width y height incluyen los tamaños del contenido, el relleno y el borde. Los márgenes se siguen añadiendo fuera del elemento.

Por ejemplo:

div {
    width: 300px;
    height: 200px;
    padding: 20px;
    border: 5px solid black;
    box-sizing: content-box; /* Default behavior */
}

.container {
    width: 400px;
    height: 300px;
    padding: 30px;
    border: 10px solid red;
    box-sizing: border-box;
}

En este ejemplo, el elemento <div> tiene un valor de box-sizing de content-box. Esto significa que el ancho renderizado real de <div> será de 300px (contenido) + 40px (relleno izquierdo y derecho) + 10px (borde izquierdo y derecho) = 350px. La altura se calculará de forma similar.

Por otro lado, el elemento con la clase container tiene un valor de box-sizing de border-box. En este caso, el width especificado de 400px incluirá el contenido, el relleno y el borde. El área de contenido real se reducirá para adaptarse al relleno y al borde, lo que dará como resultado un ancho de contenido de 400px - 60px (relleno izquierdo y derecho) - 20px (borde izquierdo y derecho) = 320px. La altura se calculará de forma similar.

challenge icon

Desafío

Fácil

Se te proporciona un documento HTML con dos divisiones (<div>), cada una con una clase diferente. Tu tarea es utilizar la propiedad box-sizing para controlar cómo se calculan el ancho y la altura de estos elementos. Sigue los pasos que se indican a continuación:

  1. Escribe una regla CSS que seleccione el elemento <div> con la clase <strong>content-box-div</strong>. Establece el width en 300px, el height en 200px, el padding en 20px, el border en 5px solid blue y el box-sizing en content-box.
  2. Escribe una regla CSS que seleccione el elemento <div> con la clase <strong>border-box-div</strong>. Establece el width en 300px, el height en 200px, el padding en 20px, el border en 5px solid red y el box-sizing en border-box.

Pruébalo tú mismo

<html>
<head>
    <title>Box Sizing</title>
    <style>
        /* Write CSS rules here */
    </style>
</head>
<body>
    <div class="content-box-div">This is a div with content-box.</div>
    <div class="border-box-div">This is a div with border-box.</div>
</body>
</html>
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Estilos con CSS

Practica por tu cuenta: Playground de Web