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 :

mise en page avec un div et du css


Sujet :

CSS

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut mise en page avec un div et du css
    Bonjour,

    je commence à remplacer ma mise en page à base de tables html par des div et du css, mais le premier truc que je fais ne marche pas, et je ne comprends pas. Pour être clair, voilà le code à remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <table><tr><td width=330></td><td><img src="---"></td></tr></table>
    et mon essai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <div id="logo_decal"></div>
    <div id="logo"><img src="---"></div>
    avec dans le head
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <link rel="stylesheet" type="text/css" href="style_div.css">
    et style_div.css :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    div#logo_decal {
    	width:330px;
    	}
     
    div#logo {
    float:left;
    }
    Bien qu'ayant appliqué ce que j'avais compris, l'image n'est pas décalée de 330 pixels, mais complètement à gauche de la page : pourquoi ?

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 567
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 567
    Points : 21 635
    Points
    21 635
    Par défaut
    float: left est là pour assurer que la div soit bien à gauche de la page, et que ce qui suit vient "flotter" à sa droite. Jusqu'à ce que ce qui flotte finisse par la dépasser par le bas, auquel cas ça continue tout à gauche.

    Pour décaler une boîte vers la droite, le plus simple est margin-left. Par exemple :

    Une indication en pixels, de l'ordre de 300px, ne tient pas assez compte des innombrables résolutions d'écran d'aujourd'hui. Tout le monde ne navigue pas avec un PC de bureau.

  3. #3
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Merci, avec ça , ça marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    div#logo {
    margin-left:330px;
    }

    mais pour la culture, pourquoi ça ne marche pas avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    div#logo_decal {
    	width:330px;
    	float:left;
    	}
     
    div#logo {
    }
    : le premier div est tout à gauche (float : left) et large de 330 pixels et le deuxième devrait être à droite du premier ??

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 567
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 567
    Points : 21 635
    Points
    21 635
    Par défaut
    Le premier div a une hauteur nulle. Le second commence donc directement en-dessous. Je ne suis pas certain que l'on puisse compter dessus, toutefois.

    Et à mort les ultraportables.

  5. #5
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Et à mort les ultraportables.
    Interdit
    Merci pour ton explication, ça marche aussi avec un height de 100px, mais bizarrement, pas 1OOpx (des lettres au lieu de chiffres)

  6. #6
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    J'ai décoché "résolu", car je veux faire un truc un poil plus compliqué et de nouveau, je n'y arrive pas :
    le code à remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <table>
      <tbody>
        <tr>
     
          <td width="80"></td>
          <td><img src="img1" border="0">
     
          </td>
          <td width="20"></td>
          <td><img src="img2" border="0"></td>
        </tr>
      </tbody>
    </table>
    Mon essai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <div id="pr_image"><img src="img1" border="0"></div>
    <div id="de_image"><div id="d_image"><img src="img2" border="0"> </div></div>
    avec ce css :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    div#pr_image {
    	float:left;
    	height:230px;
    	margin-left:80px;
    }
     
    div#de_image {
    height:230px;
    }
     
    div#d_image {
    margin-left:20px;
    height:230px;
    }
    Comme il y a 2 images à mettre côte à côte (avec un espace entre les deux), l'idée est de mettre les deux images ds 2 div conteneurs, le premier ayant l'attribut float:left, puis d'inclure dans le 2e conteneur un deuxième div qui contient l'image, ce div ayant l'attribut de margin-left:20px afin d'introduire l'espace entre les deux images. Or cet espace n'existe pas, et de plus, il y a un petit décalage en hauteur entre les 2 images, alors qu'elles font la même hauteur : comment faire que les 2 images soient alignées et qu'il y ait un espace entre les 2 ?

  7. #7
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 123
    Points : 44 922
    Points
    44 922
    Par défaut
    as tu essayé le plus simple
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <div>
      <img src="img1" style="margin-left:80px;border:0;">
      <img src="img2" style="margin-left:20px;border:0;">
    </div>

  8. #8
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Je n'y croyais pas mais ça a marché en apportant une petite modif :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                                              <div><img
     src="img1"
     style="border: 0 ; float: left; margin-left: 80px;"><img
     src="img2"
     style="border: 0; margin-left: 20px;"></div>
    (sans le float:left, la 2e image passe sous la première). Merci de m'y avoir fait penser.

  9. #9
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 123
    Points : 44 922
    Points
    44 922
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    (sans le float:left, la 2e image passe sous la première). Merci de m'y avoir fait penser.
    la balise img est une balise d'élément inline, donc si elle passe à la ligne c'est que le contenant, la div en l'occurence, n'est pas assez large.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mise en page avec div et CSS
    Par Jolt0x dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 19/01/2014, 15h26
  2. [CSS 3] Mise en page avec des DIV
    Par redoran dans le forum Mise en page CSS
    Réponses: 12
    Dernier message: 03/05/2012, 09h17
  3. mise en page avec les div
    Par wind_vinch dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 26/09/2007, 19h10
  4. [CSS][HTML] Mise en page : Avec ou sans tableaux ?
    Par arno2000 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 09/08/2005, 02h34

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