Se débarrasser des espaces entre les travées
Je suis en train de simuler une barre d'onglet avec HTML.
J'aimerais que la largeur de chaque onglet pour être réglé en fonction de la longueur du texte (qui est, pas de largeur fixe) et à retour automatique à la ligne dans le cas où elle dépasse la largeur de l'écran.
J'ai presque atteint:
<html>
<head>
<style type="text/css">
#myTabs .tab {
float: left;
}
#myTabs .tab_middle {
margin: 0;
padding: 0;
border: none;
background-image:url('images/tabs/tab_middle.png');
}
#myTabs .tab_left {
margin: 0;
padding: 0;
border: none;
background-image:url('images/tabs/tab_left.png');
}
#myTabs .tab_right {
margin: 0;
padding: 0;
border: none;
background-image:url('images/tabs/tab_right.png');
}
</style>
</head>
<body>
<div id="myTabs">
<div class='tab'>
<span class='tab_left'> </span>
<span class='tab_middle'>very very looong</span>
<span class='tab_right'> </span>
</div>
<div class='tab'>
<span class='tab_left'> </span>
<span class='tab_middle'>another loooong tab</span>
<span class='tab_right'> </span>
</div>
<div style='clear:both'></div>
</div>
</body>
</html>
Mais, il y a une très ennuyeux de l'espace entre l'ouverture de l'onglet image et le cours de clôture.
Comme vous pouvez le voir, j'ai essayé avec un rembourrage, de l'espacement et de la frontière, avec pas de chance.
EDIT:
J'ai essayé de remplacer le couvre avec une petite table (une ligne, trois <td>
s), mais c'est la même, seul l'espace entre les deux est plus petit.
Vous devez vous connecter pour publier un commentaire.
Se débarrasser des retours à la ligne entre les travées. Exemple:
Retours à la ligne sont comptés comme un espace en HTML.
Une autre façon d'ailleurs njbair's l'un est d'ajouter
font-size: 0
à l'élément parent.Je préfère celui-ci car il est esthétiquement mieux pour l'onglet conception.
Au lieu de cela:
...nous pouvons utiliser ceci:
...qui semble mieux 🙂
Bien sûr, n'oubliez pas de définir votre vraie taille de la police pour les onglets.
MODIFIER:
Il y a un moyen de plus pour se débarrasser des espaces: par l'ajout de commentaires.
Exemple:
Une autre option est d'utiliser nagative
letter-spacing:-10px
- qui a un léger impact sur la mise en forme.Eu cette idée grâce à cette réponse
dur à tester sans les images, mais j'ai ajouté de la couleur d'arrière-plan et display:inline à la racine des onglets. Veuillez essayer ceci:
Onglet milieu, à gauche et à droite aussi besoin de float à gauche.
njbair la réponse est correcte.
Une autre option est d'utiliser un tableau, avec le
border-collapse: collapse;
propriété.Un autre gotcha: dans Internet Explorer 6.0, la première approche (s'étend) ne fonctionne pas comme prévu. Lors du redimensionnement de la fenêtre, c'est à dire wordwraps la durée, de rupture de l'onglet, alors qu'avec l'approche de table, même IE envoie l'ensemble de l'onglet.