2009-03-13 6 views
1

deux parties à ma question:contrôle Héritage CSS - Héritant Autres services de contrôle Styles

1) Est-il possible d'hériter des attributs d'un autre contrôle et styles CSS? Supposons que les contrôles ont pas de hiérarchie parent/enfant et peuvent être complètement différents types de contrôle:

IE:

#MyFirstControl 
{ 
    width: 100px; 
} 

#MySecondControl 
{ 
    width: MyFirstControl.styles.width; /* This doesn't work */ 
} 

2) Supposons une étiquette d'étiquette est un enfant d'une autre étiquette. L'attribut width ne fonctionnera pas avec "inherit" ni "auto". Qu'est-ce qui ne va pas?

IE:

<style> 
    div 
    { 
    width: 100px; 
    } 
</style> 

<div> 
    <!-- This label does what it wants for width. It's not the width of the containing div --> 
    <label style="width: inherit">Some Text</label> 
<div> 

Répondre

2

Partie 1: vous voulez utiliser les noms de classe, pas ids, pour contrôler les styles:

.control_a { 
    width: 100px; 
} 

<blah id='MyFirstControl' class='control_a'/> 
<blah id='MySecondControl' class='control_a'/> 

Cela vous permet de partager des styles à travers un certain nombre de balises. De plus, gardez à l'esprit, vous pouvez utiliser plus d'un nom de classe sur un seul élément:

.control_a { 
    width: 100px; 
} 

.red { background: #f00; }  
.blue { background: #00f; } 

<blah id='MyFirstControl' class='control_a red'/> 
<blah id='MySecondControl' class='control_a blue'/> 

Cela vous permet de sélectionner plusieurs sources de style pour un seul élément.

+0

Merci pour votre réponse et votre temps Ned. J'utilise beaucoup les cours. Je n'ai donné aucune indication, mais je connais assez bien le CSS. C'était plus philisophique que tout. Je tentais de résoudre un problème avec la manipulation CSS vs JavaScript des attributs de contrôle. Merci mec! – Boydski

1

Il n'y a aucun moyen d'hériter des "objets" CSS. Vous pouvez hériter des styles des balises à l'intérieur d'autres balises, mais c'est l'héritage du tag et non le style lui-même. Si vous placez un tag dans un tag avec un autre style, il héritera de ce style. Il pourrait être intéressant si les styles CSS étaient traités comme des objets, car vous pourriez éviter beaucoup de codage, mais puisque vous pouvez créer une classe qui peut être appliquée à des types disparates d'objets, et même appliquer plusieurs classes à une étiquette , c'est plus intéressant que nécessaire.

Je ne suis pas sûr de la deuxième question, mais j'imagine que cela a à voir avec le fait que vous postulez pour un nom de tag, et que vous n'utilisez pas de classe ou d'identifiant. Je devrais jouer avec ça pour voir si je peux comprendre quelque chose.

0

1) Étant donné que CSS ne permet pas d'auto-référence, vous pourriez avoir des aspects communs de deux éléments distincts spécifiés dans le même style:

#MyFirstControl, #MySecondControl 
{ 
    width: 100px; 
} 

2) Si mon IDE et le navigateur sont à croire, inherit n'est pas une valeur valide pour width dans ce contexte, mais je ne sais pas pourquoi. C'est peut-être pourquoi votre exemple ne fonctionne pas.

Questions connexes