Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1772 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

Centrer mes images en CSS sans bloc

n°1419153
mIRROR
Chevreuillobolchévik
Posté le 03-08-2006 à 19:18:52  profilanswer
 

Reprise du message précédent :
je sais, c est semantiquement hideux :D
meme si c est pas pire qu un <p> entre nous :/
 
apres y a peut etre moyen de faire plus propre en js
mais je debute dans le domaine je pourrais pas t aider beaucoup :D
 
et pour ce qui est de modifier le script a la mano honnetement j ai pas le courage de m y plonger
ils ont pas un forum ?
il pourraient peut etre t aider

mood
Publicité
Posté le 03-08-2006 à 19:18:52  profilanswer
 

n°1419162
koskoz
They see me trollin they hatin
Posté le 03-08-2006 à 19:37:47  profilanswer
 

Il est vide leur forum...


---------------
Twitter
n°1419336
nargy
Posté le 03-08-2006 à 23:41:29  profilanswer
 

display:block????
nan, display:inline

n°1419366
koskoz
They see me trollin they hatin
Posté le 04-08-2006 à 01:35:08  profilanswer
 

J'ai déjà essayé avec le inline :D


---------------
Twitter
n°1419371
rapper
Posté le 04-08-2006 à 02:08:15  profilanswer
 

nargy a écrit :

He oui, on arrive très vite aux limites du CSS (dès la deuxième ligne!).
Je ne vois pas d'autre solution que de trifouiller dans le générateur PHP/Wiki pour encadrer les images d'un div.


 
po

n°1419513
mIRROR
Chevreuillobolchévik
Posté le 04-08-2006 à 11:16:39  profilanswer
 

tiens grace a un pti coup de main d anapajari j ai reussi a bricoler ca
 

Code :
  1. <script type="text/javascript">
  2. function centrerImage() {
  3. var imgGoUp = document.getElementsByTagName("img" );
  4. for(i=0;i<imgGoUp.length;i++) {
  5.       imgGoUp[i].parentNode.style.textAlign = "center";
  6.       }
  7. }
  8. window.onload = centrerImage;
  9. </script>


 
pt1 mon premier js  
 
 [:freekill]  [:freekill]  [:freekill]  
 [:freekill]  [:freekill]  [:freekill]  
 [:freekill]  [:freekill]  [:freekill]  
 
un pack de neuf pour feter ca
testé sur ie6, ff1.5 et opera9
par contre ca va foutre le bordel si t as l habitude de mettre des smileys dans tes posts ^^

n°1419563
koskoz
They see me trollin they hatin
Posté le 04-08-2006 à 11:57:03  profilanswer
 

Super le js, merci !
 
Mais justement, pour ne pas centrer les images que je ne veux pas centrer, est-ce que je ne peux tout simplement appliquer un style aux images que je veux centrer et ton js ne centre que les images avec ce style précis ?
 
Edit : par contre c'est bien ce que je pensais, ça rentre en conflit avec le reste.
J'ai inclut le script dans mon index, et c'est l'index qui inclut toutes les autres pages, donc comme le script doit forcement être entre deux <head></head>, il n'y avait que là que je pouvais le mettre.
Pour les news, pas de problème, ça centre bien les images. Le problème c'est que si je veux aligner une image à droite ou à gauche, l'image est bien alignée mais c'est le texte qui est centré, même avec la propriété justify [:matleflou]  
 
Donc si on pouvait appliquer un style aux images à centrer et que ton js ne centrer que ces images, se serait merveilleux, sinon ton script ne me sert à rien [:spamafote]


Message édité par koskoz le 04-08-2006 à 12:03:53

---------------
Twitter
n°1419564
Pitsy
Posté le 04-08-2006 à 11:58:32  profilanswer
 

koskoz a écrit :

Bon, en gros voilà comme ça se passe

Code :
  1. <ma structure avec tout mes div>
  2. <? echo $news['news']; ?>
  3. </ma structure avec tout mes div>




 
 
Bon j'y connais rien au wikirender, balbutie en php, donc on ne se moque pas si la propopsition est idiote  :D :
 
Et si, à ce niveau, avant d'en faire l'echo, tu retrevaillais $news de la manière suivante(suite à la proposition de narguy avec les regexp):
- remplacer le "<p><img" par "<div class='center'><img"
- ensuite chercher le </p> suivant et le remplacer par </div>
- ajouter dans le css .center {text-align:center;}
 
ou encore plus simple, tu remplaces "<p><img" par "<p class='center'><img"
 
?

n°1419578
koskoz
They see me trollin they hatin
Posté le 04-08-2006 à 12:05:37  profilanswer
 

Pitsy a écrit :

Bon j'y connais rien au wikirender, balbutie en php, donc on ne se moque pas si la propopsition est idiote  :D :
 
Et si, à ce niveau, avant d'en faire l'echo, tu retrevaillais $news de la manière suivante(suite à la proposition de narguy avec les regexp):
- remplacer le "<p><img" par "<div class='center'><img"
- ensuite chercher le </p> suivant et le remplacer par </div>
- ajouter dans le css .center {text-align:center;}
 
ou encore plus simple, tu remplaces "<p><img" par "<p class='center'><img"
 
?


 
Ca doit être faisable mais je sais pas si c'est dans mes cordes.
L'histoire du js m'aurait arrangée [:ula]


---------------
Twitter
n°1419590
Pitsy
Posté le 04-08-2006 à 12:16:22  profilanswer
 

qqch du genre:
 
 
 
 
<?
  $news['news']=eregi_replace("<p><img","<p class='center'><img",$news['news']);
  echo $news['news']; ?>
 
Aucune garantie pour la syntax mais tu peux toujours essayer, sans oublier d'ajouter le style... ;)
 
edit:oups non
 
y a un lien autour de ton image, ça complique un peu en fait... je vais essayer, inutile de tester le code ci-dessus ;)


Message édité par Pitsy le 04-08-2006 à 12:18:20
mood
Publicité
Posté le 04-08-2006 à 12:16:22  profilanswer
 

n°1419596
Pitsy
Posté le 04-08-2006 à 12:21:44  profilanswer
 

faudrait qqn qui maîtrise un peu les expressions régulières pour détecter un:
<p>retour de ligne<a n'importe quoi ><img

n°1419613
mIRROR
Chevreuillobolchévik
Posté le 04-08-2006 à 12:43:25  profilanswer
 

bon ca avance
 
dans le conf ligne 116 tu remplaces le bloc case3
par ce nouveau
 

Code :
  1. case 3:
  2.          if($contents[2]=='l' ||$contents[2]=='L' || $contents[2]=='g' || $contents[2]=='G')
  3.             $attribut.=' style="float:left;"';
  4.          elseif($contents[2]=='r' ||$contents[2]=='R' || $contents[2]=='d' || $contents[2]=='D')
  5.             $attribut.=' style="float:right;"';
  6.          elseif( $contents[2]=='centerSelf' )
  7.             $attribut.=' class="centerSelf"';
  8.          elseif( $contents[2]=='centerParent' )
  9.             $attribut.=' class="centerParent"';


 
donc maintenant pour centrer t as deux nouvelles options centerSelf et centerParent
 
ca créé des classes que tu definis en css
centerSelf c est pour une image seule et tu fous en css margin: 0 auto;
centerParent c est pour un groupe d images
 
la il faut reussir a mettre un text-align:center au <p> parent
 
bon ca marche toujours pas sur ie mais voila ou j en suis pour l instant :P :D
 

Code :
  1. function centrerImage() {
  2. var imgGoUp = document.getElementsByTagName("img" );
  3. for(i=0;i<imgGoUp.length;i++) {
  4.       if( (imgGoUp[i].getAttribute("class" ) == "centerParent" ) || (imgGoUp[i].getAttribute("className",0) == "centerParent" ) ) {
  5.       imgGoUp[i].parentNode.style.textAlign = "center";
  6.       }
  7.       }
  8. }
  9. window.onload = centrerImage;


 
bon reste plus a savoir pourquoi ca cloche sur ie :D
edit
ca marche au poual :D

Message cité 1 fois
Message édité par mIRROR le 04-08-2006 à 13:00:28
n°1419642
Pitsy
Posté le 04-08-2006 à 13:14:15  profilanswer
 

