Обнаружение браузера требуется только для более старых версий IE, если в других современных браузерах есть проблемы, то это, вероятно, ошибка разработчика.
Один из способов - проверка на стороне сервера:
// returns true on at least a minimal version of IE, or if is not IE
function checkIEVersion( minimal ) {
var ver = true;
if ( navigator.appName == 'Microsoft Internet Explorer' ) {
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null) ver = parseFloat( RegExp.$1 ) >= minimal;
}
return ver;
};
Другой способ заключается в использовании условных комментариев в html:
<!--[if lt IE 9]><html class="ie"><![endif]-->
<!--[if (gte IE 9)|!(IE)]><!--><html><!--<![endif]-->
<!--[if lt IE 9]>
<script src="js/html5.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="css/ie.css">
<![endif]-->
Тогда обычный стиль CSS будет выглядеть следующим образом:
.somestyle {}
И резервный стиль вie.css
будет выглядеть так:
.ie .somestyle {}