Web design

Mastering Responsive Web Design with CSS Math Functions

Math is fine, math is fine, but do you want to spend your time doing calculations when your stylesheet can do it for you?

CSS comes with three handy math functions that will change the way you design your websites. We’ll show you how and why you should use them.

Introducing Math to CSS

CSS is mostly declarative, but revisions have introduced functions into the language. There are now many functions in the spec, and three of the simplest math functions can come in very handy: calc, max, and min.

USE VIDEO OF THE DAY

You can use this simple CodePen example to help follow along with the guide.

CSS math function calc()

The CSS calc() function performs a simple calculation and uses the result as the property value. This means you can assign dynamic values ​​to properties like height and width, all without @media CSS queries.

This function supports addition (+), multiplication

subtraction (-) and division (/) with a single operator.

Example: Creating regular spacing on screen sizes

diagram showing spaces of different sizes in a web page

As you can see in the image above, the title bar that crosses the screen has different spacing depending on the screen size. This is because we set the width to 80vw, setting the spacing to 20vw; a varying value.

width: calc(100vw - 400px);

If we use calc() instead, we can set the spacing to be the same on all screen sizes. The property we use for this looks like this:

diagram showing css calc create gaps of the same size

CSS max() math function

The CSS max() function selects the highest value from a pool to add a value to a CSS property. You can add as many potential values ​​as you want, each separated by a comma, but only the highest one will be used.

Example: Restrict the height of the navigation bar

diagram showing navbar thickness on different devices

This can make a property value great on desktop and bad on mobile, just like the image above shows. Our navigation bar has a set height of 10vh, but this makes the bar thin on desktop devices.

height: max(10vh, 80px);

We can use the max() CSS function to solve this problem:

diagram showing navigation bars at equal heights

CSS math function min()

The min() function is like the max() function, but it chooses the lowest value from a pool to use as the property value.

Example: Setting a maximum text size

diagram showing too large text on mobile devices Using a font size: 10vh;

The property on Main Header Text in our example makes the text look good on desktop, but way too large on mobile.

font-size: min(10vh, 10vw);

To change this, you can use the CSS min() function to provide alternative sizing:

diagram showing correctly sized text

Using Math for Responsive Web Design

The math functions that come with CSS provide a unique way to easily create responsive websites. You just need to set them up correctly to get started.

Of course, there are other CSS methods and functions you can use to create a site that looks great on all platforms.