Les feuilles de style CSS Vertical aligner le texte dans l'absolu placé paragraphe

Avant de commencer:

Merci de ne pas fermer cette comme un doublon d'une autre question. J'ai juste cherché ici sur Stackoverflow, sans trouver exactement le cas.

La plus proche est je crois cette question. Encore, les réponses étant donné que l'on n'a pas vraiment fonctionné pour moi, je crois parce que le paragraphe est défini position: absolute;.

C'est le code HTML:

<ul>
    <li><img src="http://www.placehold.it/300x200" /><p><span>Lorem Ipsum</span></p></li>
</ul>

Et le CSS:

li {
  position: relative;
  float: left;
  overflow: hidden;
}

img {
  width: 100%;
  vertical-align: middle;
}

p {
  background-color: rgba(255, 0, 0, .3);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

span {
    background-color: rgba(0, 255, 0, .3);
    vertical-align: middle;
}

Violon: http://jsfiddle.net/DpVjZ/

vertical-align: middle; juste bosses le texte un tout petit peu loin du sommet, mais pas vraiment dans le milieu.

Réglage de la durée de position: absolute; puis en appliquant top: 50%; et puis margin-top: -x%; ne fonctionnera pas parce que la hauteur de l'étendue de mesure n'est pas connu comme il est contenu dynamique.

Bien que la question liée déclare que c'est une mauvaise pratique, j'ai aussi essayé la display: table-cell approche, sans aucun résultat. S'il vous plaît aider moi.

Pourquoi avez-vous un niveau de bloc d'un élément à l'intérieur d'un élément de la liste? Ne pensez-vous pas que c'est pourquoi vous rencontrez des problèmes?
Autant que je sache, le seul de la liste des éléments qui ne sont pas autorisés à contenir des éléments de niveau bloc sont dt.
Vous pouvez bien sûr régler l'élément de la liste à display:block;. Je pense que vous êtes l'approche du problème par le mauvais bout de la lorgnette. Qu'essayez-vous de réaliser? Visuellement, qu'est-il censé ressembler? Le texte est-il censé être sur le haut de l'image?
c'est une question poilu
Oui, le texte est censé être sur le haut de l'image, centrée verticalement et horizontalement. Réglage de l'élément de la liste à display: block; ne fait rien pour moi, pourriez-vous préciser un peu plus?

OriginalL'auteur Sven | 2013-01-21