Texte centré avec les rh-comme ligne sur les deux côtés, sans l'aide d'une table

J'ai besoin de créer un titre avec l'égalité de longueur des lignes sur les deux côtés du texte du titre, et une taille fixe l'espacement entre les lignes et le texte. Le texte varie donc il ne doit pas définir une largeur. Les lignes doivent prendre toutes les autres de la largeur disponible dans le titre conteneur. Le texte du titre ne doit pas définir un arrière-plan parce que l'arrière-plan derrière il va varier. Quelque chose comme ceci:

--------------------------------------------------------- Texte ---------------------------------------------------------

Je l'ai résolu en utilisant un tableau:

<table width="100%">
  <td><hr /></td>
  <td style="width:1px; padding: 0 10px; white-space: nowrap;">Some text</td>
  <td><hr /></td>
</table>

Vous pouvez l'essayer ici: http://jsfiddle.net/md2dF/3/

Sémantiquement c'est une très mauvaise solution, le titre n'a rien à voir avec des données tabulaires. Comment voulez-vous faire cela sans une table?

Pour résumer (parce que les solutions proposées ont tous oublié une ou à plusieurs des exigences):

  • Le titre ne doit pas avoir une largeur fixe
  • Le texte du titre ne doit pas avoir un arrière-plan
  • Le texte du titre ne doit pas avoir une largeur fixe
  • Les lignes de chaque côté du texte doit prendre toutes les autres largeur
  • L'espacement entre les lignes et le texte doit avoir une largeur fixe
  • En cas de doute, regardez http://jsfiddle.net/md2dF/3/

OriginalL'auteur Robert Kajic | 2012-09-20