CodeGym /Curso de Java /Frontend SELF ES /Modelo de contenido y bordes

Modelo de contenido y bordes

Frontend SELF ES
Nivel 16 , Lección 4
Disponible

4.1 Propiedad box-sizing

La propiedad box-sizing en CSS es una herramienta poderosa para gestionar el modelo de medida de los elementos. Define cómo se calculan las dimensiones del elemento, incluyendo ancho y alto, así como padding, bordes y márgenes. A continuación, discutimos en detalle cómo funciona box-sizing y cómo su uso puede afectar el diseño de una página web.

Principales modelos de box-sizing

Content-box (modelo de contenido)

El valor content-box es el valor predeterminado para todos los elementos. En este modelo, las dimensiones del elemento (width y height) solo definen el tamaño del contenido, excluyendo padding y bordes. Esto significa que el padding y los bordes se añaden al ancho y alto total del elemento.

Border-box (modelo de bordes)

El valor border-box cambia el modelo de medida de forma que las dimensiones del elemento (width y height) incluyen padding y bordes. Esto significa que el padding y los bordes están dentro del ancho y alto total del elemento, simplificando los cálculos y la gestión de los tamaños del elemento.

Ejemplo de uso de box-sizing:

CSS
    
      .box {
        background-color: #3498db;
        color: white;
        padding: 20px;
        border: 5px solid #2c3e50;
        margin: 10px;
        width: 200px;
        height: 100px;
      }

      .content-box {
        box-sizing: content-box;
      }

      .border-box {
        box-sizing: border-box;
      }
    
  
HTML
    
      <div class="box content-box">Content-box: el ancho y alto solo incluyen el contenido.</div>
      <div class="box border-box">Border-box: el ancho y alto incluyen el padding y bordes.</div>
    
  

Explicación del código:

  • .box: estilo base para todas las cajas, incluyendo padding, bordes y dimensiones
  • .content-box: elemento con box-sizing: content-box, donde el ancho y alto solo incluyen el contenido
  • .border-box: elemento con box-sizing: border-box, donde el ancho y alto incluyen el padding y bordes

4.2 Impacto de box-sizing en el diseño

Modelo de contenido (Content-box)

Cuando se usa box-sizing: content-box;, el padding y bordes se añaden al ancho y alto total del elemento. Esto puede requerir de un cálculo adicional al considerar las dimensiones y posicionamiento de los elementos.

Ejemplo de uso

En este caso, el ancho total del elemento será 200px + 20px (padding) * 2 + 5px (border) * 2 = 250px, y el alto total será 100px + 20px (padding) * 2 + 5px (border) * 2 = 150px.

CSS
    
      .content-box {
        box-sizing: content-box;
        width: 200px;
        height: 100px;
        padding: 20px;
        border: 5px solid #000;
      }
    
  
HTML
    
      <div class="box content-box">Content-box: el ancho y alto solo incluyen el contenido.</div>
    
  

Modelo de bordes (Border-box)

Cuando se usa box-sizing: border-box;, el padding y bordes están incluidos en las dimensiones especificadas del elemento. Esto simplifica los cálculos y la gestión de las dimensiones del elemento, especialmente al crear diseños responsivos.

Ejemplo de uso:

CSS
    
      .border-box {
        box-sizing: border-box;
        width: 200px;
        height: 100px;
        padding: 20px;
        border: 5px solid #000;
      }
    
  
HTML
    
      <div class="box border-box">Border-box: el ancho y alto incluyen el padding y bordes.</div>
    
  

4.3 Creación de un diseño responsivo

Usar box-sizing: border-box; facilita la creación de diseños responsivos, ya que los tamaños de los elementos incluyen padding y bordes, previniendo desbordamientos inesperados.

Ejemplo de uso:

CSS
    
      * {
        box-sizing: border-box;
      }

      .container {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
        padding: 10px;
        background-color: #f4f4f4;
      }

      .item {
        flex: 1 1 calc(33.333% - 20px);
        padding: 20px;
        border: 5px solid #3498db;
        background-color: #fff;
      }
    
  
HTML
    
      <div class="container">
        <div class="item">Elemento 1</div>
        <div class="item">Elemento 2</div>
        <div class="item">Elemento 3</div>
        <div class="item">Elemento 4</div>
        <div class="item">Elemento 5</div>
        <div class="item">Elemento 6</div>
      </div>
    
  

Explicación del código:

  • * { box-sizing: border-box; }: aplicación del modelo de bordes a todos los elementos en la página para simplificar el manejo de tamaños
  • .container: Contenedor Flex con un diseño responsivo
  • .item: Elementos Flex con distribución equitativa del ancho e inclusión de padding y border en el ancho total

4.4 Dimensiones fijas con padding

Usar box-sizing: border-box; permite definir fácilmente dimensiones fijas para elementos con padding, sin preocuparse por el desbordamiento.

Ejemplo de uso:

CSS
    
      .fixed-size {
        box-sizing: border-box;
        width: 300px;
        height: 150px;
        padding: 20px;
        border: 5px solid #2ecc71;
        background-color: #ecf0f1;
        text-align: center;
        line-height: 150px; /* Centrando texto verticalmente */
      }
    
  
HTML
    
      <div class="fixed-size">
        Dimensiones fijas
      </div>
    
  

Explicación del código:

  • .fixed-size: elemento con dimensiones fijas de 300x150 píxeles, incluyendo padding y border, lo que permite un control exacto sobre su tamaño
1
Опрос
Modelo de caja,  16 уровень,  4 лекция
недоступен
Modelo de caja
Modelo de caja
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION