Question: I need a **css3** selector to target an element when the :target equals the id of the element (easy) or when the `:target` is empty (impossible?). It’s hard to explain, so let me give you a simple example.

```
div {
  background: blue;
}
div:target, div:no-target {
  background: red;
}

```

But of course the `:no-target` pseudo class doesn’t exist ;). Is there a way around this without using **Javascript**? Thanks in advance!

Answer: 
There is a great answer for this over at [default-target-with-css](https://stackoverflow.com/questions/3354279/default-target-with-css)

It revolves around [this trick](http://jsfiddle.net/rED4c/) that seems to have problems in iOS. It's been fixed in Safari, so maybe it'll be in iOS 5?
All I can think of is that you have some javascript that checks to see if the hash is empty. If so, it adds a class to the body tag called "noHash". Then, you can use the fact that there is the noHash class available in your CSS rules.

```
if (window.location.hash.length <= 1) {
     document.body.className += " noHash";
}

```

Then, your CSS could be like this:

```
div {
  background: blue;
}
div:target, body.noHash div {
  background: red;
}

```

If there's any circumstance where a user might add a hash value after the fact, then you may have to watch for that to make sure the noHash class gets removed appropriately.

Note: you don't have to add the class name to the body tag. You can add it to any parent object that covers all the objects you wish to affect.