Saya mencoba membuat sistem menu dengan gambar dan teks di atas dan di bawah. Data bersifat dinamis. Saya ingin sistem menu muncul sehingga setiap gambar berjarak sama dari satu sama lain sehingga mereka berbaris dalam kisi-kisi gambar baik secara horizontal maupun vertikal.
Masalahnya adalah teks. Jika teks lebih panjang dari gambar, maka div akan diperbesar. Namun, kemudian menciptakan celah yang terlihat canggung karena gambar tidak lagi sama jaraknya satu sama lain.
Untuk mengatasi ini, saya pikir pendekatan terbaik adalah meminta masing-masing div lainnya untuk mengadopsi ukuran div yang lebih besar. Namun, saya tidak yakin bagaimana cara melakukan ini.
Saya sudah mencoba dengan flexbox menggunakan flex-wrap
properti. Sementara itu dibungkus dengan baik, saya belum bisa menemukan cara untuk mendapatkan masing-masing gambar untuk sejajar jarak yang sama dari satu sama lain.
Bagaimana cara saya mencapai hal ini?
Kode saya adalah sebagai berikut:
#outer {
display: flex;
}
#main {
display: flex;
justify-content: space-between;
flex-wrap: wrap;
border: solid black 25px;
border-radius: 25px;
width: 450px;
height: 500px;
padding: 20px;
}
.section {
background-color: #ddd;
padding: 15px;
}
.label, .icon {
text-align: center;
}
<div id="outer">
<div id="main">
<div class="section">
<div class="label">Label 1AAAAAAAAAAA</div>
<div class="icon"><img src="https://via.placeholder.com/75"></div>
<div class="label">Label 1B</div>
</div>
<div class="section">
<div class="label">Label 2A</div>
<div class="icon"><img src="https://via.placeholder.com/75"></div>
<div class="label">Label 2B</div>
</div>
<div class="section">
<div class="label">Label 3A</div>
<div class="icon"><img src="https://via.placeholder.com/75"></div>
<div class="label">Label 3B</div>
</div>
<div class="section">
<div class="label">Label 4A</div>
<div class="icon"><img src="https://via.placeholder.com/75"></div>
<div class="label">Label 4B</div>
</div>
<div class="section">
<div class="label">Label 5A</div>
<div class="icon"><img src="https://via.placeholder.com/75"></div>
<div class="label">Label 5B</div>
</div>
</div>
</div>
PS. Saya juga tidak yakin mengapa div bagian saya menambah tinggi badan mereka. Jadi wawasan apa pun tentang ini juga akan dihargai.
align-items
diatur stretch
secara default. Anda dapat dengan mudah mengubahnya:align-items: flex-start;