Partage
  • Partager sur Facebook
  • Partager sur Twitter

une simple question sur span

    15 janvier 2024 à 15:36:33

    bonjour quelqu'un m'explique svp comment le width et le height marche avec le span 

    code html

    <div class="header">
            <div class="container">
                <img class="logo" src="images/logo.png" alt="">
                <div class="links">
                    <span class="icon">
                        <span></span>
                        <span></span>
                        <span></span>
                    </span>
                    <ul>
                        <li>
                            <a href="#servives">Service</a>
                        </li>
                        <li>
                            <a href="#Portfolio">Portfolio</a>
                        </li>
                        <li>
                            <a href="#About"> About</a>
                        </li>
                        <li>
                            <a href="#Contact"> Contact</a>
                        </li>
    
                    </ul>
                </div>
            </div>
        </div>


    code css 

    .header {
        padding: 20px;
    }
    
    .header .container {
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
    
    .header .container .logo {
        width: 60px;
    }
    
    .header .container .links .icon {
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-end;
        width: 30px;
    
    }
    
    .header .container .links .icon span {
        background-color: #333;
        height: 2px;
        margin-bottom: 4px;
    }
    
    
    .header .container .links .icon span:first-child {
        width: 100%;
    }
    
    .header .container .links .icon span:nth-child(2) {
        width: 50%;
    }
    
    .header .container .links .icon span:last-child {
        width: 100%;
    }
    
    • Partager sur Facebook
    • Partager sur Twitter
      15 janvier 2024 à 20:37:15

      Hello ! 

      1) Pourquoi y a-t-il des <span> ?

      Pour une tentative de créer l'icone d'un menu hamburger

      --> une doc ici


      2) A quoi sert ce sélecteur CSS ? 

      .header .container .links .icon {
          display: flex;
          flex-wrap: wrap;
          justify-content: flex-end;
          width: 30px;
      }

      Ce sélecteur CSS sert à définir les règles de style pour le bloc <span> composant et contenant l'icone de ton menu hamburger. Celui-là : 

      <span class="icon">
        <span></span>
        <span></span>
        <span></span>
      </span>

      Voici les détails : 

      - La flexibilité de ton élément (display: flex;),
      - Le type de flexibilité CSS (avec flex) - (flex-wrap: wrap;),
      - Le positionnement de ton élément dans ta page (toujours avec flex) - (justify-content: flex-end;),
      - La largeur de ton élément (width: 30px;)

      --> Voir la documentation sur Flex


      3) A quoi servent ces sélecteurs CSS ?

      .header .container .links .icon span {
          background-color: #333;
          height: 2px;
          margin-bottom: 4px;
      }
       
      .header .container .links .icon span:first-child {
          width: 100%;
      }
       
      .header .container .links .icon span:nth-child(2) {
          width: 50%;
      }
       
      .header .container .links .icon span:last-child {
          width: 100%;
      }


      Ces sélecteurs CSS sont tous utilisées pour définir les règles de style de tes <span> présents dans ce bloc (détaillé plus haut). Le sélecteur : .header .container .links .icon span,  sert donc à déterminer les règles de style communes à chacun de tes éléments <span>, qui vont constitués les barres horizontales de ton icone de hamburger. 

      Les trois autres sélecteurs quant à eux, vont définir individuellement les styles de chacune de tes barres horizontales avec les pseudo-classes :first-child, nth-child(2) (deuxième élément) et :last-child. En détails : 

      first-child, la première barre prend toute la largeur de ta div parente,

      nth-child(2), la barre du milieu qui prend 50% de la largeur de ta div parente,

      :last-child, la dernière barre qui prend elle aussi la largeur de ta div parente.

      --> De la doc, de la doc et encore de la doc : width, :first-child, :nth-child, :last-child



      Petit conseil pour la suite :

      En recherchant sur Internet, tu aurais pu trouver toutes tes réponses ici : https://developer.mozilla.org/fr/docs/Web. En dev front/intégration (HTML, CSS, JS), si tu as une question sur une propriété, un sélecteur, une balise, un attribut, une fonction ou autre, c'est en l'occurrence sur ce site qu'il faut que tu ailles ;)

      Si tu as d'autres questions n'hésite pas, sinon, si tout est ok pour toi, n'oublie pas de passer ton sujet en "Sujet résolu:D

      -
      Edité par iSwamb 15 janvier 2024 à 20:38:14

      • Partager sur Facebook
      • Partager sur Twitter

      Comparés aux êtres humains, les ordinateurs sont beaucoup plus simples à comprendre !

        15 janvier 2024 à 21:19:53

        merci beaucoup trés bien expliqué je sais que je peux utiliser l'icone de hamburger tout simplement mais l'exercice me demande d'ecrire le code de l'icone .ma question comment le width et le height marche avec le span elle est inline et non pas en block
        • Partager sur Facebook
        • Partager sur Twitter
          17 janvier 2024 à 21:15:31

          Je ne suis pas tout-à-fait sûr de comprendre ta demande. Mais il semblerait que tu veuilles savoir comment avoir plus de contrôle notamment sur les dimensions de cet icone (avec <span>).

          Pour ça, quelques modifications que je te propose : 

          .header .container .links .icon {
              display: flex;
              flex-direction: column; /* Ajout pour empiler les barres verticalement */
              justify-content: center; /* Centrer les barres verticalement */
              align-items: flex-end; /* Aligner les barres à la droite du conteneur avec "align-items" */
              width: 30px; /* Largeur du conteneur de l'icône (ici tu peux donc gérer la largeur de ton icone) */
              cursor: pointer; /* (BONUS) Curseur lors du survol */
          }
          
           
          .header .container .links .icon span {
              display: block; /* Rendre chaque span comme un élément de bloc */
              background-color: #333;
              /* Les deux propriétés CSS ci-dessous vont servir à gérer la hauteur de ton icone */
              height: 2px; /* Largeur des <span> représentant tes barres horizontales */
              margin-bottom: 5px; /* Marge entre tes barres horizontales */
          }


          J'espère que ça va répondre à ta question :D

          • Partager sur Facebook
          • Partager sur Twitter

          Comparés aux êtres humains, les ordinateurs sont beaucoup plus simples à comprendre !

          une simple question sur span

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          • Editeur
          • Markdown