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
calc
e o parêntese de abertura(
. - Não fechar corretamente a função
calc()
com parênteses.