Book Image

Designing Next Generation Web Projects with CSS3

By : Sandro Paganotti
Book Image

Designing Next Generation Web Projects with CSS3

By: Sandro Paganotti

Overview of this book

CSS3 unveils new possibilities for frontend web developers: things that would require JavaScript, such as animation and form validation, or even third party plugins, such as 3D transformations, are now accessible using this technology."Designing Next Generation Web Projects with CSS3" contains ten web projects fully developed using cutting edge CSS3 techniques. It also covers time saving implementation tips and tricks as well as fallback, polyfills, and graceful degradation approaches.This book draws a path through CSS3; it starts with projects using well supported features across web browsers and then it moves to more sophisticated techniques such as multi polyfill implementation and creating a zooming user interface with SVG and CSS. React to HTML5 form validation, target CSS rules to specific devices, trigger animations and behavior in response to user interaction, gain confidence with helpful tools like SASS, learn how to deal with old browsers and more."Designing Next Generation Web Projects with CSS3" is a helpful collection of techniques and good practices designed to help the implementation of CSS3 properties and features.
Table of Contents (17 chapters)
Designing Next Generation Web Projects with CSS3
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Targeting SVG with CSS


Ok, time for some final touches. What we want now is to provide a mechanism to toggle the visibility of the labels of the infographic. Due to the fact that our SVG is inline, we can turn them off by simply adding opacity: 0 to their id selector, in the same way as we would have done with plain HTML elements. So let's add the following lines to application.css:

#Layer_2{ /* this id is present within the SVG */
  opacity: 0;
  transition: opacity 1s;
}

The next step is to find a way to let the user toggle the opacity value. We can achieve this result using a checkbox and taking advantage of the :checked pseudo-selector more or less as we did with the :target one.

So, first of all let's add a checkbox just before the <section> tag in our index.html file:

<input type="checkbox" id="show_labels" name="show_labels">

And then, let's add the corresponding label just before the </ul> tag in the nav command:

<li><label for="show_labels"></label&gt...