2009-06-14 5 views
2

У меня есть код ниже, чтобы проверить, пользуется ли пользователь IE7 ... и ему нужно преодолеть стиль .web_info. Если не IE7, он использует стиль по умолчанию, если его не IE вообще будет использовать ff_styles.css. Кажется, это не работает.css условное форматирование

<link rel="stylesheet" type="text/css" href="../styles.css"> 


<![if !IE]> 
<link rel="stylesheet" type="text/css" href="../ff_styles.css"> 
<![endif]> 

<![if IE 7]> 
<style type="text/css"> 
.web_info 
{ 
left: 450px; 
top: 200px; 
width: 300px; 
height: 60px; 
} 
</style> 
<![endif]> 

Любые предложения? Благодаря

ответ

3

Условные комментарии являются специфичными для IE, и поэтому «<![if !IE]>» не является действительной инструкцией для firefox или любого другого браузера. Кроме того, я хотел бы предложить вам попробовать следующий синтаксис:

<!--[if IE 7]> 
<style type="text/css"> 
.web_info 
{ 
left: 450px; 
top: 200px; 
width: 300px; 
height: 60px; 
} 
</style>  
<![endif]--> 

Одно последнее замечание с моей стороны: С IE7/IE8 в основном совместим со стандартом, эти CSS хаки следует избегать, если это возможно.

Обновление: Благодаря slosd я стою исправлен! Согласно «Supporting IE with conditional comments» вы можете использовать следующее, чтобы скрыть что-то от IE:

<!--[if !IE]>--> 
do something; IE will ignore this, other browsers parse it 
<!--<![endif]--> 

Извините за неудобства, вызванные я!

Полный рабочий пример:

<link rel="stylesheet" type="text/css" href="../styles.css"> 

<!--[if !IE]>--> 
    <link rel="stylesheet" type="text/css" href="../ff_styles.css"> 
<!--<![endif]--> 

<!--[if IE 7]> 
    <style type="text/css"> 
    .web_info{ 
    left: 450px; 
    top: 200px; 
    width: 300px; 
    height: 60px; 
    } 
    </style> 
<![endif]--> 
+0

Спасибо, так как я могу проверить, что это не IE ... а не делать, если firefox if opera и т. Д. – Elliott

+1

! действительный оператор: http://msdn.microsoft.com/en-us/library/ms537512(VS.85).aspx Вы можете использовать его для стилей, которые хотите включить в каждый браузер, но в IE. – slosd

+0

Спасибо, это :) – Elliott

4

не должно это выглядеть

<!--[if IE 7]> 
.. 
<![endif]--> 

и

<!--[if !IE]> 
... 
<![endif]--> 

Обратите внимание, что

<!--[if !IE]> 

никогда не должен давать верно, как эти условные комментарии только интерпретируются по IE.

+2

Причина заключается в том, что для других браузеров, <- antything -> появляется как XML/HTML комментария и не интерпретируется. –

+0

Я не думаю, что он хочет сделать, если это НЕ IE, так что если IE прав –

+0

Спасибо, но в firefox он все еще показывает перезаписанный стиль, а не ff_styles – Elliott

2

Не проверяйте, не является ли браузер не IE, проверьте, является ли он IE7, если он является IE, а затем возвращается по умолчанию. Дополнительная информация: http://www.quirksmode.org/css/condcom.html

Смежные вопросы