Heim  >  Fragen und Antworten  >  Hauptteil

Responsives Bild und Text Div nebeneinander

Ich versuche also, eine Vorlage zu erstellen, bei der ein Div ein Bild und das andere Text mit Hintergrund ist. Jetzt möchte ich diese Vorlage responsive machen, sodass der Text mit einer bestimmten Pixelbreite unter dem Bild liegt. Als ich Stackoverflow durchgesehen habe, habe ich unzählige Beiträge gesehen, in denen stand, dass man Flexbox verwenden sollte. Ich habe es versucht, aber es gelang mir nicht ganz.

Auf dem Desktop sollte es also so aussehen: https://i.stack.imgur.com/HDehv.jpg Auf dem Smartphone sollte es hierher springen: https://i.stack.imgur.com/D4VOh. .jpg

Ich brauche Ränder auf beiden Seiten, zumindest bei der Desktop-Version. Jetzt ist mein Problem, dass meine Bilder auf meiner Seite keine Begrenzung haben und zu groß werden und die automatische Umschaltung auf Zeilen erfolgt (soweit ich weiß).

Mein Code ist hier: 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>

Ich habe versucht, die Breite und Höhe des Div und des Bildes zu begrenzen, aber entweder hat es nicht geholfen, oder ich habe das Ganze noch weiter kaputt gemacht. Wenn mir jemand helfen kann, meinen Fehler zu erkennen, wäre ich sehr dankbar.

P粉005134685P粉005134685181 Tage vor365

Antworte allen(1)Ich werde antworten

  • P粉130097898

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

    grid 来救援:

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

    将为容器的每个子级创建一个网格列,只要它们可以拉伸到400px宽度。当没有足够的空间容纳宽度为 400px 的网格项时,它们将换行成一列。只需将 px 值交换为您想要的任何值即可。

    grid-auto-rows: 1fr 会让两列的高度相等。

    .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.

    Antwort
    0
  • StornierenAntwort