28172 sujets

CSS et mise en forme, CSS3

Bonjour,
J'ai trouvé ce code.

.sites a{color:black}

var sites = ["https://www.google.com/","https://www.google.fr/","https://mail.yahoo.com/","https://www.amazon.com/","https://twitter.com/","https://www.paypal.com/","https://www.facebook.com"];

function sitesV() {
	for (var i = 0; i < sites.length; i++) {
    		var lien = document.createElement("a");
    		lien.id = "id" + i;
    		lien.href = sites[i];
    		lien.innerHTML = sites[i];

    		document.write('<style type="text/css">');
   		document.write('#id' + i + ":visited {color: #FF0000}");
    		document.write('</style>');

    		document.body.appendChild(lien);
    		var color = document.defaultView.getComputedStyle(lien,null).getPropertyValue("color");
    		document.body.removeChild(lien);

    		var item = document.createElement('li');
    		item.appendChild(lien);
    		document.getElementById('sites').appendChild(item);
    	}
}

<div id="sites"></div>

sitesV();



J'aimerai savoir ce qu'il faut écrire en CSS si on veut seulement que
<a id="id1" href="http://google.com"><p>Google</p></a>

se mette en violet s'il a été visité.

Merci beaucoup !
Salut, tu cherches à faire quoi exactement ?

Parce que le code m'a l'air bien compliqué pour pas grand chose Smiley ohwell

Quelques remarques en passant :
<div id="sites"></div>

implique que ton css sera avec un # et pas un . donc :
#sites a{color:black}


Ensuite je ne vois pas bien l’intérêt de générer les liens et les styles en boucle à la volet et avec des id.

Globalement on pourrait simplifier avec une classe :
lien.className="test";

#sites .test:visited{color:green}


et en dégageant tout le passage :

document.write('<style type="text/css">');
document.write('#id' + i + ":visited {color: #FF0000}");
document.write('</style>');
Merci,
Donc, j'aimerai que les liens visités présents sur ma page se mettent en violet s'il ont été visité.
Et oui, le script que j'ai trouvé est compliqué c'est pourquoi j'aimerai le simplifier.
C'est ce que je pensai mais ça ne fonctionne pas.
<a id="id1" href="http://google.com"><p>Google</p></a>

a:visited{color:purple}


Ca ne fait rien.
J'ai trouvé, c'est parce que je lui ai donné un autre style et que je pensai qu'il changerai mais il ne le fait pas.

<a id="id1" class="all" href="http://google.com"><p>Google</p></a>

.all{color:black}
a:visited{color:purple}


Comment faire pour que ça change ?

Merci !
Modérateur
Salut,

C'est un soucis de poids de sélecteur. il faut simplement utiliser le même sélecteur que pour la couleur :
.all{color:black}
.all:visited{color:purple}


[EDIT] Oula non en fait j'ai répondu trop vite. Normalement ca doit marcher. Sauf si tu as une couleur définie sur l'id
Modifié par _laurent (27 Oct 2020 - 15:31)
Meilleure solution