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 :

Portée d'un div avec id, avec class ou sans rien


Sujet :

CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Par défaut Portée d'un div avec id, avec class ou sans rien
    Bonjour,

    Dans le cas du code suivant, le texte apparait sous l'image, alors que je pensais qu'il se mettrait à sa droite.
    Si j'utilise une classe pour mon div, idem!
    Dans le style si je remplace "#divApropos {" par "div {", les texte se met alors à la droite de l'image (ce que je voulais). Je ne comprends pas, je ciblais bien le div souhaité, non ?
    Pour un gros pg html, le div étant trop générique, comment faire pour cibler le seul bloc qui m’intéresse?

    Merci de vos éclaircissements.


    Code:
    Code html : 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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <!DOCTYPE html>
    <html lang="fr">
     
    <head>
        <meta charset="UTF-8">
        <style>
            #divApropos {
                /* div { */
                display: table;
                float: left;
                height: 400px;
                width: 23%;
                padding: 10px 10px;
            }
     
            #col1 {
                background-color: rgb(36, 196, 44);
                width: 200px;
            }
     
            #col2 {
                background-color: rgb(149, 150, 202);
            }
        </style>
    </head>
     
    <body>
        <h2>A propos</h2>
        <div id="divApropos">
            <div id="col1">
                <img src="medias/moi-en-peintre.jpg" alt="photo du peintre" width="200px">
            </div>
            <div id="col2">
                <P>blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla
                    blabla blabla blabla blabla blabla blabla .</P>
            </div>
        </div>
    </body>
     
    </html>

  2. #2
    Membre chevronné Avatar de ddaweb
    Homme Profil pro
    Webmaster amateur
    Inscrit en
    Janvier 2013
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster amateur
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2013
    Messages : 341
    Par défaut
    Ce sont col1 et col2 qui doivent se mettre l'une à côté de l'autre :

    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
    16
    17
    18
    19
        <style>
            #divApropos {
                display: table;
                height: 400px;
                width: 23%;
                padding: 10px 10px;
            }
     
            #col1 {
                float: left;
                background-color: rgb(36, 196, 44);
                width: 200px;
            }
     
            #col2 {
                float: left;
                background-color: rgb(149, 150, 202);
            }
        </style>
    Attention, si ton site est responsive : mettre des % et de px risque de te poser des problèmes

  3. #3
    Membre éprouvé Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Par défaut
    Ben non, ta solution ne change rien : le blabla reste sous l'image.
    Je m'étais inspiré de ce lien : https://fr.w3docs.com/tools/code-editor/7056 ou le float:left était au niveau du div.
    Ok pour ta remarque sur la cohabitation risquée entre px et %.

    Merci

  4. #4
    Membre chevronné Avatar de ddaweb
    Homme Profil pro
    Webmaster amateur
    Inscrit en
    Janvier 2013
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster amateur
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2013
    Messages : 341
    Par défaut
    Il faut appeler les class :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <div class="divApropos">
            <div class="col1">
                <img src="medias/moi-en-peintre.jpg" alt="photo du peintre" width="200px">
            </div>
            <div class="col2">
                <P>blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla
                    blabla blabla blabla blabla blabla blabla .</P>
            </div>
    </div>
    Je n'ai jamais travaillé avec ID pour le CSS ... mais dans ton exemple, il y a le CSS "boxes" qui joue

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 215
    Par défaut Quelques précisions
    Bonjour,
    Citation Envoyé par awalter1
    Je m'étais inspiré de ce lien : ... ou le float:left était au niveau du div.
    Devant les innombrables exemples qui existent, tu aurais pu choisir autre chose.

    Ceci étant, quelques précisions.

    • Le float :left ne t'apportera que des cheveux blanc.

    • Si tu mets un display:table sur le parent il te faut mettre un display:table-cell sur les enfants.

    • Par contre si tu mets des display:table-cell sur les enfants tu peux omettre le display:table sur le parent.

    • Dans ton cas tu as une image et du texte correspondant autant utiliser une structure du type :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <figure>
      <img src="nom-fichier-image" alt="">
      <figcaption>
        <p>Du texte en rapport avec l'image.</p>
      </figcaption>
    </figure>

  6. #6
    Membre éprouvé Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Par défaut
    La directive display:flex dans #divApropos résouds mon problème .
    Merci

    Merci aussi à NoSmoking. Je testerai ta solution plus tard.
    Je suis intrigué sur ta remarque concernant le lien https://fr.w3docs.com/tools/code-editor/7056, ce n'est pas un site qui fait autorité?

    Merci

  7. #7
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 699
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 699
    Par défaut
    avec le sélecteur "div", le code css va aussi s'appliquer à "col1" et "col2" d'où la différence de résultat.

    essayez plutot le modèle flex comme cela :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            #divApropos {
                display: flex;
                height: 400px;
                width: 23%;
                padding: 10px 10px;
            }
    https://developer.mozilla.org/fr/doc...ble_Box_Layout


    Citation Envoyé par ddaweb Voir le message
    Il faut appeler les class
    les identifiants et les classes sont justes 2 sélecteurs différents mais on peux faire la même chose avec n'importe quel sélecteurs
    https://developer.mozilla.org/fr/doc...%C3%A9lecteurs

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

Discussions similaires

  1. [TinyMCE] bouton personnalisé pour ajouter une div avec une classe css
    Par cpalo dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 20/09/2016, 10h03
  2. Réponses: 14
    Dernier message: 03/02/2016, 14h19
  3. Filtrer des divs avec des class multiples
    Par Dae_mon dans le forum jQuery
    Réponses: 1
    Dernier message: 15/04/2013, 00h31
  4. [CKEditor] Bouton créant une div avec une class personnelle
    Par Nowwis dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 27/03/2011, 14h03
  5. Boucle sur chaque div avec class= ....
    Par zevince dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/04/2006, 12h12

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