CodeGym /Curso de Java /Frontend SELF ES /Funciones min(), max() y clamp()

Funciones min(), max() y clamp()

Frontend SELF ES
Nivel 32 , Lección 1
Disponible

7.1 Función min()

La función min() devuelve el valor más bajo de una lista de argumentos. Es útil para establecer valores que no superen un límite definido.

Sintaxis:

    
      selector {
        propiedad: min(value1, value2 ...);
      }
    
  

Ejemplo de uso:

En este ejemplo, el ancho del bloque no será mayor a 300 píxeles, pero si el 100% del elemento padre es menor a 300 píxeles, se usará el valor del 100%:

CSS
    
      /* El ancho del bloque no será mayor de 300px, pero no menor de 100px */

      .block {
        width: min(300px, 100%);
      }
    
  

Ejemplo 2: Restringir el tamaño de fuente

En este ejemplo, el tamaño de la fuente no será mayor de 2em, pero si el 5% del ancho de la ventana es menor, se usará ese valor:

CSS
    
      .text {
        font-size: min(2em, 5vw);
      }
    
  

7.2 Función max()

La función max() devuelve el valor más alto de una lista de argumentos. Es útil para establecer valores que no bajen de un límite definido.

Sintaxis:

    
      selector {
        propiedad: max(value1, value2, ...);
      }
    
  

Ejemplo de uso

En este ejemplo, el ancho del bloque no será menor de 200 píxeles, pero si el 50% del elemento padre es mayor a 200 píxeles, se usará el valor del 50%:

CSS
    
      /* El ancho del bloque no será menor de 200px, pero puede ser mayor */
      .block {
        width: max(200px, 50%);
      }
    
  

Ejemplo 2: Tamaño mínimo de fuente

En este ejemplo, el tamaño de la fuente no será menor de 1.5em, pero si el 2% del ancho de la ventana es mayor, se usará ese valor:

CSS
    
      .title {
        font-size: max(1.5em, 2vw);
      }
    
  

7.3 Función clamp()

La función clamp() devuelve un valor que está limitado por valores mínimos y máximos. Recibe tres argumentos: el valor mínimo, el valor preferido y el valor máximo.

Sintaxis:

    
      selector {
        propiedad: clamp(min, expresión, max);
      }
    
  

Ejemplo de uso

En este ejemplo, el tamaño de la fuente cambiará dependiendo del ancho de la ventana: mínimo 12 píxeles, máximo 24 píxeles y el valor preferido es el 2% del ancho de la ventana:

CSS
    
      /* Fuente de tamaño entre 12px y 24px, dependiendo del ancho de la pantalla */

      .text {
        font-size: clamp(12px, 2vw, 24px);
      }
    
  

Ejemplo 2: Restringir el ancho de un bloque

En este ejemplo, el ancho del bloque cambiará dependiendo del ancho del elemento padre, pero no será menor de 200 píxeles ni mayor de 600 píxeles:

CSS
    
      .box {
        width: clamp(200px, 50%, 600px);
      }
    
  

7.4 Ejemplo de implementación completa

CSS
    
      .container {
        display: flex;
        flex-direction: column;
        gap: 20px;
        padding: 20px;
      }

      .box {
        background-color: #3498db;
        color: white;
        padding: 10px;
        text-align: center;
        width: clamp(200px, 50%, 600px);
      }

      .text {
        font-size: clamp(1em, 2vw, 2em);
      }

      .sidebar {
        background-color: #2ecc71;
        color: white;
        padding: 10px;
        text-align: center;
        width: max(200px, 30%);
      }

      .text-small {
        font-size: min(2em, 5vw);
      }
    
  
HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Ejemplo de uso de las funciones min(), max() y clamp()</title>
          <link rel="stylesheet" href="styles.css">
        </head>
        <body>
          <div class="container">
            <div class="box">Ancho: clamp(200px, 50%, 600px)</div>
            <p class="text">Tamaño de fuente: clamp(1em, 2vw, 2em)</p>
            <div class="sidebar">Ancho: max(200px, 30%)</div>
            <p class="text-small">Tamaño de fuente: min(2em, 5vw)</p>
          </div>
        </body>
      </html>
    
  
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION