-2

我有一个 jQuery 脚本来找出浏览器的分辨率,然后更改它的 css。

if ((screen.width>=1024) && (screen.height>=768))
{
 alert('Screen size: 1024x768 or larger');
  $("link[rel=stylesheet]:not(:first)").attr({href : "detect1024.css"});
}
else
{
  alert('Screen size: less than 1024x768, 800x600 maybe?');
  $("link[rel=stylesheet]:not(:first)").attr({href : "detect800.css"});
}
});

你能帮我了解它的实际功能吗?

是什么:not(:first)意思?请解释。

谢谢。

4

2 回答 2

1

实际上,这意味着您选择具有与单词匹配link的属性的每个元素,但排除第一个找到的结果:)relstylesheet

因此,如果您在容器中有三个元素并尝试使用它们来选择它们,:not(:first)您将收到第二个和第三个,但排除第一个(!)一个

不确定这是否是您想要的...但是如果您在标头中有多个链接属性并且除了第一个之外的所有属性都设置为该 href 您可能(!)最终请求/检查了服务器/缓存的 CSS几次

媒体查询(thirtydot 的评论)也是个好主意(评论 +1)

于 2012-06-23T13:45:31.557 回答
0

尝试使用交互式控制台,例如 Chrome 的检查器中的控制台或 Firefox 中的 Firebug。只需输入$("link[rel=stylesheet]:not(:first)")并查看是否有任何元素匹配。

编辑:Thirtydot 关于使用媒体查询的评论也是一个很好的评论,如果您要拥有多个样式表,这篇文章可能会有一些有用的信息。

于 2012-06-23T13:43:38.190 回答