Pitsy a écrit :

faudrait qqn qui maîtrise un peu les expressions régulières pour détecter un:
<p>retour de ligne<a n'importe quoi ><img


 
/<p>\n<a.+<img/
 
ça me détecte la bonne occurence en JS edit: enfin faudrait encore la travailler parce qu'elle renvoie trop là
 
Après y a juste à remplacer les 3 premiers caractères par <p class="center"> et c'est bon. Donc si qqn passe par là et peut pondre plus rapidement ça en php...


Message édité par Pitsy le 04-08-2006 à 13:23:45
n°1419649
koskoz
They see me trollin they hatin
Posté le 04-08-2006 à 13:22:11  profilanswer
 

Je tiens à remercier toutes les personnes de ce topic pour leur aide.
Quand je remplirai la page "A propos" je penserai à vous ;).
 
En espérant qu'il y ait un peu plus de visiteur pour profiter de tout ce beau travail :'(
 
D'ailleurs si quelqu'un parmi vous se sens l'âme d'un testeur ou newseur :whistle:


---------------
Twitter
n°1419653
mIRROR
Chevreuillobolchévik
Posté le 04-08-2006 à 13:25:10  profilanswer
 

chui ouf j ai pas calculé le coup des liens autour des images :D

n°1419661
koskoz
They see me trollin they hatin
Posté le 04-08-2006 à 13:30:59  profilanswer
 

Pour le js là.
Pas besoin d'une CSS pour centrer une seule image, ça marche tout aussi bien avec le centerParent.
Ou alors il y a un truc, mais se serait plus simple que tout fonctionne avec le centerParent.
 
mIRROR => ouais, en php avec les regexp ou même si on explode la chaine, c'est un peu chaud.


---------------
Twitter
n°1419665
mIRROR
Chevreuillobolchévik
Posté le 04-08-2006 à 13:34:12  profilanswer
 

koskoz a écrit :

Pour le js là.
Pas besoin d'une CSS pour centrer une seule image, ça marche tout aussi bien avec le centerParent.
Ou alors il y a un truc, mais se serait plus simple que tout fonctionne avec le centerParent.
 
pas con :D
 
mIRROR => ouais, en php avec les regexp ou même si on explode la chaine, c'est un peu chaud.


 
bon j essaie de voir comment remonter jusqu au p si y a des lins sur les images ^^

n°1419669
koskoz
They see me trollin they hatin
Posté le 04-08-2006 à 13:39:47  profilanswer
 

Je comprend pas, le js fonctionne en local mais aucune image n'est centrée online :cry:.
 
Regardez le désastre quand il y a des images dans les news, et remarquez dans le code source que j'ai bien tout fait comme il faut (les images ont une classe, la même que la fonction js récupère).


---------------
Twitter
n°1419677
Pitsy
Posté le 04-08-2006 à 13:45:49  profilanswer
 

mIRROR a écrit :

bon j essaie de voir comment remonter jusqu au p si y a des lins sur les images ^^


 
Mirror tu maîtrises php toi non?
 
Perso je trouve plus logique de corriger ça côté php que venir par après avec un JS et certainement finalement moins complexe (par contre il est clair que je trouve très "sport" de le faire ;) )
 
Cette fois je trouve ma regexp assez aboutie:
 
/<p>\n(<a[^<]+> )?<img/
 
