Rollover techniques, for example, once required JavaScript, but have been possible with CSS for many years now. The same thing is true of table-row zebra striping, which until recently could only be achieved by using additional markup on tr elements, or by using JavaScript to dynamically add this markup. […] One of the most common ways of styling data tables, both in print and on the web, is to alternate the background colors of rows of data—a technique sometimes referred to as zebra striping. Typically, zebra stripes are implemented in HTML and CSS by applying a class such as odd or even to every other row in the HTML markup, then using a class selector to apply a background color to odd, even, or both classes of row.