Background sur DL non appliqué sur DT ?

justin_gridou Messages postés 13 Statut Membre -  
justin_gridou Messages postés 13 Statut Membre -
Bonjour,

Je fais un menu en utilisant les listes html (dl). J'utilise les dt et dd pour définir des menus et sous-menu qui sont affichés lorsqu'on passe sur un item de menu. Mon menu a aussi des bords arrondis. Je met une image à bord arrondis pour faire l'entête et le bas de mon menu que je place dans des dt, comme des items de mon menu (non cliquable biensûr). Les côtés du menu sont quantà eux construit en appliquant un background sur la dl.
Problème, vu que j'ai une image à fond transparent dans un dt, je vois derrière le background du dl qui représente les bords du menu !!!
Je comptais rajouter sur la balise dt un
style="background-image:none;"
, mais ceci n'écrase pas le background appliqué sur le dl ...

Voici le code html :

    <div id="branding" style="position:absolute; visibility:show;">

<dl id="menu">

        <dt><img src="images/hautmenu.gif" height="24" width="155"/></dt>
        <dt></dt>
		<dt onmouseover="javascript:montre('smenu1');" style="padding-left:15px;cursor:pointer;"><p class="flag"><img src="images/point.gif" height="18" width="17" /><span>Grossesse</span></p></dt>

			<dd id="smenu1">
				<ul>
					<li><a href="grossesse_first.php" class="menu">1er Trimestre</a></li>
					<li><a href="grossesse_first_2.php" class="menu">2&egrave;me Trimestre</a></li>
					<li><a href="grossesse_first_3.php" class="menu">3&egrave;me Trimestre</a></li>
				</ul>
			</dd>		

		<dt onmouseover="javascript:montre('smenu3');" style="padding-left:15px;cursor:pointer;"><p class="flag"><img src="images/point.gif" height="18" width="17" /><span>Photos</span></p></dt>

			<dd id="smenu3">
				<ul>
				    <li><a href="gallery_flash/armand.php?gallerie=naissanceArmand&hidemenu=" class="menu">Naissance</a></li>
					<li><a href="gallery_flash/armand.php?gallerie=bebeArmand01m&hidemenu=" class="menu">0-1 mois</a></li>
					<li><a href="gallery_flash/armand.php?gallerie=bebeArmand13m&hidemenu=" class="menu">1-3 mois</a></li>				
                </ul>
			</dd>

		<dt onmouseover="javascript:montre('');" style="padding-left:15px;"><p class="flag"><img src="images/point.gif" height="18" width="17"/><span><a href="videoArmand.php" class="menu">Vid&eacute;os</a></span></p></dt>
		<dt></dt>
		<dt><img src="images/basmenu.gif" height="83" width="155" /></dt>
</dl>

       </div>


et voici la css :

body	{ background-color: #a0c4dd; background-image: url('images/fond.gif'); background-position: center center; background-attachment: fixed; background-repeat: repeat-y; -moz-user-select: none;}

a.menu:link 		{font-family: Arial, Helvetica, sans-serif;	font-size: 12px;	color: #3e5667;	text-decoration: underline;}
a.menu:visited 		{font-family: Arial, Helvetica, sans-serif;	font-size: 12px;	color: #3e5667;	text-decoration: underline;}
a.menu:hover 		{font-family: Arial, Helvetica, sans-serif;	font-size: 12px;	color: #36729a;	text-decoration: none;	background-color: #ffe4b5;}
a.menu:active 		{font-family: Arial, Helvetica, sans-serif;	font-size: 12px;	color: #36729a;	text-decoration: none;	background-color: #ffe4b5;}

.text	 			{font-family: Arial, Helvetica, sans-serif; font-size: 12px; color: #3e5667;}
.title	 			{font-family: Arial, Helvetica, sans-serif; font-size: 14px; color: #3e5667; font-weight: bold;}
.subtitle	 		{font-family: Arial, Helvetica, sans-serif; font-size: 12px; color: #3e5667; font-weight: bold;}
.minus     	 		{font-family: Arial, Helvetica, sans-serif; font-size: 10px; color: #3e5667; font-weight: bold;}

p { 
   margin: 0.1em; 
}

p.flag img, span { 
   vertical-align: middle;
   display: inline-block; 
}

p.flag span { 
   padding-left: 5px; 
}

dl, dt, dd, ul, li {
    margin: 0;
    padding: 0;
    list-style-type: none;
    font-family: Arial, Helvetica, sans-serif;		
    color: #3e5667;
}

dl {
      background-image: url('images/fondmenu.gif');
      background-position: center center;
      background-repeat: repeat-y;
}

#menu {
    position: absolute; /* placement du menu, à modifier selon vos besoins */
    top: 0;
    left: 0;
    width: 155px;
}

#menu dt {
    height: 20px;
    line-height: 20px;
    text-align: left;
    border: 0px;
    font-size: 12px; 
    +margin-bottom: -4px; 
}

#menu dd {
    border: 1px solid white;
    width: 100px;
    margin: 0 0 0 40px;
    background-color: #fff; 
   	filter: alpha(opacity=60);
	-moz-opacity: 0.60;
	opacity:0.60;     
}

#menu li {
    text-align: left;
    background-color: #fff;
    padding: 0 0 0 5px;
}

#menu li a, #menu dt a {
    cursor: pointer;
    text-decoration: none;
    border: 0 none;
    height: 100%;
}

#menu dt a {
    display: inline;
}

#menu li a {
    font-size: 10px;
    display: block;
}

#menu li a:hover {
    background: #ffe4b5;
}

#menu dt a:hover {
    background: none;
}


Y a quelques bidouillages pour que tout marche comme je veux, peut-être pas très beau à voir mais bon ;) je débute avec les css alors on fait ce qu'n peut :)

Auriez-vous une idée pour pouvoir appliqué un background-image sur le dl et non sur le dt ou sinon comment construire mon menu pour y rajouter ces entêtes arrondis ? Ai-je été assez claire ?

Merci d'avance de vos réponse.
A voir également:

15 réponses

s.spark Messages postés 2528 Statut Contributeur 618
 
Salut,

Tu n'as pas plutôt un lien, parce qu'on a pas les images et je ne comprend pas le problème.
0
Gihef Messages postés 5165 Statut Contributeur 2 779
 
Bonjour,

En dehors des erreurs de construction, +1

--
0
justin_gridou Messages postés 13 Statut Membre
 
voici une image du menu ...

http://picasaweb.google.fr/justin.gridou/Divers/photo#5122611187333499538

les entêtes arrondies sont entre des balises dt ... du coup on voit le fond d'écran appliqué au dl : les côté gauche et droit du menu ...

Gihef : je comprend pas ton message ...
0
s.spark Messages postés 2528 Statut Contributeur 618
 
Avec une capture d'écran personnellement ça demandes trop d'imagination pour deviner ce que fait ton code et surtout je ne peux absolument rien essayer.
0
justin_gridou Messages postés 13 Statut Membre
 
Désolée,

La version en ligne n'est pas la bonne : les images à bord arrondi on un fond bleu pour écraser l'autre background, mais cette solution ne me va pas car c'est moche lorsque le menu chevauche quelque chose. Donc faut remplacer les images hautmenu.gif et basmenu.gif par hautmenu_bis.gif et basmenu_bis.gif pour voir le problème.

je t'envoi le lien du site par message privé car je tiens pas à le mettre en public (le site est privé et je tiens pas à ce qu'on puisse y accéder de google ou autre ;) beaucoup dechose pour pas grand chose ;) lol )

Pour les autres :) désolée aussi. SI vous avez besoin vous aussi du lien je vous l'enverais en privé ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
s.spark Messages postés 2528 Statut Contributeur 618
 
Dans tes dt je ne pense pas que mettre des balises p soit utile (ce que tu peux mettre à p, tu peux le mettre à dt), le span aussi est complètement inutile. Ce n'est pas sémantique non plus je pense, bien qu'a ce sujet beaucoup d’autre chose sont discutables, comme par exemple mettre tantôt du css dans les balise, tantôt dans la feuille de style, utiliser des tableaux pour le design, ou encore n'adopter aucun doctype.

Dans ta feuille de style plutôt que de mettre une image en background à la balise dl, tu ne devrais rien mettre.

A la place mets plutôt aux balises ul :

ul
{
background: #a0c4dd;
border-left, border-right : 1 px solid #cae1f1;
}


L'icône devant le titre (point.gif) n'apporte rien au contenu, c'est pour faire jolie, ça devrait être en background
dt
{
background: url('images/point.gif') no-repeat ;
padding-left: 20px;
}


<dt class="flag" onmouseover="javascript:montre('smenu1');">Grossesse</dt>


display: inline-block; Ca n'existe pas, la balise est soit block soit inline, pas les deux.

Tout ça est inutile :

p.flag img, span { 
   vertical-align: middle;
   display: inline-block; 
}

p.flag span { 
   padding-left: 5px; 
}


Tu as ça dans ton code :
<span class="subtitle">&nbsp;&nbsp;&nbsp;&nbsp;</span>

<span class="subtitle">|</span>

Quel est l'intérêt de mettre un span et d'applique un style d'une classe css à des espaces et à un séparateur | ??? De plus cette class ce sert qu'a ça.

On retrouve à de nombreuse reprise ce morceau de css:
font-family: Arial, Helvetica, sans-serif;


Alors qu'il suffirait de le mettre une seul fois dans body.

Je m'arrête là parce que plus je découvre le code, plus c'est du n'importe quoi, ça sent le logiciel qui génère les pages automatiquement.
0
justin_gridou Messages postés 13 Statut Membre
 
Bonjour s.spark,

Merci de t'être penché un peu sur mon code, mais j'avais prévenu que c'était peut-être pas écrit très bien :)
Le code n'est pas généré automatiquement, c'est moi qu'il est écrit, et j'ai récupéré des petitq trucs sur le net pour contourner d'autre petit problème (alignement vertical des images avec le milieu du texte avec l'histoire du span ... )

Enfin, y a pas mal de bidouille pour la mise en page (comme le span avec les  ). Mais là n'est pas le problème.

Ma question se pose sur l'application du background sur le dl que je voudrais ne pas voir afficher pour "certains" dt ...

Voilà ... :)

Personne n'a l'air d'avoir d'idée ... je vais être obligée de laisser mon entête bidouillée quoi :)
0
s.spark Messages postés 2528 Statut Contributeur 618
 
J'ai commencé par ton problème avant d'évoquer les nombreux autres.

Mais si tu n'écoutes pas ... Voilà ... :)
0
justin_gridou Messages postés 13 Statut Membre
 
Effectivement, pardon, je vais trop vite ...

Tu me conseilles de le mettre au niveau de ul ...

J'ai testé, çà marche pas ... même ta ligne de code direct ... je supprime ce qui a dans la css au niveau du dl et rajoute pour le ul ... mais rien ? Tu fais autre chose dans la css ou le code ?
0
s.spark Messages postés 2528 Statut Contributeur 618
 
Mets plutôt ça (ce que je t'ai donné est faut) :

dl
{
background: #a0c4dd;
border-left : 1px solid #cae1f1;
border-right : 1px solid #cae1f1;
}


Le problème c'est que je ne peux pas faire de test sur ta page puisque tu n'as pas mis le code qui pose problème.
0
Gihef Messages postés 5165 Statut Contributeur 2 779
 
s.spark dit “je ne pense pas que mettre des balises p soit utile (ce que tu peux mettre à p, tu peux le mettre à dt), le span aussi est complètement inutile”

En effet, les <p> sont carrément prohibés dans des <dl>, <dt>, <ul>, <li> parce qu'inutiles.
Les <dl>, <dt>, <ul>, <li> sont suffisants.
Surtout qu'on peut aussi agir sur les <a>.

Quant aux <span>, ils ne sont utiles que si tu veux avoir un effet particulier sur une partie de ton texte.

--
0
justin_gridou Messages postés 13 Statut Membre
 
s.spark : le problème est le même. On a un background pour le dl et on met une image arrondie dans un dt, mais on voit le background du dl ... que ce soit une image ou directetement appliqué des border, c'est pareil !
0
s.spark Messages postés 2528 Statut Contributeur 618
 
Pourquoi l'image elle-est transparente ?
0
justin_gridou Messages postés 13 Statut Membre
 
ben pour les bords arrondi ...
0
s.spark Messages postés 2528 Statut Contributeur 618
 
Et pourquoi pas bleu comme la couleur du fond ? Et quel est le problème avec ce que tu as mis actuellement ?
0
justin_gridou Messages postés 13 Statut Membre
 
Ben actuellement il y un bug qui fait que si la fenêtre du navigateur est plus petite en hauteur que la hauteur du menu, le menu défile à l'infini ... et là, on voit que le menu est a un fond bleu ... j'ai pas réussi à résoudre le bug alors je voulais au moins que ce soit plus joli : que le menu est vraiment des bord arrondis !
Voilà :)

Désolée de pas avoir répondu avant mais j'étais en vacances ;)
0