28173 sujets

CSS et mise en forme, CSS3

Bonjour,

J'essaie de realiser un menu avec messages d'informations au survol.
J'ai suivi (je pense) la procédure decrite dans le livre (excellent ! Smiley cligne ) (p151), mais si mes messages apparaissent bien sous FireFox, rien ne se passe sous IE... Smiley decu

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<TITLE>TITRE</TITLE>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<META NAME="GOOGLEBOT" CONTENT="NOARCHIVE">
<META NAME="Robots" CONTENT="none">
<META http-equiv="Pragma" CONTENT="no-cache">
<STYLE type=text/css>
BODY {
	PADDING-RIGHT: 0px;
	PADDING-LEFT: 150px;
	PADDING-BOTTOM: 100px;
	MARGIN: 0px;
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 12px;
}

DIV#header {
	WIDTH: 100%;
	HEIGHT: 100px;
	background-color: #00869C;
	z-index: 1;
}

DIV#left-sidebar {
	LEFT: 0px;
	WIDTH: 150px;
	POSITION: absolute;
	PADDING-BOTTOM: 50px;
	TOP: 0px;
	HEIGHT: 100%;
	background-color: #00869C;
	z-index: 1;
}


@media Screen    
{
    }
 HTML BODY {
	OVERFLOW: hidden
}
 HTML DIV#content {
	OVERFLOW: auto;
	HEIGHT: 100%;
	padding-left: 40px;
	padding-right: 20px;
	background-color: #BADEF3;
}
#navcontainer
{
	margin: 0px;
	padding: 0px;
	height: 20px;
	right: 0px;
	bottom: 0px;
	width: 100%;
	top: 80px;
}

#navcontainer ul
{
	margin: 0px;
	list-style-type: none;
	text-align: center;
	right: auto;
	bottom: 0px;
	float: right;
	padding-bottom: 0px;
	height: 20px;
	position: relative;
	background-image: url(images/barre1.gif);
}

#navcontainer ul li { float: left; }

#navcontainer ul li a
{
	text-decoration: none;
    color: #BADEF3;
	background: url(images/bouton1-off.gif) no-repeat left top;
	font-size: 12px;
	float: left;
	margin: 0px;
	height: 20px;
	width: 100px;
	padding-top: 3px;
	padding-right: 0px;
	padding-bottom: 0px;
	padding-left: 0px;
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-weight: bold;
}

#navcontainer li a:hover
{
background: url(images/bouton1-on.gif) no-repeat left top;
color: #DBEEF9;
}
#navcontainer li a:active
{
color: #BADEF3;
}
#banniere {
	position:relative;
	width:100%;
	height:60px;
	z-index:2;
	background-image: url(images/banniere.jpg);
	background-position: right 0;
}
#barnav {
	position:relative;
	width:100%;
	height:20px;
	z-index:3;
	background-image: url(images/barre1.gif);
}
#menu a span {
display: none;
}

#menu a:hover span {
	display: block;
	position: absolute;
	top: 20px;
	left: 0px;
	width: 100%;
	text-align: center;
	color: #CC0000;
	z-index: 10;
	background: none;
	background-color: #00FF66;
	padding-top: 2px;
}
.Style1 {
	color: #BADEF3;
	font-weight: bold;
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 12px;
	padding-top: 3px;
}
.Style2 {
	color: #BADEF3;
	font-weight: bold;
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 10px;
	padding-top: 4px;
}
.date {
	color: #086573;
	font-weight: bold;
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 12px;
	padding-top: 2px;
	text-align: center;
}
dateheure {
	height: 60px;
	width: 60px;
	padding-left: 5px;
	font-weight: bold;
}
#heure {
	position:absolute;
	width:60px;
	height:60px;
	z-index:1;
	left: 10;
}
#date {
	position:absolute;
	width:70px;
	height:60px;
	z-index:2;
	left: 70;
	background-color: #BADEF3;
}


</STYLE>
</HEAD>
<BODY>
<DIV id=header>
<div id="banniere">
  <div align="left"><img src="images/titre.gif" alt="Logo du site" width="180" height="60"><img src="images/degrade.gif" width="50" height="60"></div>
</div>  

<div id="barnav">
<div id="navcontainer">


                <ul id="menu">
                  <li><a href="default.asp">Accueil<span>Accueil du site</span></a></li>
                  <li><a href="carte.asp">La Carte<span>Carte d'implantation</span></a></li>
                  <li><a href="sites.asp">Les Sites<span>Les autres sites de notre groupe</span></a></li>
                  <li><a href="partenaires.asp">Partenaires<span>Nos partenaires</span></a></li>
                  <li><a href="liens.asp">Liens<span>Notre sélection de liens</span></a></li>
                  <li><a href="abonnement.asp">Abonnement<span>Abonnement à notre lettre d'information</span></a></li>
      </ul>
</div>


</div>

</DIV>
<DIV id=left-sidebar>
  <div align="center">
    <img src="images/Image1.gif" alt="Logo" width="150" height="100"></div>
	
  
  
  
  <div id="heure">
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="60" height="60" align="right">
          <param name="movie" value="fichiers/horloge.swf">
          <param name="quality" value="high">
          <param name="BGCOLOR" value="#BADEF3">
          <embed src="fichiers/horloge.swf" width="60" height="60" align="right" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" bgcolor="#BADEF3"></embed>
  </object></div>
  <div id="date">
    <div align="center" class="date">
        
    <SCRIPT LANGUAGE = "JavaScript">
  <!--
  document.write (AffichageDateConviviale (Aujourdhui) )
  -->
  </SCRIPT>
  </div></div>
</DIV>
<DIV id=content>
<H1>Accueil</H1>
<p align="justify">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras quis  risus et purus luctus lobortis. Mauris nunc sem, egestas convallis,  nonummy eu, convallis sed, nisl. Donec auctor vulputate massa. Ut a  tortor. Donec at nisl. Sed mollis, orci in dignissim dictum, neque leo  rutrum massa, in sollicitudin pede ipsum vitae sem. Vestibulum  fringilla. Quisque accumsan malesuada pede. Praesent malesuada tellus  vitae nisi. Suspendisse sed lacus. Fusce eget arcu. Curabitur lacinia  turpis a enim. Nunc et tortor. </p></DIV>
</BODY></HTML>


Ais-je mal compris le code, ou le probleme vien-il du fait que mon menu soit dans un "header" fixe ?
Modifié par Jeff06 (13 Aug 2006 - 00:30)
Salut Jeff06,

Le problème que tu rencontres es répertorié et reconnu : la syntaxe utilisée est en tout point correcte, mais pour qu'elle soit interprétée correctement par IE, il faut que tu spéficies une couleur de fond au survol des liens de ton menu. Smiley sweatdrop

En rajoutant cette petite instruction, tu obtiendras donc l'effet désiré :
#menu a:hover {
background:none;
}


Si je puis me permettre, je te conseillerai également d'utiliser une feuille de sryle externe à ton fichier html, ce qui te permettra par la suite de pouvoir modifier ceux-ci plus facilement... Smiley ravi
Bonne continuation
Smiley cligne
Modifié par Cygnus (13 Aug 2006 - 00:43)
Merci Cygnus pour ta reponse rapide Smiley cligne
Mais j'avais bien mis cette instruction :
#menu a:hover span {
	background:none;
	display: block;
	position: absolute;
	top: 20px;
	left: 0px;
	width: 100%;
	text-align: center;
	color: #CC0000;
	z-index: 10;
	background-color: #00FF66;
	padding-top: 2px;
}

Je viens d'en changer l'emplacement pour la remonter en haut.
Mais celà ne fonctionne pas... Smiley decu

Pour la feuille de style externe, j'y pense Smiley cligne mais je trouuve plus facile de la mettre au point comme ca ; je la rendrai externe ensuite pour pouvoir la partager avec le reste du site.
Mais merci de ton conseil : je prends tous les conseils avec plaisir.
Modifié par Jeff06 (13 Aug 2006 - 00:49)
En fait, mon instruction et la tienne ne sont pas les mêmes.
Car tu définis :
[b]#menu a:hover span[/b] {
background:none;
}

Alors qu'il faut en fait définir :
[b]#menu a:hover[/b] {
background:none;
}


Attention :
#menu a:hover span et #menu a:hover ne font pas référence aux même objet !
Modifié par Cygnus (13 Aug 2006 - 00:52)
Pourtant, dans le livre, le "background:none;" se trouve bien en "#menu a:hover span"...
Je viens de rajouter
#menu a:hover {
background:none;
}

mais sans resultat...
Modifié par Jeff06 (13 Aug 2006 - 00:57)
Je viens de tester ton code html avec les instructions ci-dessous :
#menu a:hover {
background:none;
}

#menu a span {
display: none;
}

#menu a:hover span {
display: block;
position: absolute;
top: 20px;
left: 0px;
width: 100%;
text-align: center;
color: #CC0000;
z-index: 10;
background: none;
background-color: #00FF66;
padding-top: 2px;
}


Et ça fonctionne sans problème sous FF et IE Smiley rolleyes
Bonsoir,
Il y a déjà un background sur a:hover (cf: #navcontainer li a:hover).
N'utilise pas la propriété raccourcie sur #navcontainer ul li a, c'est à dire remplace par
 background-image: url(images/bouton1-off.gif);
background-repeat: no-repeat;
background-position: left top;

et laisse la propriété raccourcie pour #navcontainer ul li a:hover
background: url(images/bouton1-on.gif) no-repeat left top;


edit: sinon tu peux ajouter par exemple zoom:1 à #navcontainer ul li a:hover
Modifié par Alan (13 Aug 2006 - 01:27)
YESSSSS !! Merci Alan Smiley biggrin

Bon, je n'ai pas encore tout à fait le même affichage :
- messages sur une ligne dans FF
- messages sur plusieurs lignes dans IE
Mais au moins, mes messages apparaissent Smiley smile
Pour le reste, même debutant, je devrais y arriver...

Merci encore !
Bonjour,

Jeff06 a écrit :

<li><a href="default.asp">Accueil<span>Accueil du site</span></a></li>


Une remarque sur le fond : si on tient absolument à utiliser cette astuce (peu accessible), il faut conserver un contenu qui ait du sens :
- au minimum, restaurer l'espace séparant les mots : Accueil<span> Accueil du site
- et trouver autant que possible une formulation qui ait du sens quand le texte est linéarisé: La Carte Carte d'implantation ne veut rien dire...
Merci pour ces conseils, Laurent Smiley cligne


J'avais en effet negligé cet aspect, mais cette "page web" ne me sert qu'à la mise en place de mon graphisme, et n'est pas definitive. J'espere d'ailleurs trouver un contenu plus riche que "Lorem ipsum dolor sit amet, ..." Smiley lol

Par contre, pourquoi definis tu cette astuce comme "peu accessible" ?
Modifié par Jeff06 (13 Aug 2006 - 12:07)