28172 sujets

CSS et mise en forme, CSS3

Bonjour,

J'ai repris le CSS qui se trouve ici http://www.alsacreations.com/static/modelesmenus/g02.htm.

Il est parfait. Je l'ai modifié pour l'adapter à mes besoins. Jusque là, pas de soucis.

Toutefois quand je teste dans IE, il n'y a aucun soucis. Par contre sur Firefox, je ne vois pas les images du menu quand je n'y suis pas et il n'est plus centré.

Quelqu'un a-t-il une idée ?

Voici le code :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<title>Accueil Lycée Tocqueville</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
<!--
/* CSS issu des tutoriels css.alsacreations.com */
body {
	background: #fff;
	text-align: center;
	font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
	font-style: normal;
	font-size: 14px;
}
ul, li {	/* utilisation de liste pour le menu */
list-style-type: none;	/* suppression des puces de liste */
margin:0;
padding:0;
}
ul {
	position: relative;	/* positionnement pour IE5 et IE5.5 */
	top: 0;
	background: url(images/menuaccueil.gif) top left no-repeat;	/* arrière-plan général du menu */
	width: 360px;
	text-align: center;
}
li {float: left;}

li a {	/* dimensions et définitions des boutons */
display: block;	/* mise en block de <a> pour lui donner des dimensions */
height: 420px;
width: 120px;
color: #fff;
font-size: 14px;
line-height: 50px;	/* hauteur de ligne pour éviter les paddings */
font-weight: bold;
font-family: arial, serif;
text-decoration: none;
}
li a:hover {
background: transparent url(images/menuaccueil.gif) top left no-repeat;
}
a#lien1:hover {
background-position: -360px 0%;	/* décalage de l'arrière-plan pour chaque bouton */
}
a#lien2:hover {
background-position: -480px 0%;
}
a#lien3:hover {
background-position: -600px 0%;
}

/* mentions et copyright */
div#mentions {
  font-family: verdana, arial, sans-serif;
  position: absolute;
  bottom : 200px;
  left : 10px;
  width: 400px;
  margin: 1em;
  padding: 0.5em;
  background: #FFF7D2;
  line-height: 1.1;
  font-size: 0.9em;
}
div#mentions a {
	text-decoration: none;
	color: #FFF;
}
div#mentions a:hover {
  text-decoration: underline;
  color: white;
}
.web {
	font-size: 10px;
}

-->
</style>
<body>
&quot;
<em>Dans les d&eacute;mocraties, chaque g&eacute;n&eacute;ration est un peuple nouveau.</em>&quot; Alexis de Tocqueville

<ul>
	<li><a id="lien1" href="actuadmin.html"></a></li>
	<li><a id="lien2" href="actupedagogie.html"></a></li>
	<li><a id="lien3" href="actuclub.html"></a></li>
</ul>
<span class="web">
 Mise &agrave; jour du site le 13 avril 2009 - Webmaster : <a
href="mailto:gino.nocera@ac-nice.fr">M.Nocera </a>
</span>
</body>

</html>


Et pour que cela soit plus simple, c'est là : http://www.ac-nice.fr/tocqueville/pageaccueil2.htm
Si quelqu'un peut m'aider, ce serait très gentil.... Smiley cligne
Modifié par 70156 (02 May 2009 - 16:37)
Salut,

Pour ton problème de centrage de la liste, tu peux le faire avec la propriété margin :

ul {
  margin: 0 auto;
}


Pour les images de tes menus, je te conseillerai de définir le background pour chaque lien et de le virer pour la liste

li a {
background: transparent url(images/menuaccueil.gif) top left no-repeat;
}
a#lien1 {
background-position: 0px 0%;
}
a#lien2 {
background-position: -120px 0%;
}
a#lien3 {
background-position: -240px 0%;
}


Et sinon, une image en jpg ou png devrait rendre mieux qu'une image en gif : il y a un effet d'escalier sur les contours.
"Eventuellement" utiliser un Doctype non tronqué :

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">

Et une seule déclaration d'encodage Smiley cligne

Cdt,
Sylvain
Merci à vous deux...

J'ai suivi vos conseils sur le doctype, la déclaration d'encodage, la propriété margin, le lien background pour chaque élément et le jpeg (mais là faut que je refasse l'image)... Et je n'ai réussi à résoudre que le centrage..

Rien à faire pour visualiser les éléments dans Firefox. Il ne me montre l'image que quand je passe dessus avec ma souris...

Je remets le code modifié si vous avez une autre idée...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Accueil Lycée Tocqueville</title>
<style type="text/css">
<!--
/* CSS issu des tutoriels css.alsacreations.com */
body {
	text-align: center;
	font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
	font-style: normal;
	font-size: 14px;
}
ul, li {	/* utilisation de liste pour le menu */
list-style-type: none;	/* suppression des puces de liste */
margin:0 auto;
padding:0;
}
ul {
	position: relative;	/* positionnement pour IE5 et IE5.5 */
	top: 0;
	background: url("images/menuaccueil.jpg") top left no-repeat;	/* arrière-plan général du menu */
	width: 360px;
	text-align: center;
}
ul li {float: left;}

ul li a {	/* dimensions et définitions des boutons */
display: block;	/* mise en block de <a> pour lui donner des dimensions */
height: 420px;
width: 120px;
color: #fff;
font-size: 14px;
line-height: 50px;	/* hauteur de ligne pour éviter les paddings */
font-weight: bold;
font-family: arial, serif;
text-decoration: none;
}
a#lien1:hover {
background: url("images/menuaccueil.jpg") top left no-repeat;
background-position: -360px 0%;	/* décalage de l'arrière-plan pour chaque bouton */
}
a#lien2:hover {
background: url("images/menuaccueil.jpg") top left no-repeat;
background-position: -480px 0%;
}
a#lien3:hover {
background: url("images/menuaccueil.jpg") top left no-repeat;
background-position: -600px 0%;
}

