Using HTML5 Elements in Tightly-Scoped CSS Selectors

I’ve been using some of the new HTML5 elements in a new web page template. While working on the CSS for the page, I noticed some interesting behavior in Internet Explorer 7 and 8. I have gotten in to the habit of writing very tightly-scoped CSS selectors; so tight, in fact, you would break the rule with the insertion of a single element into the DOM path.

div.businessProfile > ul.profileTools > li.follow > a.twitterLink {...}

So, when I added some of the new elements in to the selector, it looked like this:

div.businessProfile > header > nav > ul.profileTools > li.follow > a.twitterLink {...
}

This worked fine while I was still developing the page in Chrome. And it looked good in IE 9 as well. But when I checked it in IE 7 and 8, the style rules weren’t getting applied. I realized that the parser for Trident – the IE layout engine – didn’t know what to do with the HTML5 elements, even with the HTML5 DTD.

The quickest solution involves removing the HTML5 elements from the selector (and thus loosening the scope of the definitions’ application).

div.businessProfile ul.profileTools > li.follow > a.twitterLink {...}

Using conditional comments, one could load these definitions selectively for the defective browsers. But, then we’d be left with two separate style sheets to maintain.

Aside from using a CSS framework, or implementing a JavaScript hack, I’d love to find another solution, but I’ve got nothing yet.

Internet’s Down

Amazon Web Services EC2 cloud volumes for N. Virginia is down and they are having trouble launching new instances.

Here’s the full text direct from the console:

10:38 AM PDT We are currently investigating degraded performance for a small number of EBS volumes in a single Availability Zone in the US-EAST-1 Region.
11:11 AM PDT We can confirm degraded performance for a small number of EBS volumes in a single Availability Zone in the US-EAST-1 Region. Instances using affected EBS volumes will also experience degraded performance.
11:26 AM PDT We are currently experiencing degraded performance for EBS volumes in a single Availability Zone in the US-EAST-1 Region. New launches for EBS backed instances are failing and instances using affected EBS volumes will experience degraded performance.
12:32 PM PDT We are working on recovering the impacted EBS volumes in a single Availability Zone in the US-EAST-1 Region.
1:02 PM PDT We continue to work to resolve the issue affecting EBS volumes in a single availability zone in the US-EAST-1 region. The AWS Management Console for EC2 indicates which availability zone is impaired.

EC2 instances and EBS volumes outside of this availability zone are operating normally. Customers can launch replacement instances in the unaffected availability zones but may experience elevated launch latencies or receive ResourceLimitExceeded errors on their API calls, which are being issued to manage load on the system during recovery. Customers receiving this error can retry failed requests.

UPDATE: As I write this, I’m seeing services coming back up.