What CSS Properties Are Supported When You Drop IE6 Support

Posted January 4, 2012 at 9:48 AM by Ben Nadel

Tags: HTML / CSS

Over the new year's holiday weekend, I read Mobile First by Luke Wroblewski. In the book, Wroblewski talks about leveraging the contraints of mobile development in order to think more holistically and effectively about your users and your software. In his explanation, he suggests using CSS effects instead of images wherever possible in order to reduce the number of HTTP requests that need to be made across a mobile data connection. This got me thinking about CSS support. My CSS skills are OK, but definitely not great. My understanding of support is outdated, which got me thinking: if one drops IE6 (Internet Explorer 6) support, which new CSS properties are generally supported?

While Internet Explorer 6 used to be the darling of the internet world, it has long since become the limiting factor in web application development. If you drop support for IE6, however, a number of new CSS (Cascading Style Sheet) properties become [much more] universally supported. I took some time this morning to look at the following compatibility charts to see what gems I might not be leveraging effectively:

According to these lists, when you drop IE6 support, you get access to:

  • > - Immediate descendant (child) selector.
  • [attr] - Attribute selector (starts with, ends with, contains).
  • :first-child - First child selector.
  • min-width - Minimum width layout.
  • max-width - Maximum width layout.
  • min-height - Minimum height layout.
  • max-height - Maximum height layout.
  • position:fixed - Fixed position layout.
  • .A.B - Multiple class selection.
  • :hover - Hover selector on all elements.
  • clear:both - Full clear support in float layouts.

In addition to properties that are newly supported (if you drop IE6 support), I found a few items that I didn't know were already supported in IE6 and above:

  • :first-line - First line selector of content copy.
  • :first-letter - First letter selector of content copy.

Also, while not exactly a new CSS property, we don't have to worry about the IE6 double-margin / float bug (where margin is doubled if it is on the same side as a float).

The usage of IE6 has gotten so low that I have stopped supporting it unless explicitly necessary on a given project. And while this decision is freeing, I wasn't entirely sure of the true range of benefits that I would be getting. There's definitely some cool and useful CSS properties that I'll be taking advantage of now that I'm moving into the modern age of web browser support.




Reader Comments

Jan 4, 2012 at 9:56 AM // reply »
1 Comments

I stopped supporting IE6 about a year ago, and like you say unless its required I have no intention of even making the site legible in IE6 anymore since its such a low priority browser now.

Welcome to the modern age!


Jan 4, 2012 at 10:00 AM // reply »
11,243 Comments

@Dave,

Yeah, I saw on Twitter this morning that one report puts IE6 usage in the US at just below 1%. Pretty low. I haven't supported IE6 in a while... but didn't really know what I was getting with the exclusion of the browser. I'm definitely looking forward to things like min-height, child selector, first-child, and multiple class selection! Very exciting to finally get that in my repertoire.


Jan 4, 2012 at 10:17 AM // reply »
1 Comments

Yeah - I think, just today, I read that IE6 usage in the US is down to 1%.


Jan 4, 2012 at 10:18 AM // reply »
11,243 Comments

@Jeffrey,

Yeah, it must be a link going around on Twitter. I saw it also.


Jan 4, 2012 at 10:29 AM // reply »
6 Comments

I stopped a year and a half ago too.

I built the front end of our website in IE8/Chrome/Firefox/Opera and tried to make adjustments for IE7 and IE6.

IE7 took a little fiddling but IE6 was too much effort so I decided to detect IE6, disable stuff and print out a message.

Google Analytics says we've still had 65 visits in the last month from IE6 though.

The good news is that Chrome was up to 20% of total visits in that time compared to IE's 60%.


Jan 4, 2012 at 10:40 AM // reply »
11,243 Comments

@Ross,

I could live with 65 disappointed users :)


Jan 4, 2012 at 10:53 AM // reply »
2 Comments

Problem is, my website got over 1,500 IE6 visitors last month alone. I haven't bothered to see how many of them actually went through and bought something but it's still a figure that I can't ignore. In the last year it's over 70,000. Fortunately, the graph is heading downwards


Jan 4, 2012 at 11:01 AM // reply »
11,243 Comments

@Garry,

No doubt, if IE6 is still relevant (as a source of income especially), it cannot be ignored. Hopefully, it will get to the point where the cost of maintenance outweighs the cost of opportunity.


Jan 4, 2012 at 12:16 PM // reply »
1 Comments

I'm launching a site soon that covers things like this. Nice writeup, Ben. :)

here's some more..
http://analogysoft.com/learning/ui-hulk-out/#beyondie6

and my own rough notes:

IE6:
* PNG support!
* position: fixed
* div:hover
* selectors: div:first-child, h2 + p, img[data-fullsize], and ul.main > li
* background-attachment: fixed
* min-width, max-height, etc

IE7
* postMessage
* cross-domain XHR
* native JSON
* data URI
* :before, :after, :focus
* localStorage and sessionStorage
* getters and setters on DOM elements
* querySelector(), querySelectorAll()
* box-sizing!
* display: table-cell, table, etc.


Jan 4, 2012 at 12:22 PM // reply »
11,243 Comments

@Paul,

OOOh, PNG support! I forgot about that one. I only recently started using PNGs (esp. with transparency). I forgot about that whole PNG-Fix thing people used to have to do for IE6.


Jan 4, 2012 at 8:35 PM // reply »
2 Comments

Has anyone tried Google's Chrome Frame yet? I saw that's being used on HTML5 Boilerplate, and it seems like a pretty solid alternative to having multiple browser-based styles.

http://code.google.com/chrome/chromeframe/

Here's where I saw it... http://html5boilerplate.com/

I haven't had a chance to try it out yet...


Jan 5, 2012 at 4:38 AM // reply »
2 Comments

@Jason,

I'm curious to this as well. I'm starting at a new place later this month and I noticed in their analytics that about 1% of its IE users use Chrome Frame ? that's not really worth it is it. (The site has 1,5 unique visits per week.)

I really liked the idea when it was announced but it seems like it never took off and now it's just getting less relevant since IE6 support is over and IE7 support will probably drop quite soon as well (with major sites dropping their support already and Microsoft pushing out forced updates).


Jan 5, 2012 at 4:39 AM // reply »
2 Comments

Not that it should stop you for using them in valid cases but I'd note that multiple class selector and attribute selector are quite expensive selectors to use when it comes to performance on big sites.


Jan 5, 2012 at 4:44 AM // reply »
2 Comments

@Paul, a suggestion: started reading your comment below "IE7" and thought "wait a second, this is IE8 stuff!" - might be worth to clarify for newcomers that this is what they get access to in IE8 when they *drop* IE7 support, not stuff supported in IE7 itself. (Same goes for IE6 in your comment as well, of course)


Jan 5, 2012 at 4:46 AM // reply »
2 Comments

@Paul, a suggestion: started reading your comment below "IE7" and thought "wait a second, this is IE8 stuff!" - might be worth to clarify for newcomers that this is what they get access to in IE8 when they *drop* IE7 support, not stuff supported in IE7 itself. (Same goes for IE6 in your comment as well, of course)


Jan 5, 2012 at 6:45 AM // reply »
1 Comments

In IE 8 its a option called in Private filtering how its work when we use IE 8?


Jan 5, 2012 at 12:19 PM // reply »
17 Comments

@Jason

We have chrome frame implemented for IE6, however, we only have a very small percent of our IE6 users who actually use it (which makes sense.) If they are too lazy or not computer literate enough to upgrade IE6 (or simply hate google), why would they install google chrome frame?


Jan 5, 2012 at 12:39 PM // reply »
2 Comments

@Kevin,

