2010-07-06 16 views
1

J'écris un extrait JS pour créer une série d'onglets afin de permettre à un utilisateur de faire défiler les différentes parties d'une page Web au lieu de les faire défiler. Les onglets sont tous des éléments <a>, entourés d'un élément <span>, chacun à des fins précieuses. Les travées sont toutes glissées dans un <div>. Pas de flottement. Le nombre d'onglets affichés dépend de la page qui est modifiée par le script, et peut aller jusqu'à une vingtaine, voire plus. Dans les cas où il y a beaucoup d'onglets, le div doit envelopper. J'ai accompli cela en FF en insérant un espace de largeur nulle entre chaque travée, ce qui fonctionne plutôt bien. Cependant, webkit n'aime pas ça, et refuse de faire des sauts de ligne. Pour des raisons esthétiques, les onglets doivent être compressés les uns à côté des autres, et pourtant je ne sais pas comment faire cela d'une manière qui fonctionne avec Safari et Chrome. Toute assistance sera grandement appréciée.Création d'un point de fin de largeur nulle pour tous les navigateurs

Mon code peut être vu here.

+0

Cela nous aiderait beaucoup si nous pouvions voir la réelle DOM/HTML généré que votre script a créé et le style qui lui est associé. – Photodeus

+0

Malheureusement, cela peut être un peu difficile. Le script s'exécute sur Wiktionary, l'équivalent du dictionnaire Wikipédia. Si vous allez sur http://en.wiktionary.org/wiki/WT:PREFS, cochez la dernière case à cocher intitulée "Navigation par onglets des sections de langue", puis entrez "dans" dans le champ de texte en haut à gauche, vous pouvez le voir . Je suis désolé que je n'ai pas un moyen plus simple de reproduire cela. – Atelaes

+0

L'accès au code HTML actuel est un bon moyen de déboguer et d'apprendre. Vous pouvez inspecter le DOM après le chargement de la page pour afficher la source générée. Dans Firefox, j'utilise la barre d'outils du développeur pour cela. AFAIK, Chrome a quelque chose pour ça aussi. Je ne me souviens pas sans regarder où c'était. – Photodeus

Répondre

0

Sur mon site, je l'ai résolu ce problème en ayant le conteneur div avoir

 
div#container { 
    overflow: auto; 
} 

et dans les travées à l'intérieur du div

 
div#container span 
{ 
    float: left; 
    display: block; 
} 
+0

hmm, comment puis-je supprimer ma réponse, je dois d'abord vérifier l'exemple de code: P – Photodeus

+0

Il devrait y avoir un lien de suppression dans le coin inférieur gauche. – SLaks

+0

En fait, j'avais initialement cette configuration. Le problème avec cela est que le div ne s'étend pas pour contenir du contenu flottant, et par conséquent peut causer des problèmes avec tout contenu qui le suit immédiatement quand il enveloppe. – Atelaes