28221 sujets

CSS et mise en forme, CSS3

Bonjour,

Voilà j'ai un problème que je n'arrive pas à résoudre.

Comment mettre un lien de couleur différente quand le lien vient d'être actif.

Autrement dit :
j'ai une page "Accueil" et une page "Situation".

Mes liens sont rouges.
Quand je clique sur Accueil, il m'affiche la page Accueil et met ce lien en blanc.
Quand je clique sur Situation, il m'affiche la page Situation et met ce lien en blanc et remet le lien "Accueil" en rouge.

Voici ma page siteprof.php


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	 <title>Voici mon site professionnel : Franck THIEBAUT</title>
	 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	 <link rel="stylesheet" media="screen" type="text/css" title="Design sombre" href="siteprof.css" />
</head>
<body>
	 <div class="haut">mon site .com</div>
	 <div class="conteneur">
	 <div class="gauche">
		 <ul>
			 <li><a href="siteprof.php?page=accueil" title="Introduction">Accueil</a></li>
			 <li><a href="siteprof.php?page=situation" title="Situation familliale">Situation</a></li>
			 <li><a href="siteprof.php?page=formation" title="Diplôme">Formation</a></li>
			 <li><a href="siteprof.php?page=experience" title="Expérience professionnelle">Expérience</a></li>
			 <li><a href="siteprof.php?page=interet" title="Mes centres d'intérêts">Centres d'intérêts</a></li>
			 <li><a href="siteprof.php?page=cvbref" title="Un CV court">Mon CV en Bref</a></li>
		 </ul>	  
	 </div>
	 <div class="frame"> 
	 <?php 
	 if (!isset($_GET['page'])) $page= 'accueil'; else $page= $_GET['page']; 
 	 switch($page)
	 {
		 case 'accueil': include ('accueil.htm');break;
		 case 'situation': include ('situation.htm');break;
		 case 'suite':include ('suite.htm');break;
		 case 'fin':include ('fin.htm');break;
	 } 
	 ?>
	 <p>&nbsp;</p>
	 </div>
	 </div>
	 <div class="bas">Cette partie basse reste fixe</div>
</body>
</html>


Voici siteprof.css

h1
{
	 color: red;
	 font-family: Arial, "Times New Roman", Verdana, serif;
     text-transform: capitalize; /* Les premières lettres des mots du titre seront en majuscules */

}
body {
 	 margin: 0;
	 padding:0; 
	 position: absolute;
 	 width: 100%;
	 height: 100%;
	 font-family: verdana, arial, sans-serif;
}
a														/* Lien normal */
{
     text-decoration: none; 				/* Les liens ne seront plus soulignés */
     color: red; 									/* Les liens seront en rouge au lieu de bleu */
     font-style: italic; 						/* Les liens seront en italique (pourquoi pas ?) */
}
a:hover 											/* Quand le visiteur pointe sur le lien */
{
     text-decoration: underline; 		/* Le lien deviendra souligné quand on pointera dessus */
     color: green; 								/* Le lien sera écrit en vert quand on pointera dessus */
}
a.active											/* Quand le visiteur clique sur le lien */
{
     background-color: #FFCC66;	/* Couleur de fond */
}
.haut {
 	 width: auto;
	 height: 126px;
	 background-color: #06C;
	 color: #fff;
	 font-size: 36px;
	 padding: 10px;
}
.conteneur {
	 height: 504px;
	 width: 100%;
}
.gauche {
	 position: absolute;
	 left: 0;
 	 width: 266px;
	 height: 504px;
	 background-image: url(menu.jpg);
}
.frame {
 	 width: auto;
 	 margin-left: 266px;
	 height: 504px;
	 overflow: auto;
	 font-size: 14px;
}
.bas {
	 width: auto;
	 height: 30px;
	 background-color: #06C;
	 color: #fff;
	 font-size: 12px;
	 padding: 10px;
}
ul, li {
 	 margin: 0; 
	 padding: 0; 
	 list-style-type: none;
}
ul {
	 float: left; 
	 margin-top: 85px; 
	 margin-left: 20px;
}
a.active											/* Quand le visiteur clique sur le lien */

{

     background-color: #FFCC66;	/* Couleur de fond */

}

ça serait pas a:active ?

sinon tu peux spécifier la couleur d'un lien visité avec a:visited mais je ne sais pas si ça correspond à ce que tu veux...
J'opterai aussi pour le a:visited vu qu'apparement il souhaite que les liens vers les pages visités aient la meme couleur
Au sujet des liens, il conviens de respecter un certain ordre pour s'assurer un rendu identique dans la majorité des navigateurs:

a:link{
	propriété:valeur;
	propriété:valeur;
}
a:visited{
	propriété:valeur;
	propriété:valeur;
}
a:hover{
	propriété:valeur;
	propriété:valeur;
}
a:active{
	propriété:valeur;
	propriété:valeur;
}


Certains s'en souviennent grâce à: LoVeHAte Smiley cligne
Message reçu par mail :
a écrit :
Non, ce n'est pas "a:visited" car tous les liens reste en blanc dès l'instant où ils ont été cliqué.

"a:active" ne marche pas non plus.

En fait, je veux faire exactement, ce que fait le site suivant : http://www.yodabusiness.com/

En regardant, dès qu'une page est active, il y a un class="menuactive", pour le menu activé.

Mais il faudrait mettre plutôt class="<?php $nom ?>".

Enfin bref, j'ai la solution devant moi.

Merci
Administrateur
Si ce n'est ni visited ni active, il reste hover Smiley haha

Petite précision: les liens sont en blanc sur gris, enfin en inverse vidéo lorsque la souris passe dessus. Ca c'est "hover"
Et on retrouve le même design (inverse video) une fois qu'on a cliqué sur un des liens du menu.

Avec la Web Developer Toolbar et CSS/View Style Information sur la page d'accueil de yodabusiness, j'obtiens ces renseignements:
#menu a    (line 104)
{
(...)
    color: rgb(51, 51, 51);
(...)
}

#menu a:hover, .menuactive    (line 116)
{
    background-color: rgb(153, 153, 153);
    color: rgb(255, 255, 255);
}


Au survol de la souris et ("et" parce qu'il y a une virgule) pour la classe "menuactive" (à cause du point devant), le texte passera en inverse vidéo blanc sur (153,153,153).

Si je recherche "menuactive" dans le source de la page, je ne trouve rien et pourtant c'est défini dans le CSS --> conclusion: c'est un CSS qui a été défini pour tout le site, menuactive est une classe présente seulement sur certaines pages mais pas celle-là.
Maintenant, en cliquant sur le menu et en regardant le source de cette page, une recherche de menuactive mène tout droit à un item du menu de la page comme
<a href="hebergement.htm" class="menuactive" style="color: #FFFFFF">H&eacute;bergement</a>
à comparer aux autres items
<a href="s-site-4d-business-kit.htm">Sites sur mesure</a>
reçu tjs par mail... :
a écrit :
Merci à toi poire. La solution était bien celle là.

Voici pour d'autre, si cela peut les aider la solution :

siteprof.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Voici mon site professionnel : Franck THIEBAUT</title>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  <link rel="stylesheet" media="screen" type="text/css" title="Design sombre" href="siteprof.css" />
</head>
<body>
  <div class="haut">mon site .com</div>
  <div class="conteneur">
  <div class="gauche">
  <?php
  if (!isset($_GET['page']))
    $page= "accueil";
  else
   $page= $_GET['page'];
   switch($page)
   {
    case 'accueil': $color1= 'menuactive';break;
    case 'situation': $color2= 'menuactive';break;
    case 'suite':include ('suite.htm');break;
    case 'fin':include ('fin.htm');break;
  }
  ?>
  <ul>
   <li><a href="siteprof.php?page=accueil" class="<? echo $color1 ?>" title="Introduction">Accueil</a></li>
   <li><a href="siteprof.php?page=situation" class="<? echo $color2 ?>" title="Situation familliale">Situation</a></li>
   <li class="<? $color3 ?>"><a href="siteprof.php?page=formation" title="Diplôme">Formation</a></li>
   <li class="<? $color4 ?>"><a href="siteprof.php?page=experience" title="Expérience professionnelle">Expérience</a></li>
   <li class="<? $color5 ?>"><a href="siteprof.php?page=interet" title="Mes centres d'intérêts">Centres d'intérêts</a></li>
   <li class="<? $color6 ?>"><a href="siteprof.php?page=cvbref" title="Un CV court">Mon CV en Bref</a></li>
 </ul>  
  </div>
  <div class="frame">
  <?php
  if (!isset($_GET['page']))
    $page= 'accueil';
  else
   $page= $_GET['page'];
   switch($page)
   {
    case 'accueil': include ('accueil.htm');break;
    case 'situation': include ('situation.htm');break;
    case 'suite':include ('suite.htm');break;
    case 'fin':include ('fin.htm');break;
  }
  ?>
  <p>&nbsp;</p>
  </div>
  </div>
  <div class="bas">Cette partie basse reste fixe</div>
</body>
</html>
et siteprof.css
h1
{
  color: red;
  font-family: Arial, "Times New Roman", Verdana, serif;
     text-transform: capitalize; /* Les premières lettres des mots du titre seront en majuscules */
 
}
body {
   margin: 0;
  padding:0;
  position: absolute;
   width: 100%;
  height: 100%;
  font-family: verdana, arial, sans-serif;
}
a              /* Lien normal */
{
     text-decoration: none;     /* Les liens ne seront plus soulignés */
     color: red;          /* Les liens seront en rouge au lieu de bleu */
     font-style: italic;       /* Les liens seront en italique (pourquoi pas ?) */
  font-weight: bold;      /* En gras */
}
a:hover           /* Quand le visiteur pointe sur le lien */
{
     text-decoration: underline;   /* Le lien deviendra souligné quand on pointera dessus */
     color: green;         /* Le lien sera écrit en vert quand on pointera dessus */
  font-weight: bold;      /* En gras */
}
.menuactive          /* Quand le visiteur pointe sur le lien */
{
     color: white;         /* Le lien sera écrit en vert quand on pointera dessus */
  font-weight: bold;      /* En gras */
}
a.active           /* Quand le visiteur clique sur le lien */
{
     background-color: #FFCC66; /* Couleur de fond */
}
.haut {
   width: auto;
  height: 126px;
  background-color: #06C;
  color: #fff;
  font-size: 36px;
  padding: 10px;
}
.conteneur {
  height: 504px;
  width: 100%;
}
.gauche {
  position: absolute;
  left: 0;
   width: 266px;
  height: 504px;
  background-image: url(menu.jpg);
}
.frame {
   width: auto;
   margin-left: 266px;
  height: 504px;
  overflow: auto;
  font-size: 14px;
}
.bas {
  width: auto;
  height: 30px;
  background-color: #06C;
  color: #fff;
  font-size: 12px;
  padding: 10px;
}
ul, li {
   margin: 0;
  padding: 0;
  list-style-type: none;
}
ul {
  float: left;
  margin-top: 85px;
  margin-left: 20px;
}


A+
Administrateur
Fermé sur demande de l'auteur.
N'oubliez pas de rajouter un [Résolu] dans vos titres de sujet si le problème est réglé ;)