recherche

Maison  >  Questions et réponses  >  le corps du texte

Image et texte réactifs Div côte à côte

J'essaie donc de créer un modèle dans lequel un div est une image et l'autre est un texte avec un arrière-plan. Maintenant, je souhaite rendre ce modèle réactif afin que le texte se trouve sous l'image à une largeur de px spécifique. En parcourant stackoverflow, j'ai vu d'innombrables messages disant que vous devriez utiliser Flexbox. J'ai essayé mais je n'y suis pas parvenu.

Donc, sur ordinateur, cela devrait ressembler à ceci : https://i.stack.imgur.com/HDehv.jpg Sur smartphone, cela devrait sauter ici https://i.stack.imgur.com/D4VOh. .jpg

J'ai besoin de marges des deux côtés, au moins sur la version de bureau. Maintenant, mon problème est que mes images n'ont pas de limite sur mon site et deviennent trop volumineuses et le passage automatique aux lignes se produit (pour autant que je sache).

Mon code est ici : https://jsfiddle.net/wqesp83a/

.container {
  display: inline-flex;
  border: 1px solid black;
  margin: 5%;
  width: 90%;
}

.flex-direction {
  flex-direction: row;
}

.div1 {
  display: flex;
  border-right: 1px solid black;
}

h {
  color: #90bd49;
  font-size: 30px;
}

p {
  color: #333333;
  font-size: 16px;
}

.div2 {
  display: flex;
  background-color: #fff;
  max-width: 50%;
  padding: 1%;
  background-color: #e3e3e3;
}

span {
  font-size: 16px;
  text-align: left;
}

@media only screen and (min-width: 0px) and (max-width: 500px) {
  .flex-direction {
    flex-direction: column;
  }
  .div1 {
    max-width: 100%;
    border-right: none;
    border-bottom: 1px solid black;
  }
  .div2 {
    max-width: 100%;
  }
  .container {
    margin: 0%;
  }
<div class="container flex-direction">
  <div class="div1"><span><img alt="Fotoabzüge" src="https://s3.eu-central-1.amazonaws.com//pbx-sw-profotolab/media/79/95/4c/1673964627/bild4_(1).jpg" width="100%" height="100%"  /></span></div>
  <div class="div2"><span><h>Lorem ipsum</h> <p> Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud.Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud.Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud.Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud.</p> </span></div>
</div>

J'ai essayé de limiter la largeur et la hauteur du div et de l'image, mais soit cela n'a pas aidé, soit je casserais le tout encore plus. Si quelqu'un peut m'aider à voir mon erreur, je lui en serais très reconnaissant.

P粉005134685P粉005134685229 Il y a quelques jours438

répondre à tous(1)je répondrai

  • P粉130097898

    P粉1300978982024-04-03 00:17:22

    grid Venez à la rescousse :

    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr))
    

    Une colonne de grille sera créée pour chaque enfant du conteneur, à condition qu'ils puissent s'étendre jusqu'à 400 px de largeur. Lorsqu'il n'y a pas assez d'espace pour les éléments de grille d'une largeur de 400 px, ils seront regroupés dans une colonne. Échangez simplement la valeur px avec ce que vous voulez.

    grid-auto-rows: 1fr rendra la hauteur des deux colonnes égale.

    .container {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
      grid-auto-rows: 1fr;
      border: 1px solid black;
      margin: 5%;
      width: 90%;
    }
    
    .flex-direction {
      flex-direction: row;
    }
    
    .div1 {
      display: flex;
      border-right: 1px solid black;
    }
    
    h {
      color: #90bd49;
      font-size: 30px;
    }
    
    p {
      color: #333333;
      font-size: 16px;
    }
    
    .div2 {
      display: flex;
      background-color: #fff;
      /* max-width: 50%; */
      padding: 1%;
      background-color: #e3e3e3;
    }
    
    span {
      font-size: 16px;
      text-align: left;
    }
    
    @media only screen and (min-width: 0px) and (max-width: 500px) {
      .flex-direction {
        flex-direction: column;
      }
      .div1 {
        max-width: 100%;
        border-right: none;
        border-bottom: 1px solid black;
      }
      .div2 {
        max-width: 100%;
      }
      .container {
        margin: 0%;
      }
    Fotoabzüge
    Lorem ipsum

    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud.Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud.Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud.Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud.

    répondre
    0
  • Annulerrépondre