На СВА rtphone, все немного сложнее, поскольку разные версии браузера ведут себя по-разному с javascript/css. Например, браузер Android не поддерживает html5 до android os 2.0, а в более поздних версиях os поддерживает HTML-тег html5, но не тег аудио. Аналогичным образом существуют вариации на мобильном сафари. Таким образом, лучший способ - посмотреть на строку user-agent и проанализировать его для версий os/platform/os и действовать соответственно. Я написал небольшую функцию для извлечения некоторой информации из пользовательского агента браузера.
var agentInfo=(function(){
var info={},
ua=navigator.userAgent.split(/[()]/)[1].split(/;/);
info.platform=ua[0] && ua[0].toLowerCase();
info.version=ua[2] && ua[2].match(/[0-9._]+/g)[0];
info.os=ua[2] && (temp=ua[2].match(/[^0-9_.]+/g)[0].toLowerCase()) && (temp=/(windows)|(linux)|(mac)|(iphone)|(android)/.exec(temp)) && temp[0];
return info;
})();
Теперь, основываясь на os/platform/version, вы можете написать соответствующий css.
Здесь есть много хороших ответов, все в зависимости от того, что вы ищете. Думаю, если бы вы уточнили свой вопрос, было бы легче выбрать правильный ответ. (например, почему вам нужно обнаружить определенный браузер? Вместо этого вы хотели обнаружить функцию браузера (например, геолокацию или локальное хранилище?)) – Moses
Я также вижу, что больше людей уходят от обнаружения браузеров/версий, потому что их так много хотел бы поддержать и отслеживать все эти функции для каждого браузера, может стать беспорядочным. Вместо этого лучше использовать обнаружение функции. jQuery некоторое время назад двигался в этом направлении. –