28172 sujets

CSS et mise en forme, CSS3

Bonjour,

J'ai plusieurs problèmes, j'ai cherché partout et j'ai trouvé plein de "réponses" à ces problèmes, mais aucune ne semble marcher, alors je poste pour qu'on essaie de m'expliquer et de trouver d'où viennent les problèmes.

Je fais un blog sur un site de blog et j'ai accès à un code html que je peux créer/modifier et à la feuille de style css. Je ne peux pas avoir accès aux autres paramètres du blog qui ne dépendent pas de moi. (par conséquent, dans les vérifications d'erreur il y en a, j'ai tenté de les supprimer quand elles venaient de mon code, sinon je peux rien faire).

Déjà, j'ai fait un menu déroulant. J'ai essayé de le centrer, impossible de le centrer sans donner de valeur margin, je voulais qu'il soit centré au milieu en auto, mais ça ne marche que sur mozilla firefox. Je ne peux pas mettre de Doctype, j'ai essayé mais ces balises ne sont pas prises en compte dans celles que j'ai le droit de mettre dans le code html...

Après, je souhaiterai que mon menu se déroule vers le haut et non vers le bas... Mais je ne sais pas quelle valeur je dois changer pour ça. Dans le tutoriel pour les menus déroulants, j'ai vu un exemple, mais pas le code et l'explication pour passer de l'un à l'autre.

Et pour finir, une erreur est apparue d'un coup... Dans mon menu, sur firefox aucun problème... J'ai Titre, sous titre bien espacé comme il faut. Mais sous IE, j'ai le titre et puis un grand espace avec les sous menus... Pourtant avant ça marchait parfaitement et je n'ai rien changé (de plus, j'ai testé tout le code sur mon pc et il marche, c'est que lorsque je le met sur internet...)

Voilà le code HTML concernant le menu :

 
</div></div></div></div></div>
<div id="entete">
<div id="global">
<div id="menu-haut">
<div id="container"><div id="contabs">
<div class="boutonFF">Culture et tradition<br></br>

<a class="SousMenu" href="http://www.cowblog.fr">Japon</a>
<a class="SousMenu" href="http://www.cowblog.fr">Chine</a>
<a class="SousMenu" href="http://www.cowblog.fr">Corée</a>
</div>
 <div class="boutonFF">Musique<br></br>
  <a class="SousMenu" href="http://www.cowblog.fr">Groupes japonais</a>
  <a class="SousMenu" href="http://www.cowblog.fr">Groupes chinois</a>
  <a class="SousMenu" href="http://www.cowblog.fr">Groupes coréens</a>

</div>

 <div class="boutonFF">Drama<br></br>
  <a class="SousMenu" href="http://www.cowblog.fr">Drama japonais</a>
  <a class="SousMenu" href="http://www.cowblog.fr">Drama coréen</a>
  <a class="SousMenu" href="http://www.cowblog.fr">Drama chinois</a>

</div>

 <div class="boutonFF">Mangas et animés<br></br>
  <a class="SousMenu" href="http://www.cowblog.fr">Mangas</a>
  <a class="SousMenu" href="http://www.cowblog.fr">Animés</a>


</div>
 <div class="boutonFF">Sports<br></br>
  <a class="SousMenu" href="http://www.cowblog.fr">Japonais</a>
  <a class="SousMenu" href="http://www.cowblog.fr">Coréen</a>
  <a class="SousMenu" href="http://www.cowblog.fr">Chinois</a>

</div>
</div>
</div></div>




</div>
</div>
</div>
<div id="main"><div id="nav1"><div id="nav1-content"><div><div>



Et voici la partie CSS concernant le menu :


#menu-haut  {
	padding-top : 430px;
	position: relative;
	margin-right: auto;
	margin-left: auto;
	width: auto;
	text-align : center;
	background : #transparent;
}


#menu-haut a {
	margin : 0 10px;
	padding : 5px;
	text-decoration : none;
	background : transparent;
}


#contabs {
	position : relative;
        margin-left: 156px;
        margin-right: auto;
        float: center;
        top : -20px !important ;
	top : -20px;
	z-index : 500;
	width: 100%;
}



