Função clamp
A função clamp recebe três parâmetros: um valor mínimo, um valor preferido e um valor máximo.
Ela retorna:
- o valor mínimo, se o valor preferido for menor que o mínimo
- o valor máximo, se o valor preferido for maior que o máximo
- o valor preferido, se ele estiver entre o mínimo e o máximo
Sintaxe
seletor {
propriedade: clamp(min, pref, max);
}
Exemplo . Limitando o tamanho de um bloco
No exemplo a seguir, o tamanho preferido
do bloco será 30% da largura da tela.
Mas ele não poderá ficar menor que 100px
nem maior que 300px:
<div id="con1"></div>
<div id="targ"></div>
<div id="con2"></div>
#targ {
width: clamp(100px, 30%, 300px);
height: 100px;
border: 1px solid red;
margin: 30px auto;
}
#con1 {
width: 100px;
height: 100px;
border: 1px solid black;
margin: 30px auto;
}
#con2 {
width: 300px;
height: 100px;
border: 1px solid black;
margin: 30px auto;
}
:
Exemplo . Tamanho de fonte responsivo
No exemplo a seguir, o tamanho de fonte
preferido será 4vw.
Mas ele não poderá ficar menor que 16px
nem maior que 32px:
<p id="con1">
responsive text example
</p>
<p id="elem">
responsive text example
</p>
<p id="con2">
responsive text example
</p>
#elem {
font-size: clamp(16px, 4vw, 32px);
color: red;
}
#con1 {
font-size: 16px;
}
#con2 {
font-size: 32px;
}
:
Exemplo . Raio de borda responsivo
No exemplo a seguir, o raio de borda
preferido será 3vw.
Mas ele não poderá ficar menor que 5px
nem maior que 20px:
<div id="con1"></div>
<div id="elem"></div>
<div id="con2"></div>
div {
width: 100px;
height: 100px;
margin: 20px auto;
background: lightblue;
}
#elem {
border-radius: clamp(5px, 3vw, 20px);
background: #efafc6;
}
#con1 {
border-radius: 5px;
}
#con2 {
border-radius: 20px;
}
: