为不同的浏览器使用不同的样式表
Using A Different StyleSheet For Different Browsers?
到目前为止,我使用这个JS来加载一个不同的样式表,如果一个指定的浏览器。但目前,它对我不起作用。它不显示任何样式表。我找不出什么毛病。
<script type="text/javascript">
if ( $.browser.mozilla == true ) {
document.write("<link type='"text/css'" rel='"stylesheet'" href='"css'FF.css'">");
}
</script>
<script type="text/javascript">
if ( $.browser.chrome == true ) {
document.write("<link type='"text/css'" rel='"stylesheet'" href='"css'Chrome.css'">");
}
</script>
上面的注释是正确的,这不再是一个JQuery函数。
当你说你这样做是因为内容看起来不同,尝试使用这些工具代替:
- http://modernizr.com/-将允许您通过什么元素工作的样式,而不是什么浏览器你在
- http://necolas.github.io/normalize.css/-将有助于标准化元素的默认样式
- http://jigsaw.w3.org/css-validator/
- http://validator.w3.org/-有效代码更可能在所有浏览器中工作。
如果做不到这一点,在这里问一个具体的问题(理想情况下使用jsfiddle)——很少有css不能在所有新浏览器上工作,或者没有一个简单的解决方案是不可能的。
还有:现在几乎不可能在所有的浏览器上进行测试,因为有这么多的浏览器,所以知道一个脚本可以在你测试过的所有浏览器上运行,应该会给你信心,它也可以在你没有测试过的浏览器上运行。
这个特性在jQuery 1.9中被移除:http://jquery.com/upgrade-guide/1.9/
在本页中,建议使用此库获得以下功能:http://modernizr.com/
您可以使用JavaScript来检测和更改不同浏览器的css,但是代码有点庞大。
使用链接
不同浏览器的不同CSS文件
Chrome测试纯javascript版本;Firefox。应该在Opera上工作。过去在你想要的页面上。最好放在
的底部document.addEventListener("DOMContentLoaded",browsercss);
function browsercss() {
navigator.sayswho = function () {
var c = navigator.userAgent,
b, a = c.match(/(opera|chrome|safari|firefox|msie|trident(?='/))'/?'s*('d+)/i) || [];
if (/trident/i.test(a[1])) return b = /'brv[ :]+('d+)/g.exec(c) || [], "IE " + (b[1] || "");
if ("Chrome" === a[1] && (b = c.match(/'bOPR'/('d+)/), null != b)) return "Opera " + b[1];
a = a[2] ? [a[1], a[2]] : [navigator.appName, navigator.appVersion, "-?"];
null != (b = c.match(/version'/('d+)/i)) && a.splice(1, 1, b[1]);
return a.join(" ")
}();
var stylesheet = "";
if (navigator.sayswho.indexOf('Chrome') >= 0) {
stylesheet = 'http://example.com/chrome.css';
}
if (navigator.sayswho.indexOf('Mozilla') >= 0) {
stylesheet = 'http://example.com/mozilla.css';
}
if (navigator.sayswho.indexOf('Opera') >= 0) {
stylesheet = 'http://example.com/mozilla.css';
}
loadcss = document.createElement('link');
loadcss.setAttribute("rel", "stylesheet");
loadcss.setAttribute("type", "text/css");
loadcss.setAttribute("href", stylesheet);
document.getElementsByTagName("head")[0].appendChild(loadcss);
}
相关文章:
- 如何根据浏览器宽度动态调整 css 样式表
- 对于IE浏览器,我需要使用什么来禁用Internet Explorer的默认下拉样式
- 为什么浏览器在此样式属性中插入“9”
- 在浏览器中合并并保存加载的样式表到一个文件中
- CSS样式没有显示在浏览器上,但检查器/开发工具说它正在应用
- 从 JavaScript 更改依赖于浏览器的 CSS 样式
- 使用 ReactJS 的跨浏览器弹性框内联样式
- 动态为不同大小的浏览器窗口应用不同的样式表
- 我想恢复浏览器默认样式
- 如何使用 Web 浏览器控件进行样式设置,但具有 C# 中的逻辑
- 如何设置样式/检测从页面中的浏览器本机搜索生成的突出显示框
- 根据浏览器版本删除所有样式
- 如何检测浏览器是否支持开始边框样式
- 浏览器在繁重的工作负载之前不应用样式
- 如何使用angularjs中的自定义指令,使用Unform jQuery插件设置浏览器默认复选框的样式
- 将样式元素动态插入DOM的最后一种跨浏览器方式
- 确定正在使用的浏览器,然后为依赖于该浏览器的类设置样式
- a:hover CSS样式影响包含图像的按钮基于浏览器的行为
- 如何检查浏览器是否解析了动态添加的样式标签
- 为不同的浏览器使用不同的样式表