2009-11-23 6 views
2

J'ai un problème mineures css.images de fond div apparaît, mais la couleur de fond ne

J'ai une série de divs en couches et j'ai défini les styles de classe div et ils apparaissent tous (padding, couleurs de police, etc). Cependant, la couleur d'arrière-plan ne fonctionnera pas pour les divs superposés. Pour tester, j'ai essayé de définir un style de bordure et de bordure, et tout a bien fonctionné, sauf la couleur de la bordure, elle n'apparaissait pas et la bordure avec le style supplémentaire restait noire.

Chaque div possède un identifiant unique, et ceux dans lesquels la couleur de fond ne fonctionne pas sont imbriqués (côte à côte) dans un conteneur div. J'ai essayé de comprendre si les divs imbriqués prennent la couleur d'arrière-plan div divisée, mais j'ai essayé de changer le débordement du parent, et cela n'a eu aucun effet. En guise de travail, j'ai créé un fichier jpg 1 x 1px de la couleur d'arrière-plan correcte et j'ai défini l'image d'arrière-plan de divs, ce qui a fonctionné. Mais c'est un hack, et je ne suis pas mieux de savoir pourquoi tous les éléments de style fonctionnent, sauf la couleur de fond.

J'espère avoir suffisamment expliqué ma situation, si quelqu'un peut m'aider, je l'apprécierais.

(aussi, en plus, j'utilise dreamweaver d'écrire du code et les couleurs de fond apparaissent dans le mode de prévisualisation, mais ne montre pas dans Firefox, Chrome ou IE)

code demandé:

 <div id="longBox"> 
     <div id="specialLable"> Rent Specials &amp; promotions</div><!--end specialLable--> 
     <div id="promoMain"> 
     <div id="proHeader">Alhambra Village Fall Special:</div><!--end proHeader--> 
     <div id="proDate">Expires: Date</div><!--end proDate--> 
     <div id="clear"></div> 
     <div id="protext">This is where the details go</div><!--end protext--> 
     <div id="promoConditions"><br />Limited availability. All promotions subject to change. Not good with other offers or promotions unless specified.</div><!--end promoConditions--> 
     <div id="proContact">Request an Appointment</div><!--end proContact--> 
     </div><!--end specialLable--> 
     </div><!--end longBox--> 


#longBox{ 
width:713px; 
height:225px; 
background-color:#FFFFFF; 
float:left; 
margin:1.2em 0 0 .7em; 
} 

#specialLable{ 
background-image:url(../images/01titleBar.png); 
margin: .5em .5em .5em .5em; 
width:689px; 
height:30px; 
font-size:1.2em; 
font-weight:bold; 
text-transform:uppercase; 
color:#667b90; 
padding:3px 0 0 6px; 
} 


#promoMain{ 
margin: 0 .5em .5em .6em; 
background-color:#ced5da; 
height:166px 
} 

#proHeader{ 
font-size:11px; 
text-align:left; 
font-weight:bold; 
text-transform:uppercase; 
color:#CC6666; 
float:left; 
padding:.3em .6em .3em .6em; 
margin:.6em 0 0 .6em; 
background-image:url(/images/images/bgwhite.jpg); 
background-repeat:repeat; 
width:503px; 
} 
#proDate{ 
font-size:11px; 
text-align:left; 
font-weight:bold; 
text-transform:uppercase; 
background-image:url(/images/images/bgwhite.jpg); 
background-repeat:repeat; 
color:#CC6666; 
float:right; 
width:150px; 
padding:.3em .6em .3em .6em; 
margin:.6em .6em .6em 0; 
} 

#protext{ 
font-size:11px; 
text-align:left; 
margin:0 .6em 0 .6em; 
height:80px; 
background:ffffff; 
padding:0 0 0 .6em; 
background-image:url(/images/images/bgwhite.jpg); 
background-repeat:repeat; 
} 

#promoConditions{ 
font-size:9px; 
text-align:left; 
line-height:100%; 
float:left; 
padding:0 .6em 0 .6em; 
margin:.6em 0 0 .6em; 
width:503px; 
} 

#proContact{ 
font-size:11px; 
text-align:left; 
font-weight:bold; 
text-transform:uppercase; 
background-image:url(/images/images/bgwhite.jpg); 
background-repeat:repeat; 
color:#CC6666; 
float:right; 
width:150px; 
padding:.3em .6em .3em .6em; 
margin:.6em .6em 0 0; 
} 
+1

un code collé serait bien. préférablement sans trop de peluches autour, essayez de créer un fichier html de code aussi peu que possible qui reproduit encore l'erreur, et collez-le sur pastebay.com s'il est trop long pour poster ici –

+0

J'ai ajouté le code demandé. Merci pour votre attention – Anthony

+0

J'ai toujours défini l'attribut class de div comme étant l'une des classes définies dans le CSS. – ChadNC

Répondre

1

La raison pour laquelle les images fonctionnent est parce qu'elles sont de nouveaux attributs définis à l'enfant. Le parent n'a jamais eu un IMG pour un BG, donc l'utilisation du hack pxel couleur 1x1 fonctionnera certainement comme vous sortez de la structure de l'héritage. Quoi qu'il en soit:

les opérations suivantes:

 #longBox{ 
     width:713px; 
     height:225px; 
     background-color:#FFFFFF; 
     float:left; 
     margin:1.2em 0 0 .7em; 
     } 

    div#specialLable{ 
    background-image:url(../images/01titleBar.png); 
    margin: .5em .5em .5em .5em; 
    width:689px; 
    height:30px; 
    font-size:1.2em; 
    font-weight:bold; 
    text-transform:uppercase; 
    color:#667b90; 
    padding:3px 0 0 6px; 
    } 


    div#promoMain{ 
    margin: 0 .5em .5em .6em; 
    background-color:#ced5da; 
    height:166px 
    } 

    div#proHeader{ 
    font-size:11px; 
    text-align:left; 
    font-weight:bold; 
    text-transform:uppercase; 
    color:#CC6666; 
    float:left; 
    padding:.3em .6em .3em .6em; 
    margin:.6em 0 0 .6em; 
    background-image:url(/images/images/bgwhite.jpg); 
    background-repeat:repeat; 
    width:503px; 
    } 

div#proDate{ 
    font-size:11px; 
    text-align:left; 
    font-weight:bold; 
    text-transform:uppercase; 
    background-image:url(/images/images/bgwhite.jpg); 
    background-repeat:repeat; 
    color:#CC6666; 
    float:right; 
    width:150px; 
    padding:.3em .6em .3em .6em; 
    margin:.6em .6em .6em 0; 
    } 

div#protext{ 
    font-size:11px; 
    text-align:left; 
    margin:0 .6em 0 .6em; 
    height:80px; 
    background: #ffffff; 
    padding:0 0 0 .6em; 
    background-image:url(/images/images/bgwhite.jpg); 
    background-repeat:repeat; 
    } 

    div#promoConditions{ 
    font-size:9px; 
    text-align:left; 
    line-height:100%; 
    float:left; 
    padding:0 .6em 0 .6em; 
    margin:.6em 0 0 .6em; 
    width:503px; 
    } 

    div#proContact{ 
    font-size:11px; 
    text-align:left; 
    font-weight:bold; 
    text-transform:uppercase; 
    background-image:url(/images/images/bgwhite.jpg); 
    background-repeat:repeat; 
    color:#CC6666; 
    float:right; 
    width:150px; 
    padding:.3em .6em .3em .6em; 
    margin:.6em .6em 0 0; 
    } 
+0

merci. Je pense que c'est le ticket. – Anthony

+0

Je peux presque vous garantir qu'il ajoutait 'div' aux règles ici qui l'ont fait, plutôt que les images 1px. Vous ne devriez pas avoir besoin d'utiliser une image de fond blanche. – keithjgrant

+1

Ah, je vois, il y a un autre niveau de parentage ici que je n'ai pas remarqué au début. Utilisez 'background-image: none;' sur les enfants. – keithjgrant

0

avez-vous un plugin comme Firebug? Cela peut vous aider à vous montrer des règles qui pourraient écraser la couleur d'arrière-plan.

De même, assurez-vous d'inclure le # avant vos numéros de couleur hexadécimaux. (Ex: #ffffff)

... Il semble que vous utilisiez l'identifiant pour sélectionner le CSS, qui est le plus spécifique, donc il ne peut être remplacé que par: 1) un autre sélecteur d'identifiant plus bas dans le CSS , ou 2) un sélecteur n'importe où dans le CSS avec à la fois un identifiant et un nom de classe ou de tag, augmentant ainsi sa spécificité. (CSS specificity made simple here)

0

Vérifiez votre ciblage ... parfois, l'instruction explicite d'une classe ou d'un ID ne suffit pas lorsqu'il hérite des attributs parents.

Donc, comme, en précisant:

#yourid {background-color: #333;} 

pourrait ne pas être suffisant si son parent a un backgound spécifié.

Vous devrez peut-être faire element.ID comme

div#yourid {background-color: #333;} 

attrapez ma dérive?

EDIT:

Oui, je peux voir les enfants héritant de #longBox. C'est mieux pour vous de cibler comme je l'ai mentionné auparavant. De plus, les éléments hash/pound/tic tac toe manquants sont requis pour la validation, mais la plupart des navigateurs devraient interpréter le CSS mal formé.