CSS & HTML

Browser-Specific CSS: Feature Queries Instead of IE Hacks

By Aigars Silkalns Updated 8 min read

Browser-Specific CSS: Feature Queries Instead of IE Hacks

You no longer need Internet Explorer hacks, because IE11 was retired on June 15, 2022 and no current browser reads \9, *property or <!--[if IE]>. The modern replacement for “browser-specific CSS” is feature detection: write a solid baseline, then layer newer CSS on top with @supports, and let every browser take the best branch it understands.

This article translates the old toolbox (conditional comments, property hacks, conditional classes) into what you use now, with a small demo you can copy.

Two renderings of the same four cards side by side: on the left the baseline with flexbox, a hex accent, plain white cards and badges reading baseline; on the right the enhanced version with grid, OKLCH colours, accent top borders and a gradient glass card
The same HTML with and without the @supports blocks. The left side is what a browser that fails every test shows: plainer, but complete.

What happened to the old IE techniques

Microsoft retired the IE11 desktop application and points users to Edge, which includes an “IE mode” for legacy intranet sites. That mode is configured by enterprise policy for specific sites; it is not something your public stylesheet needs to target. The old techniques map to modern ones like this:

Old technique Why it existed Use instead
Conditional comments Load a fix only for IE6-8 Nothing. Comments are inert in current browsers.
\9, *, _ hacks Exploit parser bugs per IE version @supports for the feature, not the browser
Conditional html classes Scope fixes to .ie7 .box @supports, plus CSS.supports() in JS only when a script needs to know
Separate IE stylesheet Isolate fixes Cascade layers (@layer) to organise baseline and enhancements, as shown below

The principle: test the feature, not the browser

User-agent sniffing and parser hacks break the moment a browser updates. A feature query asks the only question that matters: “Do you understand this declaration?” MDN lists @supports as widely available in Baseline, so it is safe to use as the gate for everything else.

/* 1. Baseline: works everywhere */
.cards { display: flex; flex-wrap: wrap; gap: 1rem; }
.card  { flex: 1 1 14rem; }

/* 2. Enhancement: only where grid is understood */
@supports (display: grid) {
  .cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
  }
}

Because the baseline is complete, a browser that fails the test is not “broken”, just plainer. That is progressive enhancement, and it replaces the old habit of fixing the layout after it broke.

Detecting values, not just properties

A feature query accepts a full declaration, so you can test a specific value such as a new colour space. Here the accent colour is upgraded to OKLCH only where oklch() parses, and falls back to a hex value otherwise:

