calc
Summary
The calc() function can be used anywhere in a length is required by a CSS properties. calc() allows mathematical expressions with addition (‘+’), subtraction (‘-’), multiplication (‘*’), and division (‘/’) to be used as component values. The values themselves can be a mixture of percentages, integers, numbers, lengths such as em or cm, angles or even time values ( seconds, milliseconds). Calc is useful for computing certain values that are not known at the development time or to set formulated values rather that arbitrary ones.
Examples
This is an example of how can you use calc in CSS
/* CSS calc function example */
.header {
position:relative;
margin: 0px auto;
width: 80%; /* fallback for browsers without support for calc() */
width: calc(100% - 100px); /* CSS3 compliant implementation; Firefox 16 and IE 9, and above */
border: solid black 1px;
box-shadow: 5px 5px #999;
margin-top: 40px;
padding: 10px;
text-align: center;
}
.header:hover {
width: calc(100% / 3 - 2 * 1em); /* complex calculation on hover */
width: 25%; /* fallback */
}
Notes
If you divide by zero it will cause an error in the HTML parser. Also the return value that will be computed must comply within the range of the relevant CSS target. For example width or height cannot be negative so it will be reverted to 0;
Related specifications
- W3C CSS Values and Units Module Level 3: Mathematical Expressions: “calc”
- Candidate Reccomendation