/* mentions et copyright */
div#mentions {
  font-family: verdana, arial, sans-serif;
  position: absolute;
  bottom : 200px;
  left : 10px;
  width: 400px;
  margin: 1em;
  padding: 0.5em;
  background: #0F0;
  line-height: 1.1;
  font-size: 0.9em;
}
div#mentions a {
	text-decoration: none;
	color: #F00;
}
div#mentions a:hover {
  text-decoration: underline;
  color: white;
}
.web {
	font-size: 10px;
}

-->
</style>
<body>
&quot;
<em>Dans les d&eacute;mocraties, chaque g&eacute;n&eacute;ration est un peuple nouveau.</em>&quot; Alexis de Tocqueville
<ul>
	<li><a id="lien1" href="actuadmin.html"></a></li>

	<li><a id="lien2" href="actupedagogie.html"></a></li>
	<li><a id="lien3" href="actuclub.html"></a></li>
</ul>
<span class="web">
 Mise &agrave; jour du site le 13 avril 2009 - Webmaster : <a
href="mailto:gino.nocera@ac-nice.fr">M.Nocera </a>
</span>
</body>
</html>

Cette capture d'écran vous donne un aperçu du résultat sous Firefox... Ma souris révèle les zones cachées et l'image cachée... mais rien de l'image du menu de base... upload/20975-Capture.png
Modifié par 70156 (14 Apr 2009 - 20:38)
Salut,

Il faut que tu definisse le background de tes liens quand ils ne sont pas survoles et quand ils le sont :

a#lien1{
  background: url("images/menuaccueil.gif") 0 0 no-repeat;
}

a#lien2{
  background: url("images/menuaccueil.gif") -120px 0 no-repeat;
}

a#lien3{
  background: url("images/menuaccueil.gif") -240px 0 no-repeat;
}

a#lien1:hover {
  background: url("images/menuaccueil.gif") -360px 0 no-repeat;
}
a#lien2:hover {
  background: url("images/menuaccueil.gif") -480px 0 no-repeat;
}
a#lien3:hover {
  background: url("images/menuaccueil.gif") -600px 0 no-repeat;
}


Et la tu devrais voir apparaitre comme par magie tes images sous FF Smiley cligne
Merci pour cette réponse qui, en effet, a résolu mon soucis d'affichage dans FF.
Toutefois, j'ai toujours un soucis avec la mention mise à jour qui n'apparait pas dans FF à la bonne place. Cela devrait apparaitre sous l'image comme c'est le cas sous IE.. Or, dans FF, cela apparait en haut à gauche...

Encore une idée ? Smiley smile
Bonjour,

Une petite précision les liens se définissent en général de cette manière dans une feuille de style.


a:link{}
a:visited{}
a:hover{}
a:active{}


Moyen mnémotechnique pour s'en souvenir LoVe HAte
Le problème vient de tes <li> qui sont en float left. Il faut faire en sorte que le contenu suivant la liste arrête de se coller à gauche.
Pour ça, tu crées la classe css clear :

.clear{
  clear: both;
}

Et tu intercales un div avec cette classe entre ta liste et le span :

<ul>
	<li><a id="lien1" href="actuadmin.html"></a></li>

	<li><a id="lien2" href="actupedagogie.html"></a></li>
	<li><a id="lien3" href="actuclub.html"></a></li>
</ul>
<div class="clear"></div>
<span class="web">
 Mise à jour du site le 13 avril 2009 - Webmaster : <a
href="mailto:gino.nocera@ac-nice.fr">M.Nocera </a>
</span>


Et la magie devrait opérer de nouveau.

@knarf : Pourquoi faut-il définir les liens dans cet ordre ?
@laurent35240 : Smiley smile Que c'est beau la magie ! Merci pour toutes ces informations qui m'ont permises de bien comprendre quelques trucs et logiques de ce code css !
Merci encore.
Au lieu de rajouter un div (pour rien ?) avec le clear, le span .web ne pourrait-il pas le recevoir ?
Modifié par knarf (15 Apr 2009 - 23:39)
knarf a écrit :
Au lieu de rajouter un div (pour rien ?) avec le clear, le span .web ne pourrait-il pas le recevoir ?


Tu voudrais dire faire un truc de ce type ?
}

.web {
        clear : both;
	font-size: 10px;

}



-->

</style>

<body>

&quot;

<em>Dans les d&eacute;mocraties, chaque g&eacute;n&eacute;ration est un peuple nouveau.</em>&quot; Alexis de Tocqueville

<ul>

	<li><a id="lien1" href="actuadmin.html"></a></li>



	<li><a id="lien2" href="actupedagogie.html"></a></li>

	<li><a id="lien3" href="actuclub.html"></a></li>

</ul>

<span class="web">

 Mise &agrave; jour du site le 13 avril 2009 - Webmaster : <a

href="mailto:gino.nocera@ac-nice.fr">M.Nocera </a>

</span>


Si ce n'est pas cela, pourrais-tu l'illustrer ?
Merci
Oui tous simplement.

Pourquoi rajouter un élément alors que juste en dessous dans le flux il en existe un qui peut remplir cette fonction ?

Et puis avec une valeur de taille de police en em de préférence cela évitera les problèmes de redimensionnement de police sous IE . Smiley cligne
Modifié par knarf (16 Apr 2009 - 14:08)