CSS Units come in a variety of categories such as font-sizes, character-sizes, viewport dimensions, etc. Broadly there are two categories of absolute and relative units which consist of above mentioned sub categories.
Following are the CSS absolute units −
Sr.No | Unit & Name |
---|---|
1 | cm Centimeters (1 cm = 100 mm) |
2 | in Inches (1 in = 2.54 cm) |
3 | mm Millimeters |
4 | pc Picas (1 pc = 12 pt) |
5 | pt Points (1 pt = 1/72 in) |
6 | px Pixels (1 px = 0.75 pt) |
Let us see an example of CSS absolute units −
Example
<!DOCTYPE html> <html> <head> <title>CSS Absolute Units</title> <style> form { width:70%; margin: 0 auto; text-align: center; } * { padding: 2px; margin:5px; } input[type="button"] { border-radius: 10px; } #container { display: flex; } .child{ margin: 5px 0; height: 40px; color: white; border-width: 4px 0 4px 4px; border-color: black; border-style: solid; } .child:nth-of-type(1){ background-color: #FF8A00; width:1cm; } .child:nth-of-type(2){ background-color: #F44336; width:1in; } .child:nth-of-type(3){ background-color: #C303C3; width:1mm; } .child:nth-of-type(4){ background-color: #4CAF50; width:1pc; } .child:nth-of-type(5){ background-color: #03A9F4; width:1pt; } .child:nth-of-type(6){ background-color: #FEDC11; width:1px; border-right-width: 4px; } </style> </head> <body> <form> <fieldset> <legend>CSS-Absolute-Units</legend> <div id="container"> <div class="child"></div> <div class="child"></div> <div class="child"></div> <div class="child"></div> <div class="child"></div> <div class="child"></div> </div><br> <div><span class="child">cm</span><span class="child">in</span><span class="child">mm</span><span class="child">pc</span><span class="child">pt</span><span class="child">px</span></div><br> <input type="number" id="numSelect" value="1" min="1"> <input type="button" onclick="changeWidth()" value="Preview"> <script> var numSelect = document.getElementById("numSelect"); function changeWidth() { var divChild = document.getElementsByClassName('child'); for(var i=0; i<6; i++){ divChild[i].style.width = numSelect.value+divChild[i+6].textContent; }} </script> </body> </html>
Output
Before clicking any button −
After clicking ‘Preview’ button with number field set −
Following are the CSS relative units −
Sr.No | Unit & Relative to |
---|---|
1 | % Parent element dimensions |
2 | em Font size of the element |
3 | ex x-height of the element's font |
4 | rem Font size of the root element |
5 | vh 1% of viewport's height |
6 | vmax 1% of viewport's larger dimension |
7 | vmin 1% of viewport's smaller dimension |
8 | vw 1% of viewport's width |
Let us see an example of CSS relative units −
Example
<!DOCTYPE html> <html> <head> <title>CSS Relative Units</title> <style> form { width:70%; margin: 0 auto; text-align: center; } * { padding: 2px; margin:5px; } input[type="button"] { border-radius: 10px; } #container { display: flex; } .child{ margin: 5px 0; height: 40px; color: white; border-width: 4px 0 4px 4px; border-color: black; border-style: solid; } .child:nth-of-type(1){ background-color: #FF8A00; width:1%; } .child:nth-of-type(2){ background-color: #F44336; width:1em; } .child:nth-of-type(3){ background-color: #C303C3; width:1ex; } .child:nth-of-type(4){ background-color: #4CAF50; width:1rem; } .child:nth-of-type(5){ background-color: #03A9F4; width:1vh; } .child:nth-of-type(6){ background-color: #FEDC11; width:1vw; border-right-width: 4px; } </style> </head> <body> <form> <fieldset> <legend>CSS-Relative-Units</legend> <div id="container"> <div class="child"></div> <div class="child"></div> <div class="child"></div> <div class="child"></div> <div class="child"></div> <div class="child"></div> </div><br> <div><span class="child">%</span><span class="child">em</span><span class="child">ex</span><span class="child">rem</span><span class="child">vh</span><span class="child">vw</span></div><br> <input type="number" id="numSelect" value="1" min="1"> <input type="button" onclick="changeWidth()" value="Preview"> <script> var numSelect = document.getElementById("numSelect"); function changeWidth() { var divChild = document.getElementsByClassName('child'); for(var i=0; i<6; i++){ divChild[i].style.width = numSelect.value+divChild[i+6].textContent; }} </script> </body> </html>
Output
Before clicking any button −
After clicking ‘Preview’ button with ‘em’ option selected and empty text field −