Yeah, I was actually thinking the same thing. A co-worker also mentioned that if they're still using ie6, then they might be on locked-down machines. So if they can't upgrade IE, then they most likely can't install plugins either.


Jan 6, 2012 at 8:20 AM // reply »
9 Comments

An interesting thing I've noticed on the Analytics of my school site is that this year (the academic year starting in September) for the first time ever IE was not the most used browser-- Safari was. The split was something like 36% Safari and 33% IE.

I suppose it's all the Apple devices that students are bringing in to the classrooms.


Dan
Jan 11, 2012 at 1:47 PM // reply »
1 Comments

Even the freedom to add something as versitile and useful as a simple

  • ele[attr]{ ? }

selector to your toolbox is a big deal. I'll trade that for rounded corners and drop shadows in those older browsers any day!


Jan 18, 2012 at 6:28 PM // reply »
1 Comments

@Doug - I noticed that most of the kids where I teach are into Google Chrome....Firefox and IE don't really factor...


Jan 21, 2013 at 7:42 AM // reply »
1 Comments

1 year later.. I'm waiting for "What CSS Properties Are Supported When You Drop IE7 Support" entry.



Post A Comment

Comment Etiquette: Please do not post spam. Please keep the comments on-topic. Please do not post unrelated questions or large chunks of code. And, above all, please be nice to each other - we're trying to have a good conversation here.

Please review the following issues:

Author Name:


Author Email:

Author Website:

Comment:

Supported HTML tags for formatting: <strong>bold</strong>   <em>italic</em>   <code>code</code>







  • Help Wanted - Find Your Next ColdFusion Job
Ben Nadel's Company - Epicenter Consulting Recent Blog Comments
May 23, 2013 at 5:19 AM
Ask Ben: Print Part Of A Web Page With jQuery
How to print also the background color of table cells and table lines ... read »
May 23, 2013 at 3:55 AM
Javascript Array Methods: Unshift(), Shift(), Push(), And Pop()
very interesting and helpful too. ... read »
May 22, 2013 at 5:35 PM
Script Tags, jQuery, And Html(), Text() And Contents()
This is still an issue 2 years later. jQuery is supposed to remediate these cross browser issues, no? I have been unable to find any statement from the jQuery team calling this behavior "by de ... read »
May 22, 2013 at 12:44 PM
Ask Ben: Query Loop Inside CFScript Tags
In cf10, if you call a function that has: local.result = {}; local.result.msg = ""; local.svc = new query(); local.svc.setSQL("SELECT * FROM..."); local.obj = local.svc.exe ... read »
May 22, 2013 at 12:29 PM
Strange Interaction Between DeserializeJson(), ArrayContains(), And Database Values In ColdFusion
@Ben: What version of Java are you using? Also, did you test users.id to see what Java reports as the data type? I wonder if it's not a Java primitive data type, but getting returned as something ... read »
May 22, 2013 at 11:47 AM
Strange Interaction Between DeserializeJson(), ArrayContains(), And Database Values In ColdFusion
@Dana, Awesome - so it looks like this bug was fixed in ColdFusion 10. Thanks so much for double-checking that. ... read »
May 22, 2013 at 11:37 AM
Strange Interaction Between DeserializeJson(), ArrayContains(), And Database Values In ColdFusion
When I c&p and run on cf10, I get: Selected User IDs: 1,4 User 1 selected: YES - YES User 2 selected: NO - NO User 3 selected: NO - NO User 4 selected: YES - YES User 5 selected: NO - ... read »
May 22, 2013 at 11:27 AM
Strange Interaction Between DeserializeJson(), ArrayContains(), And Database Values In ColdFusion
@Tom, Good thought, but no dice. Both of these still exhibit the same behavior: users.id[ users.currentRow ] users[ "id" ][ users.currentRow ] It's just something whacky happening with ... read »
InVision App - Prototyping Made Beautiful With Prototyping Tools