[resolu]problème alignement...

problème alignement... [resolu] - PHP - Programmation

Marsh Posté le 17-03-2008 à 19:50:59    

bonjour, voici mon problème :
j'ai recuperer un flux rss puis je l'ai remi en forme pour un iphone
sauf qu'il me reste un petit probleme
voici ce que j'obtiens :  
http://images2.photomania.com/440415/1/_rad61A7E.jpg
 
je souhaiterais avoir un esapce entre le texte et la photo
j'ai essayé dans le css de mettre :
<style type="text/css">
  p{ margin-left:30px;}
  </style>
sauf que tout se décalle du bord gauche et le texte reste collé à l'image
 
voici le code :
 
$i = 0;
 foreach ($rss->items as $item ) {
 
  if( ($i < 8) && !( strpos($item['title'], '[News]') === false) ){
   
   echo '<tr><td bgcolor="#FFFFFF">';
   echo '<div id="image"><p><font size="10">';
   echo '<a href="show.php?guid='. $item['guid'] .'">';
   echo '<h2>'. $item['title'] .'</h2></a>';
   
   $str = str_replace('/modpub/modules/', 'http://www.xxxxxxxx/', $item['summary']);
   $str = str_replace('align="left"', 'width="210" align="left"', $str);
   echo substr($str, 0, 285) . '...';
   echo '</p></font></div></td></tr></font>';
   $i++;
    }
 }
 
 echo '</table>';
}
 
je precise que je débute et que par faute de temps je tatonne un peu et votre aide serait d'un grand secours
par avance merci


Message édité par boxter le 18-03-2008 à 17:04:18
Reply

Marsh Posté le 17-03-2008 à 19:50:59   

Reply

Marsh Posté le 17-03-2008 à 20:52:39    

D'après ce que je comprends ton image est l'arrière plan du div.
"margin" représente un espacement à l'extérieur du div, or toi tu souhaites un espacement à l'intérieur du div.
 
Essaye avec "padding-left" plutôt que "margin-left".
 


---------------
Directeur Technique (CTO)
Reply

Marsh Posté le 17-03-2008 à 21:19:46    

ca change rien :(

Reply

Marsh Posté le 18-03-2008 à 10:06:15    

et si tu essais:

Code :
  1. #image img
  2. {
  3.     margin-right: 10px;
  4. }


pour forcer une marge de 10px à droite des images lorsqu'elles font partis du div "image"
 
Le truc, c 'est que fait comme ça, si tu as d'autres images dans l'article (et donc dans le même div), elles aussi auront une marge de 10 px à leur droite :/ (c'est grave dans ton cas ???)


Message édité par Xav_ le 18-03-2008 à 10:06:46

---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 18-03-2008 à 11:05:09    

non je n'ai pas d'autre image apres ...
je teste ca de suite ...

Reply

Marsh Posté le 18-03-2008 à 16:29:39    

tiens nous au courant pour passer ton topic en [résolu] si c'est OK ;)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 18-03-2008 à 17:03:48    

oui finalement cela n'a rien fait non plus mais j'ai trouvé ca sur le net :
 
 
   echo '<tr><td bgcolor="#FFFFFF">';
   echo '<div style="font-size:30px"><a href="show.php?guid='. $item['guid'] .'"><h2>'. $item['title'] .'</h2></a>';
   $str = str_replace('/modpub/modules/', 'http://www.xxxxxx.com', $item['summary']);
   $str = str_replace('align="left"', 'width="210" align="left" style="border-right-width:30px; border-right-color:#FFFFFF; border-right-style:solid" /', $str);
   echo substr($str, 0, 375) . '...';
   echo '</div></td></tr>';
   $i++;

Reply

Marsh Posté le 18-03-2008 à 17:11:58    

pinaise, le subtile trucage !!!
ajouter une bordure droite et la mettre de même couleur que le fond, pour faire croire à une marge (de l'épaisseur de la bordure)...
 
m'enfin bon, l'important n'est-il pas que ça fonctionne ? ;)
 
A tout hasard, ça le fait si tu fais juste ça ??? (et si t'a 5 min à perdre pour essayer)

Code :
  1. $str = str_replace('align="left"', 'width="210" align="left" style="margin-right:30px;" /', $str)



---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 18-03-2008 à 17:14:52    

ba en fait le trucage, j'ai eu l'idée de mettre une tite image blanche entre la photo et le texte et et j'ai cherché comment je pouvais faire ca et voila ...
 
ouais je teste... et je te dit ...

Reply

Marsh Posté le 18-03-2008 à 17:20:28    

oui ca marche, mais ce que je ne pige pas c que dans ton code je touche pas aux nombres de caractères et avec ton code j'ai plus de caracteres qui s'affiche !!!
 
et vo mieux quoi ce que tu as mit toi ou ce que j'ai mi moi ?

Reply

Marsh Posté le 18-03-2008 à 17:20:28   

Reply

Marsh Posté le 18-03-2008 à 19:28:52    

Xav_ ?

Reply

Marsh Posté le 19-03-2008 à 10:13:23    

Re (désolé, je passe pas vraiment ma vie sur le forum... enfin plus maintenant ;))
 
entre les 2 codes que tu as proposé, ya

Code :
  1. echo substr($str, 0, 285) . '...';


et

Code :
  1. echo substr($str, 0, 375) . '...';


--> moi ça me choque pas qu'il y en ai un qui affiche plus de caratères que l'autre, (j'aurais même tendance à dire 375 - 285 = 90 caractères de plus...)
 
Ensuite, c'est toi qui vois, mais j'ai une petite préférence pour ma solution qui consiste à mettre une marge, pour avoir une marge (question de logique, c'est un concept...).
Alors que l'autre solution consiste à ajouter une bordure, à la mettre de la largeur de la marge que tu veux, et à la colorer de la couleur du fond pour pas qu'on la voit --> 3 opérations contre 1 seule dans ma solution).
 
Mais bon je suis pas "puriste", et je dirais qu'une solution qui marche est une bonne solution (aie, pas taper les autres), à part bien sur, si l'une des 2 fait 10 fois plus d'instructions que l'autre pour le même résultat, mais là ça n'est pas vraiment le cas.


Message édité par Xav_ le 19-03-2008 à 17:40:35

---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 20-03-2008 à 15:30:43    

pfff jsuis trop nul :(
j'ai meme pas regardé que la quantite de caracteres affichées etaient differentes :(
snif....

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed