101 votes

Comment définir la propriété de hauteur pour le SPAN

J'ai besoin de rendre le code suivant étirable avec une hauteur prédéfinie.

<style>
.title{
   background: url(bg.gif) no-repeat bottom right;
   height: 25px;
}
</style>

<span class="title">This is title</span>

Mais comme span est un élément en ligne, la propriété "height" ne fonctionnera pas.

J'ai essayé d'utiliser div à la place, mais il s'étendra jusqu'à la largeur de l'élément supérieur. Et la largeur doit être flexible.

Quelqu'un peut-il suggérer une bonne solution pour cela ?

Merci d'avance.

161voto

Chen Asraf Points 5529

Donnez-lui un display:inline-block en CSS - cela devrait lui permettre de faire ce que vous voulez.
En termes de compatibilité : IE6/7 sera travailler avec cela, comme le suggère le mode quirks :

IE 6/7 n'accepte la valeur que sur les éléments avec un display : inline naturel.

27voto

Jon Galloway Points 28243

Utilisez

.title{
  display: inline-block;
  height: 25px;
}

Le seul truc est le support du navigateur. Vérifiez si votre liste de navigateurs pris en charge gère les inline-block ici. .

13voto

I.devries Points 3788

Ceci pour que display:inline-block fonctionne dans tous les navigateurs :

Assez bizarrement, dans IE (6/7), si vous déclenchez hasLayout avec "zoom:1" et que vous définissez ensuite l'affichage en ligne, il se comporte comme un bloc en ligne.

.inline-block {
    display: inline-block;
    zoom: 1;
    *display: inline;
}

6voto

David Thomas Points 111253

En supposant que vous ne voulez pas en faire un élément de bloc, vous pouvez essayer :

.title  {
    display: inline-block; /* which allows you to set the height/width; but this isn't cross-browser, particularly as regards IE < 7 */
    line-height: 2em; /* or */
    padding-top: 1em;
    padding-bottom: 1em;
}

Mais la solution la plus simple est de traiter simplement la .title comme un élément de niveau bloc, et en utilisant les balises d'en-tête appropriées <h1> par le biais de <h6> .

0voto

mike s Points 1

Span { display: table-cell; height: (your-height + px); vertical-align: middle; }

Pour que les espaces fonctionnent comme des cellules de tableau (ou tout autre élément, d'ailleurs), la hauteur doit être spécifiée. J'ai donné une hauteur aux spans, et ils fonctionnent très bien - mais vous devez ajouter de la hauteur pour qu'ils fassent ce que vous voulez.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X