Rumah > Soal Jawab > teks badan
P粉4589136552023-09-04 16:01:19
Anda telah aspect-ratio
memberitahu papan supaya mempunyai ketinggian yang sama dengan lebar, jadi jika lebar anda ialah 3000px, ketinggian anda akan sama. Anda ada pilihan
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; } .parent { height: 100vh; background-color: grey; display: flex; flex-direction: column; } .header { flex-shrink: 0; height: 10px; background-color: blue; } .child { flex-grow: 1; background-color: lightcoral; } .chessboard { height: 100%; max-height: 100%; background-color: purple; margin: auto; } .footer { flex-shrink: 0; height: 10px; background-color: green; }
<div class="parent"> <header class="header"> </header> <div class="child"> <div class="chessboard"> main </div> </div> <footer class="footer"> </footer> </div>
P粉0345716232023-09-04 15:38:58
Jawapan akhir bergantung pada beberapa penjelasan daripada anda. Saya bertanya kepada anda dalam ulasan mengenai soalan ini. Tetapi saya akan memberikan jawapan umum.
Saya akan menerangkan secara ringkas apa yang dilakukan dalam contoh di bawah.
Saya mencipta .chessboard-wrapper
,其中有一个 。
根据需要进行缩放,并具有
aspect-ratio: 1;
.
.chessboard
本身具有 position:absolute;
Dan akan datang dalam saiz ayah.
* { margin: 0; padding: 0; box-sizing: border-box; } .parent { height: 100vh; background-color: grey; display: flex; flex-direction: column; } .header { height: 10px; background-color: blue; flex: none; } .child { background-color: red; flex: auto; min-height: 0; display: flex; flex-direction: column; } .chessboard-wrapper { position: relative; min-height: 0; margin: auto; aspect-ratio: 1; } .chessboard-wrapper > canvas { max-width: 100%; max-height: 100%; } .chessboard { position: absolute; inset: 0; background-color: purple; } .footer { height: 10px; background-color: green; flex: none; }
<div class="parent"> <div class="header"></div> <div class="child"> <div class="chessboard-wrapper"> <canvas width="1000000" height="1000000"></canvas> <div class="chessboard"></div> </div> </div> <div class="footer"></div> </div>