IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mise en page CSS Discussion :

Positionner des div en float


Sujet :

Positionnement en CSS

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 32
    Par défaut Positionner des div en float
    bonjour,

    j'ai un petit souci de positionnement de div dans un footer...

    quand elles sont en float: right, aucun souci ça se positionne où je le souhaite, en bas à droite. en revanche, elles sont dans l'ordre inverse de ce que je voudrais (lecture de droite à gauche au lieu de gauche à droite)

    si je les mets en float: left, l'ordre est bon, mais impossible de les placer correctement...

    voici le lien vers un exemple: http://paul-le-quernec.fr/projets/pr...6&sortBy=annee

    (il s'agit des rectangles gris en bas à droite)

    voici le CSS:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    .vignette_grise {
    	background-color:#808080;
    	width: 4%;
    	height: 40%;
    	float: right;
    	margin-right: 5px;
    	margin-top: 15px;
    	cursor: pointer;
    	}
    merci d'avance pour votre aide!

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    les images ne sont pas du tout optimisées (577,03 Ko !!).
    Elles mettent 3 ans à s'afficher (chacune !)

    Pour ton problème... quel problème ?
    Toutes les cases sont grises !
    Comment savoir quel résultat tu souhaites obtenir ? (dans quel ordre sont-elles censées s'afficher ?)

  3. #3
    Membre Expert
    Avatar de rodolphebrd
    Homme Profil pro
    Indépendant
    Inscrit en
    Novembre 2012
    Messages
    2 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Indépendant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 336
    Par défaut
    Bonjour,

    pourquoi ne pas utiliser la propriété display:inline-block; pour .vignette_grise
    Puis, dans le code HTML, placer la classe .infos après .vignette_grise pour plus de logique.

  4. #4
    Membre Expert
    Avatar de rodolphebrd
    Homme Profil pro
    Indépendant
    Inscrit en
    Novembre 2012
    Messages
    2 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Indépendant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 336
    Par défaut
    Citation Envoyé par jreaux62
    Comment savoir quel résultat tu souhaites obtenir ? (dans quel ordre sont-elles censées s'afficher ?)
    Citation Envoyé par twisel
    quand elles sont en float: right, aucun souci ça se positionne où je le souhaite...
    si je les mets en float: left, l'ordre est bon, mais impossible de les placer correctement...

  5. #5
    Membre Expert
    Avatar de Candygirl
    Femme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 912
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 912
    Par défaut
    Hello,

    Une manière simple de contourner ton problème d'ordre d'affichage est d'attribuer un float right à un conteneur de tes vignettes puis un float left aux vignettes elles-mêmes.
    Les bons réflexes:
    • avant de poser une question:
      règles | faq | tutoriels | recherche
    • clarté, politesse, vocabulaire et orthographe soignés = efficacité
    • remercier ceux qui ont pris le temps d'aider et :resolu: si c'est le cas

  6. #6
    Invité
    Invité(e)
    Par défaut
    @Rodolphe
    Sais-tu dire si sur la page, les photos sont dans "le bon ordre" ou l'"ordre inverse" ?
    Moi, pas.
    Dernière modification par Invité ; 13/08/2013 à 17h40.

  7. #7
    Membre Expert
    Avatar de rodolphebrd
    Homme Profil pro
    Indépendant
    Inscrit en
    Novembre 2012
    Messages
    2 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Indépendant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 336
    Par défaut
    En testant avec ta console et en jouant avec le flottement à droite puis à gauche tu y parviens.
    Mais le cœur du problème n'est pas là.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 32
    Par défaut
    merci pour vos réponses!

    Citation Envoyé par jreaux62 Voir le message
    Bonjour,
    les images ne sont pas du tout optimisées (577,03 Ko !!).
    Elles mettent 3 ans à s'afficher (chacune !)
    oui oui, je sais qu'elles sont grosses, mais bon, l'adsl est assez répandu de nos jours!
    elles ont une résolution correcte pour un grand écran type 27"...

    Citation Envoyé par jreaux62 Voir le message
    Pour ton problème... quel problème ?
    Toutes les cases sont grises !
    Comment savoir quel résultat tu souhaites obtenir ? (dans quel ordre sont-elles censées s'afficher ?)
    si tu passes la souris sur les vignettes, actuellement le bon ordre des images est de droite à gauche.

    Citation Envoyé par Candygirl Voir le message
    Hello,

    Une manière simple de contourner ton problème d'ordre d'affichage est d'attribuer un float right à un conteneur de tes vignettes puis un float left aux vignettes elles-mêmes.
    déjà essayé (rapidement), ça n'a pas fonctionné comme je voulais...
    (des histoires de width en % qui foutent un peu le bazar si je mets les vignettes dans une div...)

    Citation Envoyé par rodolphebrd Voir le message
    Bonjour,

    pourquoi ne pas utiliser la propriété display:inline-block; pour .vignette_grise
    Puis, dans le code HTML, placer la classe .infos après .vignette_grise pour plus de logique.
    ça ne change pas vraiment le problème...


  9. #9
    Invité
    Invité(e)
    Par défaut
    Une solution (encore plus simple que celle de Candygirl) :
    • d'inverser l'ordre d'écriture des <span class="vignette_grise"> dans le code HTML : du dernier au premier ;
    • en gardant ton CSS tel quel.

    "Les derniers seront les premiers..."
    Quant à la résolution des images...
    Je suppose que je site n'est destiné qu'à des professionnels, bien équipés (VDSL + très grand écran).

    Sinon, pour le commun des mortels (dont je fais partie, comme 95% des internautes), mon écran fait 1920px de large. Taille déjà raisonnable.
    (j'exagérais, bien sûr en parlant de "3 ans". Mais déjà entre 1/2 et 2 secondes par image, c'est trop)
    Je n'ose pas tester sur mon smartphone : j'ai peur qu'il explose !

    Une solution serait de tester la résolution de l'écran du client (CSS media queries et/ou JavaScript), et de lui proposer (automatiquement) une résolution d'image adaptée.

    Penser aussi au préchargement.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 32
    Par défaut
    les images font 2000px de large, à peine plus que la résolution moyenne de n'importe quel portable.

    je ne sais pas ce que tu as comme connexion, chez moi perso, sur un macbook et avec une vulgaire freebox v5 en wifi, ça s'affiche en quelques dixièmes de secondes! (en ayant vidé le cache évidemment)

    sur le smartphone en 3G, là en effet, c'est plus long...

    concernant l'ordre des vignettes, c'est un script (un ami me l'a fait), du coup, j'ose pas trop y toucher.


    sinon, j'ai réessayé le coup de mettre les vignettes dans une div, comme le suggérait candygirl.
    ça marche à peu près, même si je n'ai pas exactement le résultat que je voulais au départ... (les vignettes ont une taille fixe alors qu'avant elle s'adaptait à la taille de la fenêtre)

    merci encore en tout cas!

    le résultat:
    http://paul-le-quernec.fr/projets/pr...6&sortBy=annee

  11. #11
    Invité
    Invité(e)
    Par défaut
    Problème quand on réduit la taille de la fenêtre...
    Les cases grises passent sur 2 lignes.

    N.B. On peut voir le bout de code ?

    A voir aussi => imageoptimizer (-20% à -30%, sans trop perdre en qualité)
    Dernière modification par Invité ; 13/08/2013 à 18h07.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 32
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    	<?php
    		$imgdir = $dossierImg . "/"; 
                    $allowed_types = array('png','jpg','jpeg','gif'); 
    		$dimg = opendir($imgdir);//Open directory
    		while($imgfile = readdir($dimg))
    		{
    		  if( in_array(strtolower(substr($imgfile,-3)),$allowed_types) OR
    			  in_array(strtolower(substr($imgfile,-4)),$allowed_types) )
    		  {$a_img[] = $imgfile;}
    		}
     
    		 $totimg = count($a_img);
    		 for($x=0; $x < $totimg; $x++){echo "<span class='vignette_grise'><input type='hidden' value='" . $imgdir . $a_img[$x] . "'/></span>";}
     
    		?>
     
     
     
     
    		<script>
     
    		$(".vignette_grise").hover(function(){
    			var span = $(this).children("input").val();
    			$("#changedImage").remove();
    			var img = $('<img id="changedImage">');
    			img.attr("src",span);
    			img.appendTo("#conteneur");
    		});
     
    		</script>

  13. #13
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Par défaut
    Merci de bien vouloir poster le code source généré !!!
    Je ne suis pas schizophrène, nous sommes unanime !!!

    ► Pensez à la balise code et au CODE HTML GENERE !!!!
    ► Au si c'est le cas et au à ceux qui vous ont aidé.
    Vous souhaitez participer aux rubriques CSS et (X)HTML ? Contactez-nous !

    Créer des colonnes de même hauteur en CSS
    Glossaire CSS
    Les bordures en CSS3
    Les transitions en CSS3

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 32
    Par défaut
    Je pensais qu'il demandait le code du script...

    Le code source généré, c'est tout con :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <span class='vignette_grise'><input type='hidden' value='dossier_image/1.jpg'/></span>
    <span class='vignette_grise'><input type='hidden' value='dossier_image/2.jpg'/></span>
    ...
    ...

  15. #15
    Invité
    Invité(e)
    Par défaut
    @Torgar
    En fait non, c'est bien ce code que je voulais voir.

    Pour inverser l'ordre d'écriture des images dans le code html généré (!), remplacer simplement :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    for($x=0; $x < $totimg; $x++){echo "<span class='vignette_grise'><input type='hidden' value='" . $imgdir . $a_img[$x] . "'/></span>";}
    par :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    for($x=$totimg-1; $x >=0; $x--){echo "<span class='vignette_grise'><input type='hidden' value='" . $imgdir . $a_img[$x] . "'/></span>";}

    Et tu conserves ton CSS de départ.
    Dernière modification par vermine ; 14/08/2013 à 09h58. Motif: Précision du type de langage [code=xxx]

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 32
    Par défaut
    cool! c'est exactement ce que j'ai cherché à faire dès le départ, mais comme je capte pas grand chose en php, j'ai préféré m'attaquer au css...

    merci beaucoup!

  17. #17
    Invité
    Invité(e)
    Par défaut
    En optimisant, ça donne :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    $imgdir = $dossierImg . "/"; 
    $allowed_types = array('png','jpg','jpeg','gif'); 
    $dimg = opendir($imgdir);//Open directory
    while($imgfile = readdir($dimg))
    {
    	if( in_array(strtolower(pathinfo($imgfile,PATHINFO_EXTENSION)),$allowed_types) )
    	{ $a_img[] = $imgfile; }
    }
    $totimg = count($a_img);
    for($x=$totimg-1; $x >=0; $x--){ // du dernier au premier
    	echo '<span class="vignette_grise"><input type="hidden" value="' . $imgdir . $a_img[$x] . '"/></span>'."\n";
    }
    ?>
    L'extension d'un fichier s'obtient par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pathinfo($imgfile,PATHINFO_EXTENSION)
    Si c'est OK, pense à voter et à cliquer

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 32
    Par défaut
    non, il n'y a plus qu'une vignette qui apparait avec ton code! un poil trop optimisé!

    sinon, concernant la taille des images, je viens de voir que la plupart font entre 150 et 250 Ko, avec quelques exceptions autour de 500Ko. ça semble correct, non?

  19. #19
    Invité
    Invité(e)
    Par défaut
    Mon code fonctionne bien, pourtant.
    Ou supprime le ."\n" (c'est juste un passage à la ligne dans le code)

    As-tu vu => imageoptimizer (-20% à -30%, sans trop perdre en qualité)
    200-250ko, c'est déjà beaucoup...

    Et pour tester la validité des pages : http://validator.w3.org
    (quelques erreurs de code à corriger)
    Entre autres, on écrit : <br/> (pas </br>)

  20. #20
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 32
    Par défaut
    pour les images, elles sont déjà optimisées, si je baisse encore la qualité, le client va pas aimer... je vais voir avec lui ce qu'il en pense...

    et oui, j'ai toujours cette fâcheuse tendance à écrire </br>... je sais pas pourquoi!

    merci pour le lien!

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Positionnement des div proprement
    Par thierryG dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 22/04/2008, 13h19
  2. Probléme positionnement des DIV (image du problém)
    Par badway dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 18/10/2007, 10h32
  3. Positionnement des "div"
    Par benbax dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 07/10/2007, 19h16
  4. Positionnement des divs
    Par simstef dans le forum Dreamweaver
    Réponses: 1
    Dernier message: 09/08/2007, 11h59
  5. Ajuster le positionnement des div
    Par kaiser59 dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 03/01/2007, 22h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo