Comment définir l'espacement des lignes d'une liste ordonnée de manière cohérente sur tous les navigateurs?
J'ai une liste ordonnée qui utilise de grandes Géorgie pour la numérotation et la police Arial plus petite pour le texte (comme l'a recommandé à Comment aligner deux colonnes de texte en CSS). Je suis à l'aide de balises p à l'intérieur de la li afin que je puisse régler la taille de la police, qui définit également les associés de la hauteur de ligne (assurez-vous qu'il est normal interligne si la li courir sur plus d'une ligne). C'est presque bien, mais dans firefox, l'espacement entre les balles est beaucoup plus que n'importe quel autre navigateur, tous les autres semblent être l'ajout d'une marge au-dessus de la p balises en dépit de définir explicitement les marges à 0. Quand je la regarde utilisant les outils de développement de Chrome, il semble ajouter -webkit-marge avant: cadratin (1 em;
-webkit-marge-après: cadratin (1 em; de la p des balises qui ne sont pas remplacées. Cela peut ne pas être la cause, comme il arrive aussi dans non les navigateurs webkit en dehors de FF et tout le reste que j'ai lu dit que ce sont remplacées par la définition de la marge (qui sont définis dans le code ci-dessous et en haut de mon fichier css avec un tout élément css marge de réinitialisation). Je serais très reconnaissante si quelqu'un pouvait rappeler pourquoi je suis de plus l'espacement sur tous les non FF navigateurs que j'ai essayé de travailler depuis des siècles, et ne vois pas pourquoi il se passe! Pour info, j'ai essayé de définir explicitement la hauteur de ligne de chaque élément, mais cela a exactement le même effet. Vous pouvez voir le code ci-dessous.
Merci beaucoup pour votre aide et pour tout conseil que n'importe qui peut donner!
Dave
ol {
color: #ec008c;
margin: 0;
padding: 0 0 0 1.6em;
list-style-position: outside;
font-family: georgia, serif;
font-size: 16px;
font-weight: bold;
}
ol li {
margin: 0;
padding: 0;
}
ol li p {
font-family: arial, sans-serif;
font-weight: normal;
font-size: 10px;
color: #000000;
margin: 0 0 4px 0;
padding: 0;
display: block;
}
<div id="playlist">
<div id="playlistinner">
<p id="playlisttitle">The List</p>
<ol>
<li class="listitem"><p><strong>Entry 1</strong> - entry details</p></li>
<li class="listitem"><p><strong>Entry 2</strong> - entry details</p></li>
<li class="listitem"><p><strong>Entry 3</strong> - entry details that are much longer and span more than one line</p></li>
<li class="listitem"><p><strong>Entry 4</strong> - entry details</p></li>
<li class="listitem"><p><strong>Entry 5</strong> - entry details</p></li>
</ol>
</div>
</div>
Rien, mais comme il commence avec les marges ne pas être égal il ne l'aide pas, sans l'aide du navigateur de règles spécifiques qui je veux éviter, sauf si nécessaire. Merci, Dave
OriginalL'auteur deshg | 2011-06-01
Vous devez vous connecter pour publier un commentaire.
Vous mentionnez non-webkit, non-Firefox navigateurs semblent faire la même chose. Avez-vous regardé à l'aide de leurs outils de développement? IE (sauf pour 7; 6; est comme un addon; 8 et 9 de l'ajouter, il suffit de frapper la touche F12) et de l'Opéra, il a les outils pour les développeurs. Vérifier et de voir quelle en est la cause.
Opéra met un cadratin (1 em marges haut et bas sur le
<p>
élément, je n'ai pas de plate-forme que IE s'exécute sur, mais je suppose qu'il n', trop. Dans le code et l'exemple que vous nous donnez, vous n'avez pas tous les éléments de la marge réinitialisé, donc il n'y a rien pour remplacer jusqu'à ce que vous définissez explicitement les marges.Une autre chose que vous pouvez faire est de mettre
line-height: 1;
à serrer les choses plus loin.Aso, avez-vous envisagé de restructuration un peu? À partir de ce que vous avez posté ici, votre contenu peut être mieux adapté à un liste de définition.
Sur une note de côté, pourquoi êtes-vous à l'aide de cadres? Non seulement sont-ils d'être obsolète en HTML5, mais il y a plusieurs raisons principales pourquoi qu'ils sont mauvais. Si vous voulez avoir un seul fichier pour l'universalité des choses, tels que les en-têtes et de navigation, puis un coup d'oeil à côté serveur comprend.
J'ai vérifié via les outils de développement dans IE précédemment et les styles répertoriés correspondent à ceux que j'ai spécifié et "devrait", travail (eh bien, selon moi en tout cas!) Je ne suis vraiment pas à l'aide de cadres ses juste le raccourcisseur d'URL est de les ajouter, je suis totalement avec vous à propos de ne jamais les utiliser! Avec la li lineheight ensemble de l'opéra, qui correspond maintenant à FF et IE et Chrome ont légèrement plus large espacement. Je soupçonne que c'est parce que le rendu de texte, mais il ne semble toujours un peu plus de marge au-dessus de la travée/p de chrome/IE lors de la recherche dans les outils de dev (mais les styles sont maintenant corrects)
Et j'ai aussi voulu dire, je suis en utilisant * { margin: 0; padding: 0; } pour réinitialiser les marges/rembourrage sur tous les éléments, mais j'ai oublié de le mettre dans les liens de test doc (je l'ai ajouté à maintenant) 🙂 je serais intéressé de voir si vous pensez que l'écart restant est dû à la façon dont les navigateurs rendre le texte ou s'il y a un problème? Je vais également jeter un oeil à des listes de définition, je n'avais jamais entendu parler d'eux avant, mais ils ont l'air très intéressant. Merci beaucoup pour votre aide
À partir de ce que je peux dire, il semble que vos numéros sont les coupables. La comparaison de Chrome et Opera sur MacOS, il ressemble à un détient un peu plus d'espace pour les chiffres, car ils sont légèrement plus grandes que les lignes de texte et la marge quand il n'y a qu'une seule ligne de texte. Essayez l'ajout de marges ou d'ajuster la hauteur de la ligne, donc la hauteur de la ligne plus les marges correspond à la taille de police des chiffres (ou des chiffres plus petits).
OriginalL'auteur Shauna
Je suppose qu'il pourrait être connecté à la ligne-taille de police plus grande que vous utilisez dans le
li
élément. Si j'ajouteline-height: 12px
à lali
de style en Chrome, l'écartement est le même qu'en FF.J'ai vu que vous définissez la marge/rembourrage pour
p
à 0 dans votre exemple. Honnêtement, je n'ai aucune idée de l'endroit où le reste de la différence pourrait venir de si pas de différences dans le rendu ou comment la hauteur de la ligne de l'héritage est interprété. Voir comment différemment IE Navigateurs rendre le texte parfois comparé à d'autres navigateurs (par exemple, le signe de l'Euro), je ne serais pas surpris.OriginalL'auteur svanelten
@deshg; d'abord je tiens à dire que l'utilisation resetsheet. Maintenant, le problème est qu'il y a un espacement entre les li en chrome
RAISON
1) chaque user-agent disposent de leurs propres propriétés par défaut . Donc, ils ont rendu différemment.
2) Peut-être est structurel et aussi pour plus de vérifier cette .
solutions
un. utilisation resetsheet.
b. mieux pour donner de la durée à la place de p.
c. Comme svanelten dit donner
line-height
dans votreli
pour plus de vérifier les lienshttp://www.w3.org/TR/CSS21/visudet.html#propdef-line-height
L'espacement des différences entre IE7 et Firefox/Opera/Chrome
OriginalL'auteur sandeep