J'ai quelques divs:comment puis-je sélectionner une div avec la classe "A" mais PAS avec la classe "B"?
<div class="A">"Target"</div>
<div class="A B">"NotMyTarget"</div>
<div class="A C">"NotMyTarget"</div>
<div class="A D">"NotMyTarget"</div>
<div class="A E">"NotMyTarget"</div>
Est-il un sélecteur CSS qui me obtenir le div contenant Target
mais pas les contenant divs NotMyTarget
?
La solution doit travailler sur IE7, IE8, Safari, Chrome et Firefox
Edit: Jusqu'à présent, Nick est le plus proche. Il est maladroit et je n'aime pas la solution, mais au moins cela fonctionne:
.A
{
/* style that all divs will take */
}
div.B
{
/* style that will override style .A */
}
Votre question est un peu mal formulée. Le titre rend clair ce que vous voulez, mais le code et la question ne sont pas. La réponse directe serait: il suffit d'utiliser '# Target'. Quant à la réponse sur la question dans le titre: CSS3 a un sélecteur ': not()', mais tous les navigateurs ne le font pas encore. – BalusC
J'aime la solution de Ron DeVera est plus élégant, mais ne pouvait pas le faire fonctionner sur n'importe quel navigateur. Est-ce que les commentateurs peuvent me dire si cela fonctionne vraiment, et j'ai juste besoin de travailler sur les petits détails? (malade aujourd'hui, peu de patience pour cela) – MedicineMan
J'ai édité ma réponse pour utiliser 'background', puisque' outline' ne fonctionne pas dans les anciennes versions d'IE. (J'utilise habituellement 'outline' comme CSS de diagnostic par défaut, puisque - comme' background' - il ne modifie pas la mise en page.) Chris Lively a également aimablement ajouté un exemple de travail complet à ma réponse. –