Bonjour,
CONTEXTE :
Soient le code html suivant :
et un code css3 associé :
Jusqu'ici tout fonctionne très bien, le minilogo audio n'est décalé que lorsqu'il est précédé du minilogo photo.
Pour info, ces <p> sont des "minimenus" ; il y a de nombreux autre <p> avec cette structure, chacun correspondant à un projet audiovisuel, qui peut comporter photo et/ou audio et/ou vidéo, d'où la présence d'une à trois <img>selon les cas.
ÇA SE CORSE :
J'insère ensuite des <a> autour de chaque <img> afin que celles-ci pointent sur des liens.
Ce qui donne le code html suivant :
LE PROBLEME :]
Dès lors la sélection CSS ne fonctionne plus, car les <a> viennent "parasiter".
Comment alors réaliser le même type de sélection "conditionnelle" que j'avais réussie à faire en CSS lorsque les balises <a> ne venaient pas s'interposer entre mes <img> en m’empêchant ainsi de jouer avec le sélecteur "+" ?
>> Précisions :
- je ne souhaite pas recourir au DOM via javascript, je voudrai rester en pur CSS à ce niveau.
- l'utilisation d'id ne me semble pas pertinente car je veux un code CSS générique qui s'appliquera chaque fois que je rajouterai de nouveaux paragraphes avec cette structure
Merci d'avance de votre aide.
Bonne journée,
D.
Modifié par DYeDO (14 Dec 2013 - 11:48)
CONTEXTE :
Soient le code html suivant :
<p class="miniMenu">
<img src="img/minilogo-photo.png" alt="/photo/" />
<img src="img/minilogo-audio.png" alt="/audio/" />
<img src="img/minilogo-video.png" alt="/video/" />
</p>
<p class="miniMenu">
<img src="img/minilogo-audio.png" alt="/audio/" />
<img src="img/minilogo-video.png" alt="/video/" />
</p>
et un code css3 associé :
.miniMenu img[alt="/photo/"] + img[alt="/audio/"]{/* au sein des <p> de classe "miniMenu", pointe l'<img> minilogo audio lorsqu'elle est précédée de l'<img> minilogo photo*/
width:100px;
position:relative;
left:-0.2rem; /*décale légèrement l'<img>vers la gauche pour des questions ésthétiques*/
}
Jusqu'ici tout fonctionne très bien, le minilogo audio n'est décalé que lorsqu'il est précédé du minilogo photo.
Pour info, ces <p> sont des "minimenus" ; il y a de nombreux autre <p> avec cette structure, chacun correspondant à un projet audiovisuel, qui peut comporter photo et/ou audio et/ou vidéo, d'où la présence d'une à trois <img>selon les cas.
ÇA SE CORSE :
J'insère ensuite des <a> autour de chaque <img> afin que celles-ci pointent sur des liens.
Ce qui donne le code html suivant :
<p class="miniMenu">
<a href="photo_projet1.html"><img src="img/minilogo-photo.png" alt="/photo/" /></a>
<a href="audio_projet1.html"><img src="img/minilogo-audio.png" alt="/audio/" /></a>
<a href="video_projet1.html"><img src="img/minilogo-video.png" alt="/video/" /></a>
</p>
<p class="miniMenu">
<a href="audio_projet2.html"><img src="img/minilogo-audio.png" alt="/audio/" /></a>
<a href="video_projet2.html"><img src="img/minilogo-video.png" alt="/video/" /></a>
</p>
LE PROBLEME :]
Dès lors la sélection CSS ne fonctionne plus, car les <a> viennent "parasiter".
Comment alors réaliser le même type de sélection "conditionnelle" que j'avais réussie à faire en CSS lorsque les balises <a> ne venaient pas s'interposer entre mes <img> en m’empêchant ainsi de jouer avec le sélecteur "+" ?
>> Précisions :
- je ne souhaite pas recourir au DOM via javascript, je voudrai rester en pur CSS à ce niveau.
- l'utilisation d'id ne me semble pas pertinente car je veux un code CSS générique qui s'appliquera chaque fois que je rajouterai de nouveaux paragraphes avec cette structure
Merci d'avance de votre aide.
Bonne journée,
D.
Modifié par DYeDO (14 Dec 2013 - 11:48)