:root { --accent: #2f6fed; }

@supports (color: oklch(60% 0.2 260)) {
  :root { --accent: oklch(58% 0.19 260); }
}

Often you do not need @supports at all. If a browser drops a declaration it cannot parse, a plain fallback line before it works: background: #2f6fed; background: oklch(58% 0.19 260);. Reach for @supports when the enhancement involves several declarations that must succeed or fail together.

Detecting selectors with selector()

Invalid selectors are dangerous: one unknown selector in a comma-separated list invalidates the whole rule. The selector() test lets you guard it:

@supports selector(:has(img)) {
  .card:has(.badge) { border-top: 4px solid var(--accent); }
}

There is no fallback branch here, and that is deliberate: a browser without :has() simply keeps the plain card, which is the baseline. If you want a refresher on what selectors can do, see The Power of CSS Selectors and How to Use Them.

Combining tests

Use and, or and not. Wrap not in parentheses when you combine it, and add parentheses whenever you mix and with or, otherwise the whole query is invalid and ignored.

@supports (backdrop-filter: blur(4px)) and (color: color-mix(in oklab, red, blue)) {
  .card.glass {
    background: color-mix(in oklab, var(--paper) 70%, transparent);
    backdrop-filter: blur(8px);
  }
}

For the opposite case, @supports (not (display: grid)) { ... } targets browsers that fail a test, but a complete baseline usually makes that branch unnecessary.

Keep decorative effects like this one in the “fine to lose” category. If the content stays legible without it, you never need a fix.

Testing from JavaScript and when importing

The same conditions are available in script through CSS.supports(). Pass a single condition string, and you can test selectors with selector() exactly as in CSS:

if (CSS.supports('selector(:has(a))')) {
  // safe to rely on :has() in script-driven logic
}

CSS.supports('display', 'grid');        // property and value form
CSS.supports('(color: oklch(60% 0.2 260))'); // full condition form

This differs from Modernizr-style class toggling. Modernizr ran a bundle of tests on load and added classes such as no-flexbox to <html> so your CSS could branch on them. That costs a script, delays styling until it runs, and duplicates what the browser already does natively. Use @supports for styling, and reach for CSS.supports() only when JavaScript itself needs to choose a code path.

You can also gate a whole stylesheet. The supports() condition on @import loads a file only when the browser passes the test:

@import url("grid-layout.css") supports(display: grid);

Remember that @import must come before other rules and that chained imports load more slowly than a single bundled file, so use it sparingly.

Organising baseline and enhancements with cascade layers

Declare the layer order once and each file or block stays independent of specificity battles. Put the baseline in the earlier layer and enhancements in the later one, so an enhancement wins without needing a more specific selector:

@layer baseline, enhancements;

@layer baseline { .cards { display: flex; flex-wrap: wrap; gap: 1rem; } }

@layer enhancements {
  @supports (display: grid) {
    .cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
  }
}

Deleting a workaround later is then a matter of removing one block.

Fonts and media queries

@supports also has font-tech() and font-format() functions, for example @supports font-tech(color-COLRv1). For ordinary font loading, though, the @supports reference on MDN recommends listing formats in one src descriptor from most to least preferred rather than gating each one.

For user preferences, use media features rather than detection: prefers-reduced-motion, prefers-color-scheme and forced-colors. They describe the person, not the browser. For example, give cards a visible border when Windows High Contrast mode removes shadows and backgrounds:

@media (forced-colors: active) {
  .card { border: 2px solid CanvasText; }
}

When you really must target one engine

Rarely, a single engine has a bug that no feature test can express. Prefer to fix the root cause (many layout bugs come down to units, as in CSS Fix for iOS vh-unit Bug, and modern viewport units solve that class of problem). If you must isolate, treat it as a last resort:

  • Use an engine-specific feature inside @supports (for example a -webkit- prefixed property that only WebKit and Blink implement) and add a comment explaining the bug and the browser version.
  • Put the workaround in its own @layer or file so it is easy to delete once the bug is fixed.
  • Re-test after browser updates. Engine hacks are the first thing to rot.

Putting it together: the complete demo

Below is the full demo behind the screenshot, ready to copy. The HTML is four cards; the CSS is a flexbox baseline plus four independent enhancements. Each badge’s text comes from a ::before rule that lives inside the matching @supports block, so it only changes to the feature name when the test passes. Otherwise it keeps the default “baseline” label.

<div class="cards">
<div class="card"><h3>Grid layout</h3><p>Flexbox is the baseline; grid takes over when supported.</p><span class="badge"></span></div>
<div class="card"><h3>OKLCH colour</h3><p>The accent and border colours are upgraded only where oklch() parses.</p><span class="badge"></span></div>
<div class="card"><h3>Parent styling</h3><p>Cards containing a badge gain an accent top border when :has() is understood.</p><span class="badge"></span></div>
<div class="card glass"><h3>Frosted glass</h3><p>Decoration that is fine to lose.</p><span class="badge"></span></div>
</div>
:root { --accent: #2f6fed; --ink: #1b1f2a; --paper: #fff; }
* { box-sizing: border-box; }
body { margin: 0; padding: 2rem; font: 16px/1.5 system-ui, sans-serif; color: var(--ink); background: #f3f5f9; }

/* Baseline: works everywhere */
.cards { display: flex; flex-wrap: wrap; gap: 1rem; }
.card { flex: 1 1 14rem; padding: 1.25rem; background: var(--paper); border: 1px solid #d5dbe6; border-radius: .75rem; }
.card h3 { margin: 0 0 .5rem; }
.badge { display: inline-block; margin-top: .5rem; padding: .15rem .6rem; border-radius: 99px; font-size: .8rem; background: #e6e9f0; }
.badge::before { content: "baseline"; }

/* Enhancement 1: grid */
@supports (display: grid) {
  .cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
  .card:nth-child(1) .badge::before { content: "grid"; }
}

/* Enhancement 2: OKLCH */
@supports (color: oklch(60% 0.2 260)) {
  :root { --accent: oklch(58% 0.19 260); }
  .card { border-color: oklch(85% 0.03 260); }
  .card:nth-child(2) .badge::before { content: "oklch"; }
}

/* Enhancement 3: parent styling with :has() */
@supports selector(:has(img)) {
  .card:has(.badge) { border-top: 4px solid var(--accent); }
  .card:nth-child(3) .badge::before { content: ":has()"; }
}

/* Enhancement 4: frosted glass */
@supports (backdrop-filter: blur(4px)) and (color: color-mix(in oklab, red, blue)) {
  .card.glass {
    background: linear-gradient(135deg, var(--accent), #8fb4ff);
    color: #fff;
    backdrop-filter: blur(8px);
  }
  .card.glass .badge { color: var(--ink); background: color-mix(in oklab, var(--paper) 80%, transparent); }
  .card.glass .badge::before { content: "backdrop-filter"; }
}

@media (forced-colors: active) {
  .card { border: 2px solid CanvasText; }
}

Each block stands alone, so a browser that fails one test still gets the other three. That independence is the main design rule: never nest enhancements inside each other unless one truly depends on the other.

Structure the HTML with ordinary, semantic elements and keep every enhancement purely visual. When a feature changes meaning or behaviour rather than appearance, such as a layout that hides content, make sure the baseline still shows that content.

Testing without owning every browser

  1. Check each feature you gate on caniuse.com or MDN’s Baseline badge before deciding whether a fallback is even needed.
  2. Test in current Chrome, Firefox and Safari, plus a real phone.
  3. Turn the enhancement off in DevTools to preview your baseline: it must still be usable and readable.
  4. Use a cloud testing service only for the specific browser versions your analytics show real visitors on.

Quick checklist

  • Baseline first, enhancement second.
  • Gate with @supports; never sniff the user agent.
  • Use selector() for new selectors so one unknown never kills a rule.
  • Match user preferences with media features.
  • Delete old IE hacks, conditional comments and ie.css files from legacy themes.

For layout fundamentals that make baselines easy, read Master CSS Flexbox in 5 Simple Steps and 5 Useful CSS Tricks for Responsive Design, and browse more ideas in Level Up Your CSS Skills With These 20 Pro CSS Tips. For a ready-made example of a CSS-only component, see Bootstrap 5 Toggle Switch Styles (CSS Only).

90 comments from the archive
  1. I prefer the last option, but I’d use a serverside browser detection in stead of the conditional comments.

  2. Why don’t you use some valid hack for W3C compatibility (for IE6 and 7) ? ;)
    .class{…} /*All Browsers*/
    * html .class{…} /*IE6*/
    * + html .class{…} /*IE7*/

    It’s better. :)

  3. Been using number three since Paul Irish wrote about it on his blog. I believe its the easiest and most maintenance worthy solution.

    Well known resource, but a good summary none the less.

  4. The 2nd option is my most used because I usually serve the same basic stylesheet for IE6 and 7 now. But I find a good use for option 3 whenever a CSS3 feature and its consequent absence in IE8 causes some problem (such as a loss of contrast, for example).

  5. I agree websites should be USABLE with IE. That does not mean they should look the same (or be pretty at all), especially with IE6 and 7. If one uses a 10 year old browser he/she should know better than to complain about eye candy… and he will be used to see 90% of websites displaying like crap anyways. Much better is to EXPLAIN to clients and bosses etc. why they should stop to use an old and unsecure browser. Continuing to give IE user the same exact feel as the other users will not make the Internet a better place and will slow down the change to modern browsers.

  6. I prefer to use #3 as my method to control that madness that is IE. Thanks so much for the great tips. I refer back to this site often for code-related questions!

  7. Thanks for this article, it is very useful indeed, now that I finished my app’s design for all other browsers, I have just started on making it work on IE as well. Do you have happen to have an article that lists the css properties that renders differently or use different syntax ( or won’t render at all) for IE than for the other browsers?

    Or is there such a smart javascript libraries that just detects the browser being IE and converts all proper CSS syntax to IE compatile syntax?

    THANKS!

  8. The last way to css specific for the internet explorer is new for me. You write: “it doesn’t cause any validation errors”. This is great. I will remember me this way!

  9. I’ve never seen #3 before. Definitely sounds like a great way to handle different versions of IE. Thanks!

  10. I’ve never seen the third option before. It’s certainly novel, but it means that all stylesheets have to be served even when the majority won’t be used. The first option is still the most efficient, I think. Using a combination of the first and third might be ideal depending on the situation and preference.

    1. Putting all stylesheets into one is a much better practice anyway. Less http requests increases load better than a few less lines of code.

  11. In all honesty, I would say that option 1 is really the only valid way to handle things correctly. #2 relies on bugs that might be fixed or might behave differently in future versions and #3 requires that you load IE specific CSS rules for all browsers.

    Also, it’s a really bad idea to use [if gte IE 8] as it will likely break when future versions of IE come out.

  12. Hi Nick,
    Thanks for the #3! I’ve been stuck for 6 hours, find a way to do it. Now I can relax with the rest. Thanks!

  13. I never see number 3, you can put it for Internet explorer 7,8 and 9? I didn’t know that

  14. There are very useful and problem solving tips in this article.IE is really becoming a headache for developers for the same reason that is mention here that people are still using it.

  15. this one saves me lot of time while implementing html pages….
    Thank you

  16. Tips 2 & 3 have saved us considerable time on a current web design and development project. Much appreciated, team @ perceptant101.com

  17. Nice write up thanks – hadn’t considered solution #3 before , but it seems really elegant and simple and leverages the benefits of the cascading nature of css.

  18. there is merit in all three but I agree with the post above me that number 1 is the best, it has the least likely chance of having issues.

    I will add though that I am so sick of cross browser issues, why they cant just get along is beyond me lol

    Trevor Seabrook
    Mythic Tech – Toronto Web Design

  19. Except for no. 1, the other 2 solutions are not so clean – first, better to avoid hacks as they make your code less cleaner (and once IE6 is old enough not to require anymore our support & attention, it will be rather tedious to go through a big css file and start cleaning all the useless code.)
    No. 3 can actually be tweaked to make it a bit easier – instead of giving a class to the html, you can wrap your whole html code in a for example, and then in your css you’d use it like this:
    #ie6 .example {etc}

    However, the issue I have with both these options is that they turn your code into an ugly soup (and no. 2 makes your css invalid). The first option allows for a nice & clean CSS, while all the IE specific food goes in a separate file.

  20. forgot to put some spaces in my example! – what I meant was:
    … you can wrap your whole html code in a for example

  21. I dislike internet explorer, whatever version it will always still ugly.. i would rather told my boss how ugly IE is.

  22. I know this hack only for IE8: font-size: 12px/; using this / before semicolon.

  23. Though Example 3 seems like a good solution, I wonder how well it would work if you have a large site where there are a lot of styles and loading all variations for all browsers may simply put a dent on performance.

    I like Example 1 because it loads only when needed. I suppose if the site is small enough, it may not be an issue.

    Good post for sure..

  24. Thanks for sharing! We use #3. We also told our clients We will stop supporting IE7 or below.

  25. Thank you. This helped fixed my CSS issues on IE browsers.

    Looking for high quality web design services and CMS development team? I tried http://www.webdesign.8rf.org they also have cheap unlimited website hosting plan.

  26. Good ideas – I use IE myself simply out of habit but I find a lot of pages I go to don’t load properly and I am guessing that your discussion here is part of the reason why. But when it is so easy to upgrade your current version of IE why don’t more people do it?

  27. Why can’t huge organisations like the NHS (UK) and Military (you know who you are) just get their frickin acts together and stop using IE6? AAAARRRGHHHHH

  28. SEO Directory
    Free to Add Your Website Our easy to use SEO Directory and tutorials make search engine optimization accessible to everyone.

    add2seo.com

  29. Great article. I think the design community needs to stand united against old browsers like IE6 which are holding back the web.

    If all web designers stop supporting the old technology, eventually users loyal to the old browser will have to upgrade.

    I wish to some day see the day when we can move forward with HTML5, CSS3 and newer, more efficient technologies.

  30. #3 looks very good. Sometimes it’s adequate to use a CSS3 selector to differentiate between IE and normal browsers, thus keeping the nasty IE conditional tags out of HTML. I also used the “*” and “_” tricks, but now they stopped working, no idea why?

    Regards.

  31. I used to use conditional statements in my designs just to do the CSS work arounds correctly but then I decided that if Microsoft could be bothered in the last 10-12 years to even attempt to create a browser that is close to the web standards of the day then I’m not going to spend time seperating out my IE CSS. So I’m option 2 all the way now!!

  32. Thanks for the post, I’m new to web design so this helps a lot (Stupid IE 6)… There is one other option to consider? Just add a link for users to download a real browser like Firefox, Chrome, Safari, Opera etc. :P

  33. I remember being initially relieved at finding these hacks years ago. They solved the occasional inconsistency at a time in the web’s history when rendering engines had a forgiving attitude towards weak standards compliance. This was mainly because IE was overwhelmingly the dominant browser and however things rendered in IE was a practical (if not a de facto) standard. However the fact that we are still having to use these hacks makes me upset.

    I sometimes like to do a thought experiment where I put myself in the shoes of the developers at Microsoft who are responsible for IE and ask myself how I’d approach the requirement to implement those IE conditional statements and version specific CSS hacks in the rendering engine. I’m sure the initial justification would have been that it is doing a service to the web community by giving them a handy backdoor to manipulate the rendering behaviour in the *rare* case when it might be needed. I’m sure back when IE6 was being created they never thought the use of these hacks would be so ubiquitous. But it begs the question as to why you’d be satisfied with a browser release that leaves so many standards insufficiently implemented that such a backdoor is necessary?

    I’d like to think that in that position I would have advocated for a more standards compliant core product. I understand there are constraints and pressures in any project, and a release of the most widely used browser in the world must be a mind bogglingly complicated undertaking, so let’s say IE6 was unavoidably compromised. I’m sure I would want to put those compliance issues to bed in IE7… or IE8. If I was the developer implementing the same code in IE7 that interprets these hacks I’d definitely be upset that a product that I’m involved in was still compromised to such an extent that the hacks were necessary.

    By IE8 though there’d be an even worse thing nagging my conscience, it would be the thing that would truly deny me the pride I should feel in working on such a widely used and significant piece of software (as IE undeniably is). That would be the knowledge that countless numbers of my fellow web developers are going to be putting these conditional hacks into their website code for years to come, most would be doing it because they are conscientious, diligent workers who want their client’s sites to be as good as it can possibly be. I’d feel most ashamed for what I’m forcing those web developers to do. If only I’d cared about my own product enough, those guys’ jobs would have been quite a bit easier.

  34. I prefer to just use the CSS3 :not pseudo class

    #content {
    /* css for all browsers */
    }
    #content:not(#ie7or8) {
    /* fancy css for modern browsers, that ie6 and ie7 won’t see */
    }

  35. Also, I would do IE fixes buried in the .js file. It’s radical and not too subtle, but has 2 advantages: none of the HTML/CSS code is polluted by IE fixes and we can use CSS3 selectors for IE with jQuery.

  36. Why not use something like Modernizr that adds classes to the html tag (like what’s done in the HTML5 Boilerplate) to target specific versions of IE? I’ve found that to be the easiest solution for me.

  37. Wow that was Cool for IE….and I a looking forward for more Cool IE CSS combination effects…

  38. I have always had trouble making a good website design layout that is also compatible with IE. All other browsers are not a problem, but IE usually is the headache.

  39. I find using a chunk of css to reset browser defaults helps a lot, even with ie7. We don’t support ie 6

  40. Someday, my dreams will come true and I’ll wake up and Internet Explorer 28 will be out and finally standards compliant :)

    Good tips, always have to include some minor adjustments to make my designs sing in IE6/7/8 … stupid IE, you would think that Microsoft with all the resources in the world would get their together… I think they’re just punishing the world by holding web standards back because they lost the ant-trust lawsuit…

  41. obviously you didn’t test your hacks before you posted them.
    \9 hits ALL versions of IE (including 9)

  42. Very useful post. I agree with Jon. I hate to make special code ONLY for IE6 which is one of the worst browsers EVER! But either I like it or not, it needs to be done until this browser fades away completely (hopefully) I have been looking for a post that gives tips for IE6. I will share it in Facebook. Thanks

  43. Yeah! I very much agree that most of the users are still using IE.And thanks for the awesome tips.

  44. Unfortunately, there are too many people who use IE and I think that with IE9 will be the same old story. MS please quit producing garbage software, thks.

  45. Indeed IE and all its versions are a pain…everywhere. Thanks for these IE specific CSS solutions

  46. Recent surveys, children of depressed mothers’ negative patterns of activity occurring in different brain reveals. This is for children of mothers who take more risks in the future is going to have depression.

  47. This information is clear, concise, and well put together.

    I hate IE.

    I just made the following on my website, using your information:


    Your version of Internet Explorer is incompatible with this website.
    Please update or use a different internet browser (e.g. Mozilla Firefox)

    =)

  48. What is friendship?Mont Blanc PenWhy do we call a person our friend? When do we call someone a very good friend?

  49. Thank it working correctly but what about Chrome, Safari, Firfoxe, is there any code for same way !!!!

  50. Many thanks, very useful. Can’t wait until the day IE loses its market share.

  51. Your article is very informative. Thanks for posting this. Seriously I hate IE. Also I have some question about the codes for Chrome and Firefox? is there any code for them? and if it is possible for you to share me more about it that would be great.

  52. In some cases you coud use !important marker to trick IE browsers. The advantage of using !important is that your CSS file remains valid.
    Thanks for good concise post.

  53. Great. We been having some problems with a Joomla site not displaying well in IE. Why has Microsoft had so much trouble with html over the years? ;-) . This article will be bookmarked and emailed to colleagues!

    1. I do the same question. Unbelievable how so big company can still produce crap such as IE. Each new version, the problems remains. What the hell they do?
      Great tip, no doubt.

  54. Great tips. Thanks for bringing that out. It’s very helpful =) keep up!

  55. going crazy with this different browser. why there is not a unique css code for all?

  56. Option 3 does not seem to work with IE9. any other suggestions?

    Thanks in advance!

  57. Hacks and Fixes for IE perpetuate the use of this obsolete browser and stagnate web page development. Do not use IE hacks. Encourage your site visitors to upgrade their browser.

    1. Bikeman, spoken like a true self-centered, arrogant web developer. Grandma Gertie is NOT going to want to upgrade her browser. Hell, she barely was able to figure out the ‘computer thing’ and just learned how to check her email. If you’re a true professional, you will find a way to code the CSS to deal with IE. It’s part of our job. Deal with it. Supposedly, you know more than Grandma Gertie. Prove it.

      1. Not only does Grandma Girtie now want to nor know how to upgrade their browser but MANY corporations were required to custom build their online applications for internal use for IE6 because it was such a BAD browser. Many of those companies don’t want to redesign their apps *again* and force their employees to use IE6 still to this day.

  58. Excellent post, really very helpful, thanks for sharing it here, i really found this useful for running the CSS file.

  59. IE still have so many problems with css, our site is working fine in IE7, IE8 but had some problem with IE9, didn’t expected IE9 to be worse than earlier IE :)

    Thanks for the tips.

  60. Thank you so much. Finding this post saved me from a frustrating font problem I had on my site with only IE9 . I used #2 (\9;)and it worked beautifully. This will definitely be a saved post in my tips folder. Cheers.

  61. HI, I want to recommend http://www.elcoplanet.com to all of you who are hosting your pages or you are doing reseller web hosting business, I have been using acvilla.net ixwebhosting.com etc. with years and all they have expencive prices and lot of limitations,www.elcoplanet.com offers lowest prices and high class performances of hosting Reseller Hosting, Master Reseller Hsoting, Alpha Master Reseller Hosting and Their special product Super Alpha Master Reseller Hosting

  62. Hallo, I am interested for Alpha Reseller and Super alpha reseller web hosting..I wanted to ask does http://www.elcoplanet.com offer these plans ? I can see plans listed on their page but I wanted to ask do you or some one else have experience with Alpha Reseller and Super alpha Reseller plans..
    Because I really need unlimited web hosting space and web hosting bandwidth and I can see that they have cheapest prices..and also some promotions !

  63. Do you have a spam problem on this site; I also am a blogger, and
    I was wondering your situation; many of us have created some nice procedures and we are looking to exchange solutions with others, be sure to shoot
    me an email if interested.

  64. I have been using acvilla.net ixwebhosting.com etc. with years and all they have expencive prices and lot of limitations,www.elcoplanet.com offers lowest prices and high class performances of hosting Reseller Hosting, Master Reseller Hsoting, Alpha Master Reseller Hosting and Their special product Super Alpha Master Reseller Hosting

  65. It’s time to re-think this hack:
    top: 260px\9; /* All IE versions. Chrome sees this now too! It complains that “top: 260px 9;” is an invalid CSS rule, due to the space. */

  66. Excellent post. I will try to make this kind of specific CSS for Internet Explorer to make it fast :D

  67. First method is good, because it will be good for debugging and adding new styles for ie, if we keep it in a separate file.

Comments are closed on this article.