#container {
	position : relative !important ;
}


#couche {
	position : absolute !important ;
	z-index : 1000 !important ;
	width: 100%;
}
.boutonFF {
       color : #000000;
	width : auto;
	height : 35px;
	display : inline !important ;
	background : transparent url(http://img57.imageshack.us/img57/6731/fondtranspmm8.png) repeat fixed 0 0;
	margin-right : 10px;
	text-align : center;
	float : left;
	text-decoration : none;
	font-family : impact;
	font-size : 15px;
	line-height : 35px;
	overflow : hidden;
	margin-top : 10px;
	border : 3px double #ffffff;
}


.boutonFF:hover {
	height : auto;
	cursor : pointer;
	color : #714E99;
	background : transparent url(http://img57.imageshack.us/img57/6731/fondtranspmm8.png) repeat fixed 0 0;
	border : 3px double #ffffff;
}


a.SousMenu, a.SousMenu:link, a.SousMenu:visited, a.SousMenu:active {
       display : block;
	width : auto !important ;
	width : auto;
	height : 16px;
	line-height : 9px;
	text-decoration : none;
	background : #ffffff;
        color : #ffffff;
	font-family : verdana;
	font-size : 11px;
	text-align : center;
	padding-left : 1px;
	border-top : 1px solid #ffffff;
}


a.SousMenu:hover {

	background : #ffffff;
	color : #714E99;
       font-weight: bold;
	border-top : 1px solid #714E99;
}  



Merci d'avance pour vos réponses Smiley smile
Modifié par Elyanna (17 Sep 2008 - 23:05)
Hello Elyanna et bienvenue Smiley cligne ,

pour pouvoir centrer un élément à l'aide de margin: auto il faut lui affecter une largeur explicite (par exemple width: 800px).

Pour le reste et dans le désordre :
* si ton hébergeur de blog interdit le DOCTYPE ça va être très difficile d'avoir le même rendu sur tous les navigateurs... Il faudrait peut-être en trouver un autre. Smiley smile
* ton bout de code comporte beaucoup (trop ?) de DIV. Voir les tutoriels sur la création de menus.
* le mieux serait peut-être de reprendre du début. Un petit tour sur cet article : Comment débuter et trouver l'information, ainsi que dans les Tutoriels et dans la FAQ devrait déjà bien t'informer sur les standards du web et la manière de faire un site conforme.

Bonne continuation Smiley smile .
je vais tenter tout ça Smiley smile

Pour le Doctype, en fait, on ne peut pas les mettre dans notre code HTML, mais dans le code de base il y en a un :

<!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" xml:lang="fr">


(C'est bien ça, non ?)

Puisque leur site, sans modification est compatible sous tous les navigateurs, c'est bien qu'ils en ont mis un qui est effectif automatiquement sur internet.

Vous pensez que ça vient de là le fait que certains trucs marchent chez moi et pas d'autre ?

J'avais testé le margin: auto avec une largeur explicite, mais ça donnait pas le même résultat sur IE, Mozilla pas de problèmes et IE, c'était centré à partir du milieu de la page, donc euh, ça décalait tout. J'ai déjà testé tous les tutoriels de compatibilité pour centrer et aucun résultat Smiley lol

En tout cas, merci je vais voir pour refaire au propre et je reviendrai vous embêter !
Elyanna a écrit :
Pour le Doctype, en fait, on ne peut pas les mettre dans notre code HTML, mais dans le code de base il y en a un :
<!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" xml:lang="fr">

(C'est bien ça, non ?)
Oui. Smiley smile


a écrit :
Vous pensez que ça vient de là le fait que certains trucs marchent chez moi et pas d'autre ?
Non... plutôt ton code qui est invalide.


a écrit :
je vais voir pour refaire au propre et je reviendrai vous embêter !
Pas de problème... Smiley cligne
Modifié par Heyoan (18 Sep 2008 - 12:56)
Hum, je voulais refaire tout le menu avec celui de Alsacreations, mais... J'ai pas le droit d'utiliser de javascript dans le HTML... Donc... Ce tutoriel ne peut pas trop correspondre à ce que je veux.

Je vais juste essayer de bien faire les menus, mais il faudra qu'au final, les fonctions du menu déroulant soient dans la CSS... Comme celui que j'ai mis au dessus !

Quand je demandais : "Vous pensez que ça vient de là le fait que certains trucs marchent chez moi et pas d'autre ?"

C'est que je ne comprend pas pourquoi certaines erreurs n'apparaissent pas en local et apparaissent quand je met en ligne... (c'est assez frustrant d'ailleurs Smiley lol )
Elyanna a écrit :

Hum, je voulais refaire tout le menu avec celui de Alsacreations, mais... J'ai pas le droit d'utiliser de javascript dans le HTML... Donc... Ce tutoriel ne peut pas trop correspondre à ce que je veux.
Un menu n'a pas forcément besoin de Javascript (même si c'est plus facile dès que l'on veut utiliser des "vilains" sous-menus). Je te donnais le lien vers les tutos essentiellement pour que tu voies les agencements à base de listes (UL + LI + A).

Elyanna a écrit :

C'est que je ne comprend pas pourquoi certaines erreurs n'apparaissent pas en local et apparaissent quand je met en ligne... (c'est assez frustrant d'ailleurs Smiley lol )
Un lien vers la page en ligne ?
Oui, je vais m'occuper de tout remettre le menu proprement pour le code HTML Smiley smile c'est juste dommage qu'il n'y ait pas un tuto sans javascript, avec juste la CSS Smiley lol (oui, je sais on peut pas avoir tout ce qu'on veut Smiley langue )

Pour le lien : http://asia.cowblog.fr/ (le bug est présent sous IE, je parle du décalage entre le menu et les sous menus Smiley smile )
Elyanna a écrit :

c'est juste dommage qu'il n'y ait pas un tuto sans javascript, avec juste la CSS Smiley lol (oui, je sais on peut pas avoir tout ce qu'on veut Smiley langue )
C'est que tu as mal cherché Smiley langue !
Non mais je parlais de menus déroulants ! J'ai mal vu encore ? Parce que j'en ai pas trouvé.
Bon en tout cas, je viens de rentrer, alors je vais me servir de ça pour refaire proprement mes menus ^^
Elyanna a écrit :
Non mais je parlais de menus déroulants ! J'ai mal vu encore ? Parce que j'en ai pas trouvé.
Arf ! Désolé... il n'y a effectivement rien sur les menus déroulants full css.

Personnellement je ne m'en sers jamais... essentiellement pour des raisons d'accessibilité mais aussi parce qu'à mon avis il y a toujours moyen de faire autrement. Par exemple dans ton cas chaque sous-menu (à l'exception de "Mangas et animés" qui pourrait être adapté) correspond à un choix de pays. Il suffirait donc de choisir le pays avant ou après la sélection de la catégorie et les sous-menus deviennent inutiles. Smiley murf

Ce serait encore plus intéressant si tu ne peux pas utiliser Javascript car le seul exemple de menu déroulant "à peu près accessible" (que je connaisse) est celui de fairytells qui est en JS mais qui se déplie directement si le JS est désactivé.
En fait, logiquement, j'ai le droit de mettre du javascript, mais quand je le fais, ça marche pas... enfin je suis pas sûre, mais voici la liste des balises autorisées :

<p><a><i><u><b><strong><em><span><font><br><div><img><h1> <h2><h3><embed><object><param><hr><marquee><iframe><blink><applet> <script><table><tr><td><li><ol><ul><noscript>


<script> ça sert bien à insérer du javascript ?

Sinon pour l'idée de faire le menu par choix du pays et de faire le menu mangas et animés à part, ça serait possible en CSS / HTML et sous la forme que je veux (menu déroulant au passage de la souris) ?

Bon après, pour les codes je me suis servie de tutoriels sur le site du blog et de CSS/code sur d'autres blog ayant ce que je voulais... D'ailleurs, le blog sur lequel j'ai pris le code n'a pas ce problème d'écart sur IE (je ne l'avais pas au début aussi), ça serait pas un problème avec une balise plus haut qui modifierait ?

Bon je file avant de rater mon bus, mais dernier truc en rapport avec ma question... Y'a pas un truc qui vérifierait si y'a des conflits entre certaines balises ? Smiley lol Du genre une qui annule l'autre Smiley smile
Elyanna a écrit :

<script> ça sert bien à insérer du javascript ?
Oui.

Elyanna a écrit :

Sinon pour l'idée de faire le menu par choix du pays et de faire le menu mangas et animés à part, ça serait possible en CSS / HTML et sous la forme que je veux (menu déroulant au passage de la souris) ?
Heyoan a écrit :
Par exemple dans ton cas chaque sous-menu (à l'exception de "Mangas et animés" qui pourrait être adapté) correspond à un choix de pays. Il suffirait donc de choisir le pays avant ou après la sélection de la catégorie et les sous-menus deviennent inutiles.
Smiley biggol

Bon... je te suggérais de ne PAS utiliser de menus déroulants mais bien sûr c'est toi qui vois ! Smiley langue

Donc pour reprendre ce que je te disais dans ma première réponse il va te falloir reprendre les bases (html et css) et personne ne peut le faire à ta place...

Pour un exemple de menu déroulant il y a le lien de fairytells qu'il faut tester (et comprendre).

Sinon je ne vois pas que te dire de plus sans me répéter (je pourrais aussi le faire à ta place mais ça ne t'apporterait rien... et à moi non plus... et d'ailleurs c'est rigoureusement interdit par la règle 16 du forum. Smiley lol )

A+
Non mais je comprends pour le fait qu'on peut pas me faire mon travail, puis ça m'intéresse pas Smiley lol

Bon par contre, je viens déjà vous ré-embêter ! Smiley lol

J'ai refait un menu avec le tuto pour les menus CSS. Pas de problèmes, le menu apparaît comme il faut... Sauf quand j'essaie de le mettre horizontalement !

Dans le tuto, y'a marqué qu'il faut rajouter "display: inline ;" dans Navigation li...
Sauf que moi, j'ai des sous menus aussi, et ça donne pas du tout le même résultat... Et je vois pas du tout où mettre le "inline" pour que ça ait effet sur les menus, et que les sous menus se mettent en dessous des menus...
Chez moi, en mettant le display à cet endroit, j'obtiens Menus et sous menus les un sous les autres, centrés...

Voilà le code...

HTML :

	<link rel="stylesheet" type="text/css" href="style.css" title="Menu">



<ul id="navigation">
	
	<li><a href="#">Culture et tradition</a></li></ul>

<ul id="sousmenus">
		<li><a href="d">Japon</a></li>
		<li><a href="d">Chine</a></li>
		<li><a href="d">Corée</a></li>
</ul>
	
<ul id="navigation">	<li><a href="#">Musique</a></li></ul>


<ul id="sousmenus">
		<li><a href="d">Japon</a></li>
		<li><a href="d">Chine</a></li>
		<li><a href="d">Corée</a></li>
</ul>

<ul id="navigation">	<li><a href="#">Drama</a></li></ul>
<ul id="sousmenus">
		<li><a href="d">Japonais</a></li>
		<li><a href="d">Chinois</a></li>
		<li><a href="d">Coréen</a></li>
</ul>

<ul id="navigation"><li><a href="#">Mangas et animés</a></li></ul>

<ul id="sousmenus">
		<li><a href="d">Manga</a></li>
		<li><a href="d">Chine</a></li>
</ul>

<ul id="navigation"><li><a href="#">Sports</a></li></ul>
<ul id="sousmenus">
		<li><a href="d">Japonais</a></li>
		<li><a href="d">Chinois</a></li>
		<li><a href="d">Coréen</a></li>
</ul>

</ul>



CSS :

#navigation {
	margin: 0 ;
	padding: 0 ;
	list-style: none ;
	text-align: center ;

	}

#navigation li {
	display: inline ;
	margin-right: 1px ;
	color: #fff ;
	background: #c00 ;
	}

#navigation li a {
	padding: 4px 20px ;
	background: #c00 ;
	color: #fff ;
	border: 1px solid #600 ;
	font: 1em "Trebuchet MS",Arial,sans-serif ;
	line-height: 1em ;
	text-align: center ;
	text-decoration: none ;
	}

#navigation li a:hover, #navigation li a:focus, #navigation li a:active {
	background: #900 ;
	text-decoration: underline ;
	}



