2012-06-21 6 views
38

Was ich versuche zu tun ist, einen div mit einer bestimmten ID zu markieren, wenn sie von einem Anker auf einem anderen Seite IE bezeichnet worden:CSS- Markieren Sie ein Div, wenn die ID mit einem Anker verknüpft ist?

Benutzer klickt Link href="qw.html#test", wenn die Seite geladen wird, dann ist die div mit der id="test" ist markiert, so dass der Benutzer es deutlich sehen kann.

Ich bin sicher, dass ich ein CSS3-Beispiel gesehen habe, in dem ein div markiert ist, wenn es verknüpft war. Oder war es JavaScript?

Antwort

84

Sie die :target Pseudo-Klasse verwenden müssen sein:

:target { 
    background-color: #ffa; 
} 

JS Fiddle demo.

+3

Das ist es! Yay! Ich muss sagen, dass du deine Sachen kennst. Vielen Dank. –

+3

Warum, es ist ein Vergnügen, und danken Ihnen freundlich; froh, dass ich geholfen habe! =) –

-1

kann Javascript verwendet werden, um dynamisch die Klasse des div hinzufügen/ändern:

Wenn Sie:

<div id="test"></div> 

Javascript-Funktion, durch das Klicken des Ankers ausgeführt:

document.getElementById("test").className += " highlighted"; 

Ergebnis:

<div id="test" class=" highlighted"></div> 
-1

Sie können dies in JavaScript tun. Siehe How to get the anchor from the URL using jQuery?, wie die Anker von URL zu bekommen und dann kann es etwas Einfaches wie

document.getElementById(hash).style.backgroundColor="Yellow"; 
+1

Das ist hilfreich, danke, aber ich mag es, CSS wenn möglich zu verwenden. Danke für die Alternative sowieso. –