2012-03-16 4 views
1

Bonjour, J'ai vu un comportement étrange lors de l'utilisation CSS sélecteur HTML et sélecteur de classe. dans le fichier HTML je ce code:CSS HTML sélecteur vs sélecteur de classe

<div class="content"> 
    <h1>Registration Form</h1> 
</div> 

Et dans le fichier Css je:

.content 
{ 
    margin:auto; 
    width:600px; 
    border:solid 1px black; 
    background-color:White; 
    padding:10px; 
} 

h1 
{ 
    color:Gray; 
    font-size:18px; 
    border-bottom:solid 1px orange; 
} 

code ci-dessus fonctionne parfaitement. Lorsque j'ai changé le sélecteur HTML h1 en sélecteur de classe en écrivant .h et h1 class="h" ENCORE, cela a fonctionné parfaitement.

MAIS quand j'ai changé sélecteur de classe .content-div (c.-à-je converti sélecteur de classe de div balise DIV sélecteur HTML lui-même), la sortie a changé. Il ne m'a pas montré le texte Formulaire d'inscription et a montré des lignes horizontales au-dessus et au-dessous de la zone où le texte du formulaire d'inscription serait présent. pourquoi est ce comportement étrange? Est-ce que cela prouve que le sélecteur de classe et le sélecteur HTML se comportent différemment même s'ils sont appliqués avec l'effet de règle de style SAME?

+0

Qu'est-ce que vous utilisez pour faire la sélection? javascript natif? jquery? mootools? – Kristian

+0

pouvez-vous créer un exemple pour nous sur http://jsfiddle.net/ parce que, comme vous définissez la chose, il n'y a pas besoin de conflit. – sandeep

+0

Il se passe probablement plus de choses dans votre code HTML que ce que vous montrez. Si vous passez '.content {}' à 'DIV {}', vous affecterez toutes les balises 'DIV'. Il est possible que d'autres 'DIV' soient en conflit. Le deuxième problème que vous rencontrez concerne d'autres problèmes de CSS et de spécificité. J'apprécie ce site pour rappeler la spécificité http://www.stuffandnonsense.co.uk/archives/css_specificity_wars.html – jmbertucci

Répondre

3

Un sélecteur de classe est plus spécifique qu'un sélecteur de type.

Lorsque vous changez le sélecteur de type en un sélecteur de classe, le premier sélecteur a toujours la priorité, juste parce qu'il vient en premier.

Lorsque vous remplacez le sélecteur de première classe par un sélecteur de type, le second sélecteur devient plus spécifique et a la priorité.

+0

http://www.w3.org/TR/CSS21/cascade.html#specificity – Wex