SlideShare a Scribd company logo
ADVANCED
CSS TRICKS &
TECHNIQUES
Robert Richelieu
Twitter: @azoblu3
WHO AM I?
FIXED TABLE LAYOUTS
* Not widely known
* Changes the way tables are rendered
* More predictable layout
CURVE TEXT AROUND A FLOATED
IMAGE
shape-outside property
 Allows geometric shapes to be set, in order to define an area for text to flow
around.
 The shape must have its dimensions specified.
 Set the height and width of the element.
 These will be used by the shape function to create a coordinate system that is used when wrapping text
around the image.
Provides functionality to create these shapes:
 Circle
 shape-outside: circle(50%);
 Ellipse
 shape-outside: ellipse(50px 100px at 50% 50%);
 Polygon
 clip-path: polygon(0% 0%, 100% 0%, 50% 100%);
shape-outside: polygon(0% 0%, 100% 0%, 50% 100%);
CURVE TEXT AROUND A FLOATED
IMAGE
 Circle
 shape-outside: circle(50%);
 The full notation for circle() is circle(r at cx cy) where r is the radius of the circle and
cx and cy are the coordinates for the center of the circle.
 If you omit them, the center of the image will be used as the default values.
CURVE TEXT AROUND A FLOATED
IMAGE
 Ellipse
 shape-outside: ellipse(50px 100px at 50% 50%);
 Ellipse is a variation of the circle where the item is elongated on either the
horizontal or vertical axis.
 The full notation for ellipse() is ellipse(rx ry at cx cy)
 rx and ry are the radiuses for the ellipse and cx and cy are the coordinates for the center of the ellipse.
CURVE TEXT AROUND A FLOATED
IMAGE
 Polygon
 clip-path: polygon(0% 0%, 100% 0%, 50% 100%);
shape-outside: polygon(0% 0%, 100% 0%, 50% 100%);
 The polygon function provides an unlimited range of shapes.
 The full notation for polygon() is polygon(x1 y1, x2 y2, …)
 each pair specifies the x & y coordinates for a vertex of the polygon.
 To use the polygon() function you must specify a minimum of 3 pairs of vertex.
 Polygon is used with a clip-path
 The clip-path CSS property creates a clipping region that defines what part of an element should be
displayed.
 Anything inside the region is displayed, while anything outside is hidden.
COLOR FADE ON HOVER
 We use CSS3 transitions
 Applied on the element on a normal state
 Easy way to make your links (or any other element) look nice
 Compatible accross the board
-webkit-transition-property: color, background;
-webkit-transition-duration: 1s, 1s;
-webkit-transition-timing-function: linear, ease-in;
STYLE BROKEN IMAGES
 Broken images can happen, whatever you do.
 Using CSS, it is possible to style broken images and provide custom
error messages to your visitors.
 Two facts about the way the <img> element behaves:
1. We can apply regular typography-related styling to the <img> element.
 These styles will be applied to the alternative text, if it is displayed, and will not affect the working image.
2. The <img> element is replaced element, its appearance and dimensions are
defined by an external resource.
 Because the element is controlled by an external source, the :before and :after pseudo-elements typically
shouldn’t work with it. However, when the image is broken and not loaded, these pseudo-elements can
appear.
 Unfortunately, not all browsers handle broken images in the same
way.
 For some browsers, even though the image is not displayed, the pseudo-elements
don't show up at all.
ATTRIBUTE SELECTORS
 Attribute selectors are case-sensitive, and are written inside
brackets [ ]
 There are different types of matches you can find with an attribute
selector, and the syntax is different for each.
 Each of the more complex attribute selectors build on the syntax of
the exact match selector.
ATTRIBUTE SELECTORS
Selector empty or not:
 div[data-attr='']
 div:not([data-attr=''])
Attribute...
 contains exact value: a[href="http://www.google.com"]
 Starts with value: h3[rel^="external"]
 Ends with value: h3[rel$="external"]
 Attribute is within a space-separated list: [rel~="friend"]
 Attribute is within a dash-separated list: [rel|="friend"]
 Multiple attributes match: h3[rel="handsome"][title^="Important"]
COMMA-SEPARATED LISTS
Display an unordered list as a comma-separated list.
Can be usefull when having multiple items from a database that you
want to display as text without having to pre-format it
programmatically.
ul.styled, ul.styled > li{ display: inline; list-style: none; padding: 0; }
ul.styled > li:not(:last-child)::after { content: ","; }
ul.styled > li:last-child::after { content: "."; }
Use with CAUTION...
This may not be ideal for accessibility, specifically screen readers.
Copy/paste from the browser doesn't work with CSS-generated
content.
CREATING SHAPES USING CSS
Common shapes:
 Square
 Rectangle
 Circle
 Oval
 Triangle
CREATING SHAPES USING CSS
 Square:
 #square { background-color: red; width: 100px; height: 100px; }
 Rectangle:
 #rectangle { background-color: red; width: 200px; height: 100px; }
 Circle:
 #circle { background-color: red; width: 100px; height: 100px; -moz-border-
radius: 50px; -webkit-border-radius: 50px; border-radius: 50px; }
 Oval:
 #oval { background-color: red; border-radius: 100px / 50px; height: 100px;
width: 200px; -moz-border-radius: 100px / 50px; -webkit-border-radius:
100px / 50px; }
CREATING SHAPES USING CSS
 It's interresting to note that when 2 borders meet, they do so at an angle, allowing
us to create triangles!
 Triangle Up:
 #triangle-up { border-left: 50px solid transparent; border-right: 50px solid
transparent; border-bottom: 100px solid red; width: 0; height: 0; }
 Triangle Down:
 #triangle-down { width: 0; height: 0; border-left: 50px solid transparent;
border-right: 50px solid transparent; border-top: 100px solid red; }
BOX SHADOW VS. DROP SHADOW
CSS FLUID SIZING
 The viewport is tha area of your browser where actual content is
displayed, in other words your web browser without its toolbars and
buttons.
 The units we use are vw, vh, vmin and vmax.
 1 vw: 1/100th viewport width
 1 vh: 1/100th viewport height
 1 vmin: 1/100th of the smallest side
 1 vmax: 1/100th of the largest side
 1vmax equals 1vh in portrait mode
 1vmax will equal 1vw in landscape mode
 NOTE: IE11 uses vm instead of vmin. It does not support vmax.
CALC()
Native CSS way to do simple math right in CSS as a replacement for
any length value (or pretty much any number value).
It has four simple math operators:
 add (+),
 subtract (-),
 multiply (*),
 and divide (/).
Being able to do math in code is nice and a welcome addition to a
language that is fairly number heavy.
THANK YOU!
Robert Richelieu
Twitter: @azoblu3
LinkedIn: https://www.linkedin.com/in/robert-richelieu-6133a2aa/
Facebook: https://www.facebook.com/rrichelieu
Example
files: https://drive.google.com/open?id=1fumPPwRo1wvCKwOw5qQgVrenJnnchFJ5
Come talk to me! I don't bite!

More Related Content

KEY
Douban pulse
PDF
Mastering CSS Animations
PDF
Stylus: The Minimalist Preprocessor
PPTX
Drawing with the HTML5 Canvas
PPTX
HTML 5 Canvas & SVG
PDF
Html5 canvas
PPTX
Learn Creative Coding: Begin Programming with the Processing Language
PPTX
Learn Creative Coding: Begin Programming with the Processing Language
Douban pulse
Mastering CSS Animations
Stylus: The Minimalist Preprocessor
Drawing with the HTML5 Canvas
HTML 5 Canvas & SVG
Html5 canvas
Learn Creative Coding: Begin Programming with the Processing Language
Learn Creative Coding: Begin Programming with the Processing Language

What's hot (8)

PDF
Sketch3 學習筆記
PDF
Intro to HTML5 Canvas
PDF
Canvas - HTML 5
PPTX
HTML 5_Canvas
PPTX
Introduction to HTML5 Canvas
PDF
響應式網頁實作坊
PPTX
DrawingML Subject: Shape Properties & Effects
PPT
HTML5 Canvas
Sketch3 學習筆記
Intro to HTML5 Canvas
Canvas - HTML 5
HTML 5_Canvas
Introduction to HTML5 Canvas
響應式網頁實作坊
DrawingML Subject: Shape Properties & Effects
HTML5 Canvas
Ad

Similar to Advanced CSS Tricks and Techniques (20)

PDF
Look ma! No images!
PDF
Implementing Awesome: An HTML5/CSS3 Workshop
PPTX
CSS3 basics for beginners - Imrokraft
PDF
Exam 70 480 CSS3 at Jinal Desai .NET
PDF
KEY
CSS and CSS3
KEY
Ease into HTML5 and CSS3
PDF
CSS3 Refresher
PPTX
Cascading Style Sheets
KEY
Trendsetting: Web Design and Beyond
KEY
Html5, a gentle introduction
PDF
Post-Modern CSS: Start learning CSS Grid, Flexbox and other new properties
PPTX
Css training
PPTX
Castro Chapter 11
KEY
HTML5, CSS3, and other fancy buzzwords
PDF
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
PDF
DotNetNuke World CSS3
PPTX
Web - CSS 1.pptx
PPTX
css3.pptx
PDF
Professional Css
Look ma! No images!
Implementing Awesome: An HTML5/CSS3 Workshop
CSS3 basics for beginners - Imrokraft
Exam 70 480 CSS3 at Jinal Desai .NET
CSS and CSS3
Ease into HTML5 and CSS3
CSS3 Refresher
Cascading Style Sheets
Trendsetting: Web Design and Beyond
Html5, a gentle introduction
Post-Modern CSS: Start learning CSS Grid, Flexbox and other new properties
Css training
Castro Chapter 11
HTML5, CSS3, and other fancy buzzwords
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
DotNetNuke World CSS3
Web - CSS 1.pptx
css3.pptx
Professional Css
Ad

Recently uploaded (20)

PPTX
t_and_OpenAI_Combined_two_pressentations
PDF
The Evolution of Traditional to New Media .pdf
PPTX
IPCNA VIRTUAL CLASSES INTERMEDIATE 6 PROJECT.pptx
PPTX
Power Point - Lesson 3_2.pptx grad school presentation
PDF
SlidesGDGoCxRAIS about Google Dialogflow and NotebookLM.pdf
PDF
The Ikigai Template _ Recalibrate How You Spend Your Time.pdf
PDF
simpleintnettestmetiaerl for the simple testint
PDF
Smart Home Technology for Health Monitoring (www.kiu.ac.ug)
PPT
isotopes_sddsadsaadasdasdasdasdsa1213.ppt
PPTX
Slides PPTX: World Game (s): Eco Economic Epochs.pptx
DOC
Rose毕业证学历认证,利物浦约翰摩尔斯大学毕业证国外本科毕业证
PDF
The New Creative Director: How AI Tools for Social Media Content Creation Are...
PPT
FIRE PREVENTION AND CONTROL PLAN- LUS.FM.MQ.OM.UTM.PLN.00014.ppt
PDF
si manuel quezon at mga nagawa sa bansang pilipinas
PPTX
Database Information System - Management Information System
PPTX
1402_iCSC_-_RESTful_Web_APIs_--_Josef_Hammer.pptx
PDF
📍 LABUAN4D EXCLUSIVE SERVER STAR GAMING ASIA NO.1 TERPOPULER DI INDONESIA ! 🌟
PDF
mera desh ae watn.(a source of motivation and patriotism to the youth of the ...
PPTX
Mathew Digital SEO Checklist Guidlines 2025
PDF
Slides PDF: The World Game (s) Eco Economic Epochs.pdf
t_and_OpenAI_Combined_two_pressentations
The Evolution of Traditional to New Media .pdf
IPCNA VIRTUAL CLASSES INTERMEDIATE 6 PROJECT.pptx
Power Point - Lesson 3_2.pptx grad school presentation
SlidesGDGoCxRAIS about Google Dialogflow and NotebookLM.pdf
The Ikigai Template _ Recalibrate How You Spend Your Time.pdf
simpleintnettestmetiaerl for the simple testint
Smart Home Technology for Health Monitoring (www.kiu.ac.ug)
isotopes_sddsadsaadasdasdasdasdsa1213.ppt
Slides PPTX: World Game (s): Eco Economic Epochs.pptx
Rose毕业证学历认证,利物浦约翰摩尔斯大学毕业证国外本科毕业证
The New Creative Director: How AI Tools for Social Media Content Creation Are...
FIRE PREVENTION AND CONTROL PLAN- LUS.FM.MQ.OM.UTM.PLN.00014.ppt
si manuel quezon at mga nagawa sa bansang pilipinas
Database Information System - Management Information System
1402_iCSC_-_RESTful_Web_APIs_--_Josef_Hammer.pptx
📍 LABUAN4D EXCLUSIVE SERVER STAR GAMING ASIA NO.1 TERPOPULER DI INDONESIA ! 🌟
mera desh ae watn.(a source of motivation and patriotism to the youth of the ...
Mathew Digital SEO Checklist Guidlines 2025
Slides PDF: The World Game (s) Eco Economic Epochs.pdf

Advanced CSS Tricks and Techniques

  • 1. ADVANCED CSS TRICKS & TECHNIQUES Robert Richelieu Twitter: @azoblu3
  • 3. FIXED TABLE LAYOUTS * Not widely known * Changes the way tables are rendered * More predictable layout
  • 4. CURVE TEXT AROUND A FLOATED IMAGE shape-outside property  Allows geometric shapes to be set, in order to define an area for text to flow around.  The shape must have its dimensions specified.  Set the height and width of the element.  These will be used by the shape function to create a coordinate system that is used when wrapping text around the image. Provides functionality to create these shapes:  Circle  shape-outside: circle(50%);  Ellipse  shape-outside: ellipse(50px 100px at 50% 50%);  Polygon  clip-path: polygon(0% 0%, 100% 0%, 50% 100%); shape-outside: polygon(0% 0%, 100% 0%, 50% 100%);
  • 5. CURVE TEXT AROUND A FLOATED IMAGE  Circle  shape-outside: circle(50%);  The full notation for circle() is circle(r at cx cy) where r is the radius of the circle and cx and cy are the coordinates for the center of the circle.  If you omit them, the center of the image will be used as the default values.
  • 6. CURVE TEXT AROUND A FLOATED IMAGE  Ellipse  shape-outside: ellipse(50px 100px at 50% 50%);  Ellipse is a variation of the circle where the item is elongated on either the horizontal or vertical axis.  The full notation for ellipse() is ellipse(rx ry at cx cy)  rx and ry are the radiuses for the ellipse and cx and cy are the coordinates for the center of the ellipse.
  • 7. CURVE TEXT AROUND A FLOATED IMAGE  Polygon  clip-path: polygon(0% 0%, 100% 0%, 50% 100%); shape-outside: polygon(0% 0%, 100% 0%, 50% 100%);  The polygon function provides an unlimited range of shapes.  The full notation for polygon() is polygon(x1 y1, x2 y2, …)  each pair specifies the x & y coordinates for a vertex of the polygon.  To use the polygon() function you must specify a minimum of 3 pairs of vertex.  Polygon is used with a clip-path  The clip-path CSS property creates a clipping region that defines what part of an element should be displayed.  Anything inside the region is displayed, while anything outside is hidden.
  • 8. COLOR FADE ON HOVER  We use CSS3 transitions  Applied on the element on a normal state  Easy way to make your links (or any other element) look nice  Compatible accross the board -webkit-transition-property: color, background; -webkit-transition-duration: 1s, 1s; -webkit-transition-timing-function: linear, ease-in;
  • 9. STYLE BROKEN IMAGES  Broken images can happen, whatever you do.  Using CSS, it is possible to style broken images and provide custom error messages to your visitors.  Two facts about the way the <img> element behaves: 1. We can apply regular typography-related styling to the <img> element.  These styles will be applied to the alternative text, if it is displayed, and will not affect the working image. 2. The <img> element is replaced element, its appearance and dimensions are defined by an external resource.  Because the element is controlled by an external source, the :before and :after pseudo-elements typically shouldn’t work with it. However, when the image is broken and not loaded, these pseudo-elements can appear.  Unfortunately, not all browsers handle broken images in the same way.  For some browsers, even though the image is not displayed, the pseudo-elements don't show up at all.
  • 10. ATTRIBUTE SELECTORS  Attribute selectors are case-sensitive, and are written inside brackets [ ]  There are different types of matches you can find with an attribute selector, and the syntax is different for each.  Each of the more complex attribute selectors build on the syntax of the exact match selector.
  • 11. ATTRIBUTE SELECTORS Selector empty or not:  div[data-attr='']  div:not([data-attr='']) Attribute...  contains exact value: a[href="http://www.google.com"]  Starts with value: h3[rel^="external"]  Ends with value: h3[rel$="external"]  Attribute is within a space-separated list: [rel~="friend"]  Attribute is within a dash-separated list: [rel|="friend"]  Multiple attributes match: h3[rel="handsome"][title^="Important"]
  • 12. COMMA-SEPARATED LISTS Display an unordered list as a comma-separated list. Can be usefull when having multiple items from a database that you want to display as text without having to pre-format it programmatically. ul.styled, ul.styled > li{ display: inline; list-style: none; padding: 0; } ul.styled > li:not(:last-child)::after { content: ","; } ul.styled > li:last-child::after { content: "."; } Use with CAUTION... This may not be ideal for accessibility, specifically screen readers. Copy/paste from the browser doesn't work with CSS-generated content.
  • 13. CREATING SHAPES USING CSS Common shapes:  Square  Rectangle  Circle  Oval  Triangle
  • 14. CREATING SHAPES USING CSS  Square:  #square { background-color: red; width: 100px; height: 100px; }  Rectangle:  #rectangle { background-color: red; width: 200px; height: 100px; }  Circle:  #circle { background-color: red; width: 100px; height: 100px; -moz-border- radius: 50px; -webkit-border-radius: 50px; border-radius: 50px; }  Oval:  #oval { background-color: red; border-radius: 100px / 50px; height: 100px; width: 200px; -moz-border-radius: 100px / 50px; -webkit-border-radius: 100px / 50px; }
  • 15. CREATING SHAPES USING CSS  It's interresting to note that when 2 borders meet, they do so at an angle, allowing us to create triangles!  Triangle Up:  #triangle-up { border-left: 50px solid transparent; border-right: 50px solid transparent; border-bottom: 100px solid red; width: 0; height: 0; }  Triangle Down:  #triangle-down { width: 0; height: 0; border-left: 50px solid transparent; border-right: 50px solid transparent; border-top: 100px solid red; }
  • 16. BOX SHADOW VS. DROP SHADOW
  • 17. CSS FLUID SIZING  The viewport is tha area of your browser where actual content is displayed, in other words your web browser without its toolbars and buttons.  The units we use are vw, vh, vmin and vmax.  1 vw: 1/100th viewport width  1 vh: 1/100th viewport height  1 vmin: 1/100th of the smallest side  1 vmax: 1/100th of the largest side  1vmax equals 1vh in portrait mode  1vmax will equal 1vw in landscape mode  NOTE: IE11 uses vm instead of vmin. It does not support vmax.
  • 18. CALC() Native CSS way to do simple math right in CSS as a replacement for any length value (or pretty much any number value). It has four simple math operators:  add (+),  subtract (-),  multiply (*),  and divide (/). Being able to do math in code is nice and a welcome addition to a language that is fairly number heavy.
  • 19. THANK YOU! Robert Richelieu Twitter: @azoblu3 LinkedIn: https://www.linkedin.com/in/robert-richelieu-6133a2aa/ Facebook: https://www.facebook.com/rrichelieu Example files: https://drive.google.com/open?id=1fumPPwRo1wvCKwOw5qQgVrenJnnchFJ5 Come talk to me! I don't bite!

Editor's Notes

  • #4: This is a CSS property for tables that, it seems to me, is well-supported, little known, and super useful. It changes the way that tables are rendered such that it gives you a sturdier, more predictable layout.
  • #5: shape-outside property Allows geometric shapes to be set, in order to define an area for text to flow around. The shape must have dimensions specified.  Set the height and width of the element.  This will be used by the shape function to create a coordinate system that is used when wrapping text around the image. The shape outside property provides functionality to create these shape: Circle shape-outside: circle(50%); Ellipse shape-outside: ellipse(50px 100px at 50% 50%); Polygon clip-path: polygon(0% 0%, 100% 0%, 50% 100%);  shape-outside: polygon(0% 0%, 100% 0%, 50% 100%);
  • #6: Circle shape-outside: circle(50%); The full notation for circle() is circle(r at cx cy) where r is the radius of the circle and cx and cy are the coordinates for the center of the circle.  If you omit them, the center of the image will be used as the default values.
  • #7: Ellipse shape-outside: ellipse(50px 100px at 50% 50%); Ellipse is a variation of the circle where the item is elongated on either the horizontal or vertical axis. The full notation for ellipse() is ellipse(rx ry at cx cy)  rx and ry are the radiuses for the ellipse and cx and cy are the coordinates for the center of the ellipse.
  • #8: Polygon clip-path: polygon(0% 0%, 100% 0%, 50% 100%);  shape-outside: polygon(0% 0%, 100% 0%, 50% 100%); The polygon function provides an unlimited range of shapes.  The full notation for polygon() is polygon(x1 y1, x2 y2, …)  each pair specifies the x & y coordinates for a vertex of the polygon. To use the polygon() function you must specify a minimum of 3 pairs of vertex. Polygon is used with a clip-path.  The clip-path CSS property creates a clipping region that defines what part of an element should be displayed.  Anything inside the region is displayed, while anything outside is hidden.
  • #9: * Easy way to make your links (or any other element) look nice * Compatible accross the board * We use CSS3 transitions * Applied on the element on a normal state -webkit-transition-property: color, background;  -webkit-transition-duration: 1s, 1s;  -webkit-transition-timing-function: linear, ease-in;
  • #10:  Broken images can happen, whatever you do.   Using CSS, it is possible to style broken images and provide custom error messages to your visitors. Two facts about the way the <img> element behaves: We can apply regular typography-related styling to the <img> element.  These styles will be applied to the alternative text, if it is displayed, and will not affect the working image. The <img> element is replaced element, its appearance and dimensions are defined by an external resource.  Because the element is controlled by an external source, the :before and :after pseudo-elements typically shouldn’t work with it. However, when the image is broken and not loaded, these pseudo-elements can appear.
  • #11: Selector empty or not: div[data-attr=''] & div:not([data-attr='']) Attribute... contains exact value:     a[href="http://www.google.com"] Starts with value:    h3[rel^="external"] Ends with value:    h3[rel$="external"] Attribute is within a space-separated list:    [rel~="friend"] Attribute is within a dash-separated list:    [rel|="friend"] Multiple attributes match:    h3[rel="handsome"][title^="Important"]
  • #12: Selector empty or not: div[data-attr=''] & div:not([data-attr='']) Attribute... contains exact value:     a[href="http://www.google.com"] Starts with value:    h3[rel^="external"] Ends with value:    h3[rel$="external"] Attribute is within a space-separated list:    [rel~="friend"] Attribute is within a dash-separated list:    [rel|="friend"] Multiple attributes match:    h3[rel="handsome"][title^="Important"]
  • #13: Display an unordered list as a comma-separated list. Can be usefull when having multiple items from a database that you want to display as text without having to pre-format it programmatically. Use with CAUTION... This may not be ideal for accessibility, specifically screen readers.  Copy/paste from the browser doesn't work with CSS-generated content. 
  • #14: Common shapes: Square Rectangle Circle Oval Triangle
  • #15: Square: #square { background-color: red; width: 100px; height: 100px; } Rectangle: #rectangle { background-color: red; width: 200px; height: 100px; }  Circle: #circle { background-color: red; width: 100px; height: 100px; -moz-border-radius: 50px; -webkit-border-radius: 50px; border-radius: 50px; }  Oval:  #oval { background-color: red; border-radius: 100px / 50px; height: 100px; width: 200px; -moz-border-radius: 100px / 50px; -webkit-border-radius: 100px / 50px; }
  • #16: It's interresting to note that when 2 borders meet, they do so at an angle, allowing us to create triangles! Triangle Up: #triangle-up { border-left: 50px solid transparent; border-right: 50px solid transparent; border-bottom: 100px solid red; width: 0; height: 0; }  Triangle Down: #triangle-down { width: 0; height: 0; border-left: 50px solid transparent; border-right: 50px solid transparent; border-top: 100px solid red; }
  • #17: The difference between box-shadow and filter: drop-shadow() really boils down to the CSS box model: one sees it and the other disregards it.  It's annoying, but makes sense. CSS uses a box model, where the element's edges are bound in the shape of a rectangle. Even in cases where the shape of the element does not appear to be a box, the box is still there and that is was box-shadow is applied to. Filters are not bound to the box model. That means the outline of our triangle is recognized and the transparency around it is ignored so that the intended shape receives the shadow.
  • #18: The viewport is tha area of your browser where actual content is displayed, in other words your web browser without its toolbars and buttons. The units we use are vw, vh, vmin and vmax. vw: 1/100th viewport width  vh: 1/100th viewport height  vmin: 1/100th of the smallest side  vmax: 1/100th of the largest side 1vmax equals 1vh in portrait mode 1vmax will equal 1vw in landscape mode IE9 uses vm instead of vmin. It does not support vmax.
  • #19: calc() is a native CSS way to do simple math right in CSS as a replacement for any length value (or pretty much any number value). It has four simple math operators: add (+), subtract (-), multiply (*), and divide (/). Being able to do math in code is nice and a welcome addition to a language that is fairly number heavy.