Question: I am trying to set up some css selectors, and I need to set up several that I want to be ignored in IE8 (actually any IE < IE9, but that's ok).

Which selector can I safely use knowing that all browsers (including IE9) support the selector but IE8 fails?

In other words, I am looking to do something like

```
.someselectorthatfailsinie .mystyle { stuff for new browsers }

```

EDIT: What I am trying to do with CSS is target and style checkboxes and radio buttons. While IE8 supports SOME of this treatment -- the custom box -- it does not support the `input[type=checkbox]:checked + label:before` necessary for the pseudo checkboxes to work.

Therefore I wanted to "hide" the entire css effort from IE8, and let it show the default unstyled checkboxes.

Answer: 
add `noie` class for browsers higher than IE8 & other broswers.

```
<!DOCTYPE html>
<!--[if lt IE 8]><html lang="en" class="no-js dumbie"><![endif]-->
<!--[if (gt IE 8)|!(IE)]><!-->
<html class="no-js noie" lang="en">
<!--<![endif]-->
<head>

.noie .mystyle { stuff for new browsers }

```
To answer the original question, IE8 does not support the `canvas` element. Modernizr will add the `canvas` class to the `<html>` tag for modern browsers, and alternatively, it will add the `no-canvas` class for IE8 and below. Therefore, you could do this to target modern browsers:

```
.canvas .my-checkbox-style { /* CSS for modern browsers, but not IE8 or lower */ }

```

Alternatively, you could do this to target IE8 and lower:

```
.no-canvas .my-checkbox-style { /* CSS for IE8 or lower */ }

```

However, there are a couple of things worth further mention here...

Browsers will not honor CSS selectors and properties they do not support.

If the intention is to truly *hide* your modern browser CSS from IE8 entirely, you need to serve up separate stylesheets altogether via conditional statements, like this:

```
    <!--[if lt IE 9]>
      <link rel="stylesheet" type="text/css" href="ie8-and-down.css" />
    <![endif]-->

    <!--[if gt IE 8]>
      <link rel="stylesheet" type="text/css" href="ie9-and-up.css" />
    <![endif]-->

    <!--[if !IE]><!-->
      <link rel="stylesheet" type="text/css" href="non-ie-browsers.css" />
    <!--<![endif]-->

```

Architecturally speaking, presuming modern browsers are the 'first class citizens' in your styling objectives, your stylesheets should be written from their modern perspective as a norm. This will make your overall development process easier, as well as uncluttered with classes that unnecessarily target 'modern' browsers. Target IE8 and below with the `no-canvas` class, and over-ride the modern browser CSS therein, to return the IE8 checkboxes to their default state. You can then easily prune this self-contained over-ride from your CSS codebase when the time comes to drop IE8 support.

I've written a [Codepen example](http://codepen.io/jacefarm/pen/mbwJF) to illustrate the use of `canvas` and `no-canvas`.