这有什么好处吗?使用 Javascript 检测和定位特定的浏览器 CSS
Is this any good? Detects and target specific browser CSS using Javascript
im只是练习Javascript并炮制了一个Javascript代码,可以检测并为不同的浏览器创建特定的类名,所以我不再需要CSS黑客。 有什么好处吗?
var browser = navigator.userAgent;
if (browser.match("OPR")) {
$("body").addClass("opera");
}
else if (browser.match("Firefox")) {
$("body").addClass("firefox");
}
else if (browser.match("Safari")) {
if (browser.match("Chrome")) {
$("body").addClass("chrome");
}
else {
$("body").addClass("safari");
}
}
这是有效的,是的,但正如老话所说:不要重新发明轮子:)
这些天,世界和他的妻子都在使用Modernizr......http://modernizr.com/
将其包含在您的项目中,它将在整个地方应用类,不仅向您显示正在提供的浏览器,还显示版本。此外,它会告诉您是否启用了JavaScript,这也允许您涵盖该用例。
此外,正如其他人所说,现在我们检查功能而不是浏览器,例如:
if (Modernizr.audio) { //play sounds }
这样,我们就可以测试浏览器执行任务的能力,而不必知道哪个浏览器/平台/配置支持某个功能。内托。
正如Richard A
所说,世界已经从浏览器检查转向Feature Checking
http://msdn.microsoft.com/en-us/magazine/hh475813.aspx
浏览器嗅探是一个坏主意。你正在做的事情的问题是,如果有人使用这里没有提到的浏览器访问你的网站(如Android默认浏览器或Microsoft重新安装PC时提供您使用的利基浏览器之一),他将不会得到任何正文CSS。
如果你有一个人使用旧版本的受支持浏览器(比如他仍在使用XP和IE6),那么在你的情况下,这个人将获得与使用IE11的人相同的CSS。
如果有人禁用了JS(现在很少见,但可能会发生),他也不会得到身体CSS。
尽管每个人都说功能嗅探,但知道您正在处理的浏览器仍然有其用途,尤其是在IE方面。就个人而言,我发现这个条件注释技巧非常方便:
<!doctype html>
<!--[if lt IE 7 ]>
<html class="no-js ie ie6" lang="en"> <![endif]-->
<!--[if IE 7 ]>
<html class="no-js ie ie7" lang="en"> <![endif]-->
<!--[if IE 8 ]>
<html class="no-js ie ie8" lang="en"> <![endif]-->
<!--[if IE 9 ]>
<html class="no-js ie ie9" lang="en"> <![endif]-->
<!--[if (gte IE 10)|!(IE)]>
<html class="no-js">
<!--<![endif]-->
因此,您可以在CSS中添加异常,例如
.ie .nav {
}
- CSS-如何定位内容数据标题
- 如何在CSS或Javascript中定位选定的属性(在HTML选项中)
- css定位困难
- jQuery在使用css定位的元素上调整大小;无法在chrome中正确调整大小
- 在CSS中重叠相对定位的图像
- CSS 画布和导航栏定位
- 将 CSS 定位从百分比转换为像素
- 使用边距在CSS中定位
- CSS z-index不起作用(使用相对定位,使用顶部和左侧)
- Nodejs和express无法定位资源文件(CSS&JS文件)
- CSS定位-制作一个小框架
- JS中的Css定位
- CSS定位表和块
- 如何定位锚点“悬停”事件,就像在 jQuery 中的 css a:hover 一样
- 这有什么好处吗?使用 Javascript 检测和定位特定的浏览器 CSS
- 无法将谷歌+1按钮与CSS定位
- 定位 CSS 类的特定实例
- 根据浮动元素的高度定位 CSS 元素
- 定位CSS悬停菜单的正确方法是什么
- 滑动选项卡定位CSS