2009-02-18 7 views
2

J'ai une liste standard de liens:ajouter une classe à l'élément li ou le a?

<li><a href="">one</a></li> 
<li><a href="">two</a></li> 

Si je veux ajouter une classe supplémentaire à l'un des éléments de la liste, dois-je ajouter la classe à la li ou un élément? Quelle est la meilleure pratique?

Merci beaucoup!

Cameron

Répondre

11

Si vous stylisez l'élément de la liste, comme dans la création d'un menu, ajoutez la classe à l'élément de liste. Si vous souhaitez modifier l'apparence du lien, ajoutez-le à la balise d'ancrage.

Il n'y a vraiment pas de bonne réponse. Vous devriez styliser celui qui a le plus de sens sur le plan sémantique. Dans de nombreux cas, vous devrez peut-être styliser à la fois l'élément de liste et l'ancre, auquel cas vous devrez ajouter la classe à la balise li et définir vos styles pour les deux.

li.myclass { 
    /* li styles */ 
} 

li.myclass a { 
    /* link styles */ 
} 

C'est à peu près ce que alex a suggéré. Le deuxième style cible uniquement les liens enveloppés dans les éléments de liste de votre classe.

+0

J'ai supprimé quelques commentaires qui ne font pas beaucoup de sens après le montage que j'ai fait il y a 2 heures. Je ne voulais pas être impoli, c'est juste que les commentaires ne s'appliquaient plus. –

+0

Pas de problème ... :-) Je me demandais juste pourquoi vous avez incorporé ma critique * constructive * dans votre réponse, lorsqu'une autre réponse disait déjà la même chose ... (N'hésitez pas à supprimer ces commentaires maintenant, ils ne sont pas sur le sujet.) –

+0

Cela ne me dérange pas d'être corrigé, donc ces commentaires sont d'accord. Je n'aime pas quand je lis une réponse qui dit X, alors voir un commentaire qui dit "Vous auriez dû mentionner X." Cela peut être un peu déroutant. –

1

Qu'est-ce que vous voulez le style, l'élément de la liste ou l'ancre. Si vous souhaitez styliser l'ancre, ajoutez-la à

5

Je généralement ajouter à l'élément de liste .. cela vous donne la possibilité de cibler avec CSS l'élément de liste ou la balise d'ancrage contient

li.class-name { 
    /* target li class */ 

} 

li.class-name a { 
    /*target it's anchor */ 
} 

Dans la production si, vous êtes mieux de quitter le li initial du nom de classe en le référençant. C'est inutile (sauf si vous avez vraiment un mauvais souvenir).

+0

S'il vous plaît laissez une explication si vous allez downvote. – alex

0

Si vous souhaitez simplement attribuer un style à l'un des liens de votre liste, utilisez un ID au lieu d'une classe. Ainsi.

<li id="new_style"><a href="">one</a></li>

et le style comme ceci:

#new_style { margin: 1em; font-weight: 600; }

Questions connexes