28173 sujets

CSS et mise en forme, CSS3

Hello !

Bon je cherche depuis un bon moment sur google et dans les forums dont celui-ci. certainement que je n'ai pas bien cherché, j'en suis désolé si jamais c'est le cas.

le probleme est trés basique connu certainement de ceux qui pratiquent le css depuis un moment. Je pratique aussi depuis un moment mais je n'avais jamais vraiment eu de soucis avec les UL et LI jusqu'à maintenant.

mon probleme est trés simple voilà le code :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">	
<html lang="fr-ca" xml:lang="fr-ca" xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title></title>
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <meta http-equiv="content-style-type" content="text/css" />
  <style type="text/css" >
ul {
padding: 0; 
margin: 0;
width: 100px;}

li { 
list-style:none;
padding: 0; 
margin: 0;
display: block;
background: #eee; 
width:100px;
height:20px;
font-size:10px;
font-family:Verdana;}

  </style>
 </head>
 <body>

  <ul>
   <li>Section 1</li>
   <li>Section 2</li>
   <li>Section 3</li>
   <li>Section 4</li>
   <li>Section 5</li>
  </ul>

 </body>


et volà sur IE7 et sur FF cela que cela donne. je ne comprend pas...
sniff..
Je voulais faire un paragraphe avec des puce pour chaque nouvelle ligne et j'ai choisi les UL LI pour le faire. Car en le faisant avec les balises P et en mettant la puce en background ca marche aussi bien , mais si une phrase de pragraphe fait plus d'une ligne, il est impossbile de caler la puce en début de ligne, elle se positionne au milieu, même un vertical-align :top ou d'autre arguments ne changent rien .

- bref donc dejà si vous avez une solution pour savoir pourquoi une telle différence avec UL LI entre IE7 et FF

- et quelle solution est la meilleur pour faire un paragraphe avec une puce en début de chaque nouvelle phrase qui passe à la ligne

thanx a lot !!

Seb
Modifié par Igor (16 Nov 2007 - 19:05)
Modérateur
Bonjour daseb,

Avant de te conseiller une solution ou une autre, serait-il possible que tu nous donne un exemple concret du type de contenu que tu veux présenter ? Cela pourrait être une page déjà en ligne ou encore en donnant le code ici.

C'est que selon le contenu présenté, il faudra choisir entre de simples paragraphes ou une liste. Une fois la bonne balise choisie pour ton type de contenu, nous allons ensuite pouvoir régler le problème de la puce.
Modifié par Tony Monast (15 Nov 2007 - 17:51)
yes merci !

Alors si tu vas sur cette page c'est dans bloc central de contenu, le texte gris sous le titre orange qui comporte plusieurs lignes, pour lesquelles j'aurais aimé avoir une puce. J'ai un autre page du même type à faire avec une bonne dizaine de titre orange + paragraphe. C'est pour ça queje veux savoir avant de la faire qu'elle est la meilleure solution.

En essaynat de bidouiller avec les listes dans un fichier à part (le code que j'avais mis plus haut) j'ai ce problème de différence de calage, donc je ne veux pas les utiliser sauf solution :
upload/14777-dif.gif

je pensais en fait à la solution de mettre une balise P pour chaque ligne et de mettre à la main une balise IMG à l'interieur pour chaque ligne....ca marche parfaitement mais c'est l 'horreur, c'est pas CSS...

Si autre solution pour mon paragraphe, j'aimerais quand même savoir pour cette histoire de liste UL LI pourquoi il y a une diférence sur IE et FF et si ca se corrige ?
Modifié par daseb (16 Nov 2007 - 10:12)
Pour bien commencer :

ul {
margin:0px ;
padding:0px ;
}
li {
margin:0px ;
padding:0px ;
}

car IE et FF font différemment le retrait des liste : l'un avec le padding et l'autre avec le margin.
Quant à la "puce" du <p> (si ça ne va vraiment pas avec les liste):
p {
background: url(xxxx.png) no-repeat scroll [b]left top[/b];
padding-left:'largeur de ta puce en px' ;
}

a écrit :
pourquoi il y a une diférence sur IE et FF

Demande à $Bill$ Smiley cligne
Modifié par BlindeKinder (16 Nov 2007 - 13:12)
Modérateur
Bonjour daseb,

D'après le type de ton contenu, je te suggère fortement l'utilisation d'une liste html (ul et li).

Pour ajouter des puces personnalisées en CSS, utilise list-style-image. Puis comme la précisé BlindeKinder, vaut mieux définir les marges et les paddings du ul et des li car chaque navigateur à ses valeurs par défaut.
Modifié par Tony Monast (16 Nov 2007 - 16:31)
merci les gars ! mais ce que vous dites est ce que j'ai deja tenté...

c'est ce que j'ai fait dans mon code initial dans le premier post, les margin et padding sont à 0 pour les UL et les LI ... (j'ai ou blié les "px" mais meme avec c'est pareil)

c'est pour ça que je ne comprend pas...

ha pour P j'ai déjà fait ca avec left et top, mais la puce se cale vraiment un peu trop haut.

bouhou sniff
pourtant les liste sont trés utilisées pour les menus !! j'ai meme le menu de la page en liste et c'est à peu prés pareil sur IE et FF, je capte plus rien...
Modifié par daseb (16 Nov 2007 - 19:26)
euh, en fait c'est "scroll", mais ça ne sert qu'a faire défiler l'image avec le contenu... L'important, c'est top left, qui l'image en haut à gauche...
a écrit :
mais la puce se cale vraiment un peu trop haut.

et à la place tu peux mettre des distances en px...
Modifié par BlindeKinder (16 Nov 2007 - 19:29)
Modérateur
daseb, et si tu nous mettais une page en ligne avec la liste et les puces, question de pouvoir visualiser ton problème?

Si jamais ton problème est que les puces chevauchent les éléments à gauche de la liste, précise un padding-left, pour lui donner de l'espace. Par défaut, les puces se placent en dehors de la liste.

Tu peux aussi forcer les puces à se mettre à l'intérieur de la liste, avec list-style-position:inside;
Modifié par Tony Monast (16 Nov 2007 - 19:39)
Salut,

Arf, le truc est dans le code...
ul {
margin: 0 auto;
width: 100px;
list-style-type: disk;/* déjà ne pas indiquer none pour avoir une puce !! */
padding-left: 15px;/* pour que la puce soit visible si elle est outside */
}

li { 
line-height: 20px;/* la puce va s'aligner sur la hauteur de la ligne et non sur le texte*/
background: #eee; 
width:100px;
height:20px;/* les li ont un height de 20px, donc un ligne-height de 20px pour ie*/
font-size:10px;
font-family:Verdana;
}