Zone de texte opaqe au bas d'une img:

Résolu/Fermé
RomainGA Messages postés 109 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 20 avril 2024 - 5 avril 2021 à 14:15
 Totox - 7 avril 2021 à 18:30
Bonjour, je n'arrive pas a superposé une zone de texte opaque sur les 30% inférieur d une images. a chaque fois, cette zone de texte opaque apparait sous l'image.
voici ce que j ai fait

<article style="width: 40%;">
<img src="img/ocean.png" style="width: 100%;z-index: 1;">
<div style="background-color: black;opacity: 0.5; color: white;z-index: 2;">
<h1>titre</h1>
<p>desc</p>
<span>date</span>
</div>
</article>

pls help.
Cordialement.

1 réponse

Salut,
et qu'avez vous fait pour superposer un élément à un autre?
Il n'y a rien qui change le flux HTML normal du document donc 2 éléments à la suite seront à la suite et non superposés(l'un recouvrant l'autre).

z-index indique le niveau de superposition des éléments quand il y a une superposition. Un élément apparaissant après l'autre sera forcément celui recouvrant le précédent donc il n'est pas utile ici ni ne sert à superposer.

Faites quelques recherches sur le positionnement en CSS il y a tout un tas de cours et tutos sur le sujet et de méthodes différents qui peuvent correspondre au cas d'utilisations, voire aux préférences de chacun pour faire une mise en page.

Voir par exemple le positionnement relatif qui semble correspondre à ce que vous voulez de la façon la plus simple.
/*sélecteurCSS*/{
 position:relative;
 top:-30%;
}
/* bien sûr ça remet en question la mise en page du reste de la page. Un élément hors du flux HTML est déplacé les suivants le sont aussi.*/


manuel d'utilisation:
https://www.w3schools.com/cssref/pr_class_position.asp

ps: hors du cadre d'un test rapide(et temporaire) il n'est pas du tout recommandé d'inclure le CSS dans l'attribut style d'une balise(voir class et id ainsi que les sélecteurs en général). C'est la plus mauvaise façon de faire et à éviter pour plusieurs raisons.

ps2: on a pas la même définition d'opaque il me semble...
opacity: 0.5;
indique une opacité de 50%(50% restants étant transparent) et non quelque chose d'opaque(comportement par défaut des contenus et non du fond de l'élément). Il faudrait parler plutôt de semi-transparence voire de semi-opacité(moins employé je pense car moins évocateur).
0