mais ça va me prendre 3 plombes à traduire ça en bout de code php vu mon niveau ... :(

n°1419690
koskoz
They see me trollin they hatin
Posté le 04-08-2006 à 14:01:55  profilanswer
 

Bon, j'ai trouvé ce qui cloche avec le js.
 
Dès que mes deux images renvoient vers un lien, elles ne sont plus centrées.
Par contre, si la première renvoie vers un lien mais pas la deuxième, elles restent centrées.


---------------
Twitter
n°1419707
Pitsy
Posté le 04-08-2006 à 14:26:54  profilanswer
 

essaie ça:
 

<?
  $str = preg_replace('`(<p> )(\s)?(<a[^<]+> )?(<img)`', '<p class="center">$2$3$4', $news['news']);
  echo $str;
?>


 
et rajoute
 

.center {text-align:center;}


 
dans ton css


Message édité par Pitsy le 04-08-2006 à 15:18:19
n°1419710
mIRROR
Chevreuillobolchévik
Posté le 04-08-2006 à 14:28:40  profilanswer
 

ok pour le js ca plante parce que j ai pas calculé que l image pouvait entrer dans un lien (t'es sur que ca marche en local ? chez moi non :P)
et le script devient laid si je rajoute une couche de tests mais je vais essayer quand meme (pour le sport :P)
 
@pitsy : maitriser faut le dire vraiment vite :D
 
bah sinon les patterns qu il faut c est
(je suppose que le a est facultatif, on sait jamais)
 
trouver ca ($pattern)
<p><a facultatif><img class="centerParent"
 
remplacer par ($replace)
<p class="center"><a facultatif><img
 
puis apres dans le lib en ligne 505 remplacer

Code :
  1. return implode("\n",$this->_newtext);


 
par  

Code :
  1. return preg_replace($pattern,$replace,implode("\n",$this->_newtext));


 
apres je te laisse remplacer mon html pourri pas de zoulis patterns et moi je retourne a mon js :P
 
 

n°1419715
Pitsy
Posté le 04-08-2006 à 14:31:51  profilanswer
 

mIRROR a écrit :


@pitsy : maitriser faut le dire vraiment vite :D


 
merci ! j'ai testé un truc (cf plus haut). Je me pencherais sur ton truc si ça marche pas :)
 
J'ai aussi supposé que le a était facultatif ;)

n°1419746
anapajari
s/travail/glanding on hfr/gs;
Posté le 04-08-2006 à 15:13:40  profilanswer
 

mIRROR a écrit :

[cpp]function centrerImage() {
...
      if( (imgGoUp[i].getAttribute("class" ) == "centerParent" ) || (imgGoUp[i].getAttribute("className",0) == "centerParent" ) ) {
...
}


Jeune padawan, la ligne ci dessus devrait être remplacer par:

Code :
  1. if ( imgGoUp[i].className == "centerParent" )


comme ça elle marcherait partout, tout le temps ;)
 

Pitsy a écrit :

faudrait qqn qui maîtrise un peu les expressions régulières pour détecter un:
<p>retour de ligne<a n'importe quoi ><img


Code :
  1. $pattern = "/<p><a(.*?)><img/is"

Message cité 1 fois
Message édité par anapajari le 04-08-2006 à 15:13:59
n°1419798
mIRROR
Chevreuillobolchévik
Posté le 04-08-2006 à 15:55:17  profilanswer
 

anapajari a écrit :

Jeune padawan, la ligne ci dessus devrait être remplacer par:

Code :
  1. if ( imgGoUp[i].className == "centerParent" )


comme ça elle marcherait partout, tout le temps ;)


 
bien joué :D
il me faudra un peu de temps pour lire toute la doc menfin ^^
ca rentre :P
 

Code :
  1. function centrerImage() {
  2.    var imgGoUp = document.getElementsByTagName("img" );
  3.    for(i=0;i<imgGoUp.length;i++) {
  4.       if( imgGoUp[i].className == "centerParent" ) {
  5.           if (imgGoUp[i].parentNode.tagName == "P" ) {
  6.              imgGoUp[i].parentNode.style.textAlign = "center";
  7.           }
  8.           else {
  9.              imgGoUp[i].parentNode.parentNode.style.textAlign = "center";
  10.           }
  11.          
  12.       }
  13.    }
  14.  
  15. }
  16. window.onload = centrerImage;


 
maintenant le code marche sur mes trois browsers sauf que j ai une erreur sur cette ligne  
         

Code :
  1. if (imgGoUp[i].parentNode.tagName == "P" ) {


 
il me dit imgGoUp[i] has no properties pourtant il me fait pas chier ailleurs :/

n°1419806
anapajari
s/travail/glanding on hfr/gs;
Posté le 04-08-2006 à 16:07:06  profilanswer
 

balourde tout le code de la page avec laquelle tu testes, j'ai la flemme d'en faire une!

n°1419813
koskoz
They see me trollin they hatin
Posté le 04-08-2006 à 16:13:30  profilanswer
 

Ton js fonctionne mIRROR, merci beaucoup :).
 
Même si ce n'est pas la solution idéale, au moins mes images sont centrées...


---------------
Twitter
n°1419825
Pitsy
Posté le 04-08-2006 à 16:17:41  profilanswer
 

T'as testé mon code plus haut juste pour voir stp ?
M'est complètement = que tu ne l'utilises pas mais j'aimerais savoir si ça marche ;)

n°1419835
mIRROR
Chevreuillobolchévik
Posté le 04-08-2006 à 16:24:03  profilanswer
 

Citation :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>titre</title>
 
 
 
<script type="text/javascript">
 
function centrerImage() {
 
   var imgGoUp = document.getElementsByTagName("img" );
 
   for(i=0;i<imgGoUp.length;i++) {
 
      if( imgGoUp[i].className == "centerParent" ) {
 
          if (imgGoUp[i].parentNode.tagName == "P" ) {
             imgGoUp[i].parentNode.style.textAlign = "center";
          }
          else {
             imgGoUp[i].parentNode.parentNode.style.textAlign = "center";
          }
           
      }
 
   }
   
}
window.onload = centrerImage;
</script>
</head>
  <body>
  <p><a href="#"><img class="centerParent" src="a.gif"></a> </p>  <br>
  <p><img class="centerParent" src="a.gif"> </p><br>
  <p><img src="a.gif"></p>
   
 
</body>
</html>


 
(je le mets entre quote c est mieux pour copier :P)


Message édité par mIRROR le 04-08-2006 à 16:25:38
n°1419842
anapajari
s/travail/glanding on hfr/gs;
Posté le 04-08-2006 à 16:28:54  profilanswer
 

pas d'erreur avec ton code mIRROR :o

n°1419854
mIRROR
Chevreuillobolchévik
Posté le 04-08-2006 à 16:35:52  profilanswer
 

anapajari a écrit :

pas d'erreur avec ton code mIRROR :o


 
oui y a que firebug qui peste :D
(la console de firefox dit rien non plus ^^)
 
en tout cas ravi de t avoir aidé koskoz =)

n°1419947
koskoz
They see me trollin they hatin
Posté le 04-08-2006 à 18:25:25  profilanswer
 

pisty => ton code c'est la regexp qui entoure chaque image d'un <p> ou alors qui entoure un bloc d'image ?


---------------
Twitter
n°1419971
Pitsy
Posté le 04-08-2006 à 19:01:13  profilanswer
 

koskoz a écrit :

pisty => ton code c'est la regexp qui entoure chaque image d'un <p> ou alors qui entoure un bloc d'image ?


 
Ma regexp remplace le <p> avant l'image (avec éventuellement un lien entre 2) par un <p class="center"> (ou si tu préfères tu peux mettre directement <p style="text-align:center"> ). ça ne rajoute donc rien, c'est censé faire exactement ce que fait le js de mirror en fait, soit rendre le paragraphe qui contient les images centré ;)

n°1420005
koskoz
They see me trollin they hatin
Posté le 04-08-2006 à 19:31:28  profilanswer
 

Pitsy a écrit :

Ma regexp remplace le <p> avant l'image (avec éventuellement un lien entre 2) par un <p class="center"> (ou si tu préfères tu peux mettre directement <p style="text-align:center"> ). ça ne rajoute donc rien, c'est censé faire exactement ce que fait le js de mirror en fait, soit rendre le paragraphe qui contient les images centré ;)


 
 [:nico54]  
 
Je teste dès que je peux ;)


---------------
Twitter
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
probléme d'images[HTML/CSS/JS/PHP] DEBUTANTS / NEWBIES, ce topic est pour vous :)
[CREATION] Hermeshop : BANQUE/EDITEUR d'images en JS.[resolu] problème d'affichage d'images sous IE
script html pour afficher images en miniaturesProbleme Css IE /FireFox
rollover avec deux images[CSS] Afficher des tabs jolis et proprement.
Centrer un block et pas le text[PHPNuke] limitation pour inclure un fichier dans un bloc ?
Plus de sujets relatifs à : Centrer mes images en CSS sans bloc


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR