分别针对不同的pc和mac并调用不同的样式表

时间:2012-05-22 01:33:49

标签: wordpress cross-platform

首先是该网站的链接:www.fish-fry.com

我知道这被认为是不好的做法,但我已经处理了这个问题大约一个月了,我建立的网站现在100%完成除了这个问题,我得不到报酬,直到它解决了。

从Mac查看时,网站在所有主流浏览器上看起来都不错,从PC上查看时,我的导航菜单和搜索栏输入都低了2个。

我发现一些代码似乎会让我在平台上调用不同的样式表,但它对我不起作用,想知道这里是否有人有任何见解:

<script type="text/javascript">
} if (navigator.userAgent.indexOf('Windows NT')) {
    document.write('<link rel="stylesheet" type="text/css" href="<?php bloginfo('template_directory'); ?>/style-windows.css" />');
}
else {
    document.write('<link rel="stylesheet" type="text/css" href="<?php     bloginfo('template_directory'); ?>/style.css" />');
}
</script>

非常感谢任何帮助!


@sarnold,没有验证错误。

虽然移除关闭括号似乎也不起作用。最初它搞砸了mac的外观,所以我把它改成了:

<script type="text/javascript">
if (navigator.userAgent.indexOf('Windows NT')) {
    document.write('<link rel="stylesheet" type="text/css" href="<?php bloginfo('template_directory'); ?>/style-windows.css" />');
}
elseif (navigator.userAgent.indexOf('Mac OS')) {
document.write('<link rel="stylesheet" type="text/css" href="<?php bloginfo('template_directory'); ?>/style.css" />');
}
</script>` 

但是,当我从Windows打开chrome或firefox时,它仍在从默认样式表中读取。


是否有人熟悉上述脚本?不知道为什么我的电脑仍在引用Mac样式表。 在此先感谢您的帮助!


我也尝试过这个脚本,似乎仍然是,这两个平台只引用'style.css'

<script type="text/javascript">

/***********************************************
* Different CSS depending on OS (mac/pc)- © Dynamic Drive (www.dynamicdrive.com)
* This notice must stay intact for use
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/

var csstype="external" //Specify type of CSS to use. "Inline" or "external"

var mac_externalcss='http://www.fish-fry.com/dev/wp-content/themes/FISH-FRY-MUSIC-AND-SOUND-CUSTOM-THEME/style.css' //if "external", specify Mac css file here
var pc_externalcss='http://www.fish-fry.com/dev/wp-content/themes/FISH-FRY-MUSIC-AND-SOUND-CUSTOM-THEME/style-windows.css' //if "external", specify PC/default css file here

///////No need to edit beyond here////////////

var mactest=navigator.userAgent.indexOf("Mac")!=-1
if (csstype=="inline"){
document.write('<style type="text/css">')
if (mactest)
document.write(mac_css)
else
document.write(pc_css)
document.write('</style>')
}
else if (csstype=="external")
document.write('<link rel="stylesheet" type="text/css" href="'+ (mactest? mac_externalcss : pc_externalcss) +'">')

</script>

有任何帮助吗?这让我开始香蕉:|

3 个答案:

答案 0 :(得分:2)

您的问题是脚本开头的迷路右括号

答案 1 :(得分:1)

作为对未来项目的建议,您可能希望使用重置样式表来同步所有浏览器。这有助于避免看到头痛。其中任何一个都是一个很好的起点:

雅虎的重置可能是最老的,也是最过时的。搜索过去一年中最新,最受欢迎的重置样式表,以查找您选择的毒药。

答案 2 :(得分:0)

我想从上面的评论中你发现了样式表中的问题并修复了它 - 这是个好消息。

但是对于那些有问题的浏览器的情况,Thematic开发人员使用的方法非常优雅:

他们在主题中创建了一些代码,为 body 添加样式,如果需要,可以将样式挂钩到整个站点。这是一个真实的例子:

<body class="home page page-id-5 page-template-default windows firefox ff1">

这意味着您可以拥有一个带css的样式表:

.firefox #menu { margin-top: 2px; }
.IE6 #menu { margin-top: 4px; }

如果您想与不同的用户代理一起玩,请查看主题主题网站,或者如果您愿意,请访问my website