Função calc() no CSS
A função calc() no CSS permite realizar cálculos matemáticos para definir valores de propriedades CSS. Isso é útil quando você precisa combinar diferentes unidades ou ajustar tamanhos de elementos de forma dinâmica.
Exemplo de uso
Vamos ver um exemplo de como usar a função calc() para definir a largura de um elemento:
<style>
.box {
width: calc(100% - 50px);
height: 200px;
margin: auto;
background-color: lightblue;
}
</style>
Note que sempre há espaço entre os operadores e o número!
Exemplo de código no body:
<div style="background-color: lime;">
<div class="box">Conteúdo da caixa</div>
</div>
Exemplo de funcionamento:
No exemplo acima, a largura da caixa é calculada como 100% da largura do elemento pai menos 50 pixels.
Operadores suportados
- Adição (+):
calc(50% + 20px) - Subtração (-):
calc(100% - 50px) - Multiplicação (*):
calc(10px * 2) - Divisão (/):
calc(100px / 2)
Note que a multiplicação e a divisão só podem ser usadas com números, não com unidades diferentes.
Sintaxe
A função calc() no CSS deve ser usada com cuidado para evitar erros de sintaxe. Aqui estão algumas regras importantes a serem seguidas:
- Espaços ao redor dos operadores: Sempre deve haver um espaço antes e depois dos operadores matemáticos (+, -, *, /). Por exemplo,
calc(100% - 50px)é correto, enquantocalc(100%-50px)é incorreto. - Unidades consistentes: Certifique-se de que as unidades usadas nos cálculos sejam compatíveis. Por exemplo, você pode combinar porcentagens com pixels, mas não pode combinar pixels com em sem o uso correto de parênteses. Pois lembre-se de que "em" é uma unidade relativa ao tamanho da fonte do elemento pai.
- Uso de parênteses: Use parênteses para agrupar expressões complexas e garantir que os cálculos sejam realizados na ordem correta. Por exemplo,
calc((100% - 50px) / 2).
Principais erros:
- Esquecer de adicionar espaços ao redor dos operadores.
- Combinar unidades incompatíveis.
- Adicionar um espaço entre a palavra
calce o parêntese de abertura(. - Não fechar corretamente a função
calc()com parênteses.