URL中的CSS选择器
问题描述:
当你有这样的网址www.example.com/#signup
时,浏览器所做的只是将它的视图集中在ID为signup
的HTML元素上,是吗?URL中的CSS选择器
如果以这种方式聚焦,是否可以更改元素的CSS样式?
例如假设我有一个div元素,ID为signup
,那么如果我输入www.example.com
,div的背景是白色,如果我输入www.example.com/#signup
它是黄色的。就像“强调”注册表单一样。这是可能吗?
答
:target { background-color: yellow; }
:target
psuedo-class正是这样做的。
答
当页面加载并应用相应的css类时,您可以阅读window.location.hash
属性。类似于:
<script type='text/javascript>
function init(){
var hash = window.location.hash.substr(1);
var element = document.getElementById(hash);
if(element){
element.className += " emphasize";
}
}
</script>
<body onload="init()">
...
</body>
+0
谢谢,我会尝试 – federicot 2012-02-25 09:05:23
不错......这款产品是否适用于旧版浏览器? – federicot 2012-02-25 08:41:05
我不确定。说实话,可能不会,但可以通过JS来补救:var a = document.getElementById(location.hash.substr(1));如果(a)a.style.backgroundColor ='黄色';' – 2012-02-25 08:42:14
@John Doe:不是IE8和更老的。 – BoltClock 2012-02-25 14:45:02