Ironsides24
Ironsides24

Reputation: 37

Conditional Comment vs Javascript

Currently I am working on a webpage and need to set a style only for IE. I am using a conditional comment:

<!--[if IE]>
    <link rel="Stylesheet" href="../../IEstyles.css" rel="Stylesheet" />
<![endif]-->

Is this the best way of doing this or would using javascript be the best practice?

Upvotes: 1

Views: 178

Answers (7)

Ry-
Ry-

Reputation: 224867

That's nearly the best practice. You should probably instead be checking for [if lt IE 9], because IE 9 supports CSS pretty well, but definitely don't use browser-sniffing JavaScript. That's almost always the worst solution to a problem.

Upvotes: 1

Code Maverick
Code Maverick

Reputation: 20415

Html5Boilerplate is the site for best practices and here's what they suggest:

<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7 ]> <html class="no-js ie6" lang="en"> <![endif]-->
<!--[if IE 7 ]>    <html class="no-js ie7" lang="en"> <![endif]-->
<!--[if IE 8 ]>    <html class="no-js ie8" lang="en"> <![endif]-->
<!--[if (gte IE 9)|!(IE)]><!--> <html class="no-js" lang="en"> <!--<![endif]-->

This allows you to keep one stylesheet and just prepend any of the above classes to target a specific conditional hack.

Upvotes: 1

Indrek
Indrek

Reputation: 887

Javascript can be disabled, so I'd say conditional comments are the best way to serve IE-specific CSS.

Upvotes: 0

kolin
kolin

Reputation: 2344

Using the conditional would be the best idea, as you have no guarantee that the visitor won't have javascript disabled, or scripting disabled. Where as this will only work in IE browsers, other browsers will ignore it, where as all browsers will process Javascript, whether it's for IE or not.

Upvotes: 0

0b10011
0b10011

Reputation: 18785

Use Conditional Comments. They prevent other browsers from having to download/run any scripts, yet have the benefit of always working for IE users.

Upvotes: 0

Rory McCrossan
Rory McCrossan

Reputation: 337560

As this is just a stylesheet, and therefore a UI concern, I would avoid javascript and just use the conditional comments to target IE. This then also gets around the issue of people who have javascript disabled, should you try and do some kind of browser sniffing.

Upvotes: 0

Widor
Widor

Reputation: 13275

Not everyone has JavaScript enabled - HTML comments are supported in every mainstream browser that I know of.

Upvotes: 0

Related Questions