Bon j'ai pas modifié par rapport au tuto, vu que j'essaie de comprendre déjà comment le mettre à l'horizontal. J'ai testé en rajoutant inline à "sousmenu" aussi, dans la CSS mais ça ne change rien Smiley smile
Plop,

quelques remarques générales :

* l'attribut title a un rôle particulier dans une balise <link> : lire ce point de la FAQ pour être sûre que c'est bien ce que tu voulais faire...

* un id doit être unique dans une page contrairement à une class : lire ce point de la FAQ.

* en l'occurrence il suffit d'attribuer un id au premier UL et de cibler les éléments descendants à l'aide des sélecteurs.

* tes listes sont mal imbriquées...

Au final ça pourrait donner :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Test</title>
<style type="text/css">
#navigation, #navigation ul {
	margin: 0 ;
	padding: 0 ;
	list-style: none ;
	text-align: center ;
	}
#navigation li {
	float: left;
	margin-right: 5px ;
	color: #fff ;
	background: #c00 ;
	border: 1px solid #600 ;
	}
#navigation li ul li {
	float: none;
	margin: 0;
	}
#navigation li a {
	padding: 4px 20px ;
	background: #c00 ;
	color: #fff ;
	font: 1em "Trebuchet MS", Arial, sans-serif ;
	line-height: 2em ;
	text-align: center ;
	text-decoration: none ;
	display: block;
	}
#navigation li a:hover, #navigation li a:focus, #navigation li a:active {
	background: #900 ;
	text-decoration: underline ;
	}
	</style>
</head>
<body>
<ul id="navigation">
  <li><a href="#">Culture et tradition</a>
    <ul>
      <li><a href="d">Japon</a></li>
      <li><a href="d">Chine</a></li>
      <li><a href="d">Corée</a></li>
    </ul>
  </li>
  <li><a href="#">Musique</a>
    <ul>
      <li><a href="d">Japon</a></li>
      <li><a href="d">Chine</a></li>
      <li><a href="d">Corée</a></li>
    </ul>
  </li>
  <li><a href="#">Drama</a>
    <ul>
      <li><a href="d">Japonais</a></li>
      <li><a href="d">Chinois</a></li>
      <li><a href="d">Coréen</a></li>
    </ul>
  </li>
  <li><a href="#">Mangas et animés</a>
    <ul>
      <li><a href="d">Manga</a></li>
      <li><a href="d">Chine</a></li>
    </ul>
  </li>
  <li><a href="#">Sports</a>
    <ul>
      <li><a href="d">Japonais</a></li>
      <li><a href="d">Chinois</a></li>
      <li><a href="d">Coréen</a></li>
    </ul>
  </li>
</ul>
</body>
</html>

Mais bon... il manque encore le Javascript pour montrer / cacher les sous-menus !

Autant partir d'un tuto expliquant déjà comment faire (soit celui de fairytells soit celui d'Alsa).

Et sinon... tu trouves que j'insiste lourdement si je te redis qu'il faudrait prendre le temps de lire les tutos et la FAQ ? Smiley biggol
Modifié par Heyoan (20 Sep 2008 - 14:34)
Bah pour faire la liste, j'ai justement regardé les deux tutos que tu m'as indiqué... Sauf que pour ceux en javascript, les listes sont différentes y'a pas que des balises <li> et <ul> et comme ça marchait sur mon pc, je pensais que c'était bon Smiley lol

Merci pour l'indication pour les id et class, je savais pas.

J'ai lu la FAQ et les tutos concernant ce que je veux faire, mais c'est très dur de tout retenir, alors même en faisant des recherches c'est assez dur. Je vais tester voir ce qui a été changé.

Encore merci ! Et c'est pas de la mauvaise volonté de faire n'importe quoi, je précise Smiley langue j'essaie de comprendre... J'dois avoir un problème quelque part XD

Bon, édit :

J'ai lu pas mal de trucs depuis.... J'ai refais le menu, normalement c'est bon... J'espère en tout cas !

Voilà le code HTML :

<ul id="navigation">
  <li><a class="titremenu" href="#">Culture et tradition</a>
    <ul class="sousmenu">
      <li><a href="d">Japon</a></li>
      <li><a href="d">Chine</a></li>
      <li><a href="d">Corée</a></li>
    </ul>
  </li>

  <li><a class="titremenu" href="#">Musique</a>
     <ul class="sousmenu">
      <li><a href="d">Japon</a></li>
      <li><a href="d">Chine</a></li>
      <li><a href="d">Corée</a></li>
    </ul>
  </li>

  <li><a class="titremenu" href="#">Drama</a>
     <ul class="sousmenu">
      <li><a href="d">Japonais</a></li>
      <li><a href="d">Chinois</a></li>
      <li><a href="d">Coréen</a></li>
    </ul>
  </li>

  <li><a class="titremenu" href="#">Mangas et animés</a>
     <ul class="sousmenu">
      <li><a href="d">Manga</a></li>
      <li><a href="d">Animés</a></li>
    </ul>
  </li>

  <li><a class="titremenu" href="#">Sports</a>
   <ul class="sousmenu">
      <li><a href="d">Japonais</a></li>
      <li><a href="d">Chinois</a></li>
      <li><a href="d">Coréen</a></li>
    </ul>
  </li>
</ul>


ET CSS :

#navigation, #navigation ul {
	background: transparent url

(http://img57.imageshack.us/img57/6731/fondtranspmm8.png) repeat fixed 0 0;
	margin: 0 ;
	padding: 0 ;
	list-style: none ;
	text-align: center ;
	}


#navigation li {
	float: left;
	margin-right: 5px ;

	}

#navigation li ul li{
	float: none;
	margin: 0;

	}

#navigation li a {
	width : auto;
	padding: 4px 20px;
	line-height: 2em ;
	text-align: center ;
	text-decoration: none ;
	display: block;
	}

.titremenu {
	background: transparent url

(http://img57.imageshack.us/img57/6731/fondtranspmm8.png) repeat fixed 0 0;
	color: #ffffff;
	font-family: impact;
	font-size: 15px;
	overflow : hidden;
}


.titremenu a {
	color: #ffffff;
}

.titremenu a:hover {
	color: #ffffff;
}



.sousmenu {
	text-decoration : none;
	color: #ffffff;
	font-size: 11px;
	font-family: verdana;
	margin-left: 10px;
	margin-right: 10px;
}

.sousmenu a {
	text-decoration : none;
	color: #ffffff;
	font-size: 11px;
	font-family: verdana;
	margin-left: 10px;
	margin-right: 10px;
	border-top: 1px solid #ffffff;
}



.sousmenu a:hover {
	color:#714e99;
	font-weight: bold;
	border-top: 1px solid #714e99;

}



Bon par contre, j'ai à nouveau le même problème que sous mon ancien menu... Y'a un espace dans les sous-menus sous IE.... Beaucoup plus grand que celui de Mozilla Firefox

J'ai un autre problème... Mon ancien menu était pratique parce qu'il marchait sans javascript... Et là j'ai vraiment beaucoup beaucoup de mal à essayer de remettre les bons codes aux bons endroits et de voir à quoi correspond chaque élément par rapport à mon ancienne CSS / html... Donc j'arrive plus à faire de menu déroulant... Et je ne peux pas me servir de tuto parce que le javascript ne marche pas pour moi...

Et dernier problème... J'ai essayé de faire un border sur tout le truc en entier, enfin Titre + sous titre... Mais je n'arrive qu'à faire un border sur titre puis sous titre séparés... Donc ça me fait double bordure au niveau du bas du titre / haut du sous-titre. D'ailleurs, si je veux centrer mon menu au milieu, il faut que je me serve du même trucs je pense non ? Prendre le bloc entier ?

Merci et désolée si y'a des trucs dans les FAQ, j'essaie de m'en servir, mais c'est vraiment dur de tout adapter...
Modifié par Elyanna (21 Sep 2008 - 00:12)