Partage
  • Partager sur Facebook
  • Partager sur Twitter

Question CSS Zozor

Sujet résolu
    13 février 2019 à 19:37:09

    Bonjour à tous, 

    Actuellement en train de faire le cour sur le html/css j'arrive à la fameuse page de Zozor, dans l'ensemble pas trop, de difficultés.

    Plus une question, voici le header de la page.

    <header>
                    <div id="titre_principal">
                        <div id="logo">
                            <img src="images/zozor_logo.png" alt="Logo de Zozor" />
                            <h1>Zozor</h1>    
                        </div>
                        <h2>Carnets de voyage</h2>
                    </div>
                    
                    <nav>
                        <ul>
                            <li><a href="#">Accueil</a></li>
                            <li><a href="#">Blog</a></li>
                            <li><a href="#">CV</a></li>
                            <li><a href="#">Contact</a></li>
                        </ul>
                    </nav>
                </header>

    Ma question étant, pourquoi en faisant ce code Css, uniquement la "nav" bouge et se met en position horizontale?

    Img/h1 et h2 restes dans la position column.

    J'imagine une explivcation avec les divs mais je préfére avoir la réponse d'expert.

    Merci d'avance.

    body
    {
        background: url('images/fond_jaune.png');
        font-family: 'Trebuchet MS', Arial, sans-serif;
        color: #181818;
    }
    
    #bloc_page
    {
        width: 900px;
        margin: auto;
    }
    
    section h1, footer h1, nav a
    {
        font-family: Dayrom, serif;
        font-weight: normal;
        text-transform: uppercase;
    }
    
    /* Header */
    
    header { background: url('images/separateur.png') repeat-x bottom; display: flex; }




    • Partager sur Facebook
    • Partager sur Twitter
      13 février 2019 à 20:50:32

      Salut,

      Quand tu mets display: flex cela affecte l'affichage des héritiers direct donc nav et #titre_principal.

      • Partager sur Facebook
      • Partager sur Twitter
      Vous ne pouvez pas comprendre la récursivité sans avoir d’abord compris la récursivité
        13 février 2019 à 21:03:21

        Ok, donc cela n'affecte pas <div id"logo"> ? J'ai peur d'avoir loupé un chapitre dans le cour ;)

        Mais alors pourquoi <h2>carnet de voyage</h2> ne bouge pas non plu? Il est pourtant bien dans <div"titreprincipal">

        désolé pour les questions mais je bloque la dessus, j'ai bien compris le fonctionnement de la "flexbox" mais j'ai du mal avec les priorités, et de savoir sur quel élément mon css va s'effectuer.

        • Partager sur Facebook
        • Partager sur Twitter
          13 février 2019 à 21:16:16

          Ton display flex transforme tes enfants direct en flex item du coup c'est seulement la div titre principal et le nav. Le H2 et la div logo sont des enfants d'enfants donc pas héritier direct.
          • Partager sur Facebook
          • Partager sur Twitter
          Vous ne pouvez pas comprendre la récursivité sans avoir d’abord compris la récursivité
            13 février 2019 à 23:06:47

            Merci Mamashi, j'ai beaucoup de mal avec cette histoire de priorité/parent/enfant… Très sincèrement même avec vos explications c'est encore très flou…

            Peut-être avez-vous un lien vers une doc, un tuto ou bien même un exemple pour comprendre cette fonctionnalité?

            Merci Brice

            • Partager sur Facebook
            • Partager sur Twitter
              13 février 2019 à 23:18:33

              Euh y a la documentation MDN (Mozilal) en français qui esrvrres complète (html/je/DOM/api). Après parent enfant c'est très simple il suffit d'imaginer que les éléments html sont des boîtes imbriquées les unes dans les autres.

              Imaginons <header><div><span></span></div></header>

              La span est dans la div qui elle même est dans le header. Header est le parent de div. La div est l'enfant du header. Le div est le parent du span et le span est l'enfant du div. En gros quoi c'est juste l'élément qui est directement au dessus et en dessous voilà.

              • Partager sur Facebook
              • Partager sur Twitter
              Vous ne pouvez pas comprendre la récursivité sans avoir d’abord compris la récursivité
                16 février 2019 à 11:11:54

                bonjour !

                idem que toi Brice !

                Du coup Mamashi, si j'ai bien compris ton explication :

                si tu display:flex le header en css, c'est le <span> qui sera affecté et pas la div, c'est bien cela ?

                • Partager sur Facebook
                • Partager sur Twitter
                  16 février 2019 à 11:42:22

                  Non c'est le premier niveau dans la hiérarchie qui est affecté.

                  Prenons :

                  <header>
                   <div>
                    <span></span>
                   </div>
                   <div></div>
                  </header>
                  header {
                   display: flex;
                  }


                  C'est la div qui est affecté. Le header devient le conteneur (flex container). Les deux div deviennent quand à elles les éléments de ce conteneur. Du coup le flex box agit sur le conteneur (header) et les éléments ( les deux div) la span elle reste dans un contexte standard.

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Vous ne pouvez pas comprendre la récursivité sans avoir d’abord compris la récursivité
                    16 février 2019 à 12:21:43

                    ah d'accord !je viens de comprendre !

                    j'ai des des blocs en image et j'ai compris ce que tu m'écrivais !

                    avant flexbox

                    le rouge étant  le header

                    le vert la div1

                    le violet le span

                    noir la div2

                    si on applique un flex, ça donne ceci :

                    après application flexbox

                    donc on voit que le header la div 1 et la div 2 ont été modifiés mais pas le span car ce n'est pas un enfant direct

                    merci Mamashi pour ton explication :p

                    • Partager sur Facebook
                    • Partager sur Twitter
                      16 février 2019 à 14:25:16

                      • Partager sur Facebook
                      • Partager sur Twitter
                      Vous ne pouvez pas comprendre la récursivité sans avoir d’abord compris la récursivité
                        18 février 2019 à 20:50:38

                        Merci pour les explications Mamashi, c'est désormais beaucoup plus clair pour moi.
                        • Partager sur Facebook
                        • Partager sur Twitter

                        Question CSS Zozor

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown