Rumah > hujung hadapan web > tutorial css > Bolehkah CSS Mengekalkan Nisbah Aspek 1:1 dengan Memadankan Tinggi Elemen Secara Dinamik dengan Lebar?

Bolehkah CSS Mengekalkan Nisbah Aspek 1:1 dengan Memadankan Tinggi Elemen Secara Dinamik dengan Lebar?

Mary-Kate Olsen
Lepaskan: 2024-12-27 16:40:11
asal
394 orang telah melayarinya

Can CSS Maintain a 1:1 Aspect Ratio by Dynamically Matching Element Height to Width?

Padan Secara Dinamik Tinggi dengan Lebar dalam Reka Letak Bendalir CSS

Dalam susun atur CSS cecair, elemen boleh melaraskan saiznya secara automatik berdasarkan ruang yang tersedia . Ini boleh menimbulkan cabaran apabila cuba mengekalkan nisbah aspek tertentu, seperti segi empat sama atau segi empat tepat.

Soalan:

Bolehkah CSS digunakan untuk menetapkan ketinggian elemen yang sama dengan lebarnya, mengekalkan aspek 1:1 nisbah?

Contoh:

Pertimbangkan elemen bekas dan elemen div bersarang dengan struktur berikut dan susun atur:

+----------+
| body     |
| 1:3      |
|          |
| +------+ |
| | div  | |
| | 1:1  | |
| +------+ |
|          |
|          |
|          |
|          |
|          |
+----------+
Salin selepas log masuk

CSS:

div {
  width: 80%;
  height: same-as-width
}
Salin selepas log masuk

Penyelesaian:

Walaupun tidak mungkin untuk menetapkan ketinggian secara eksplisit untuk memadankan lebar dengan CSS sahaja, penyelesaian boleh dicapai menggunakan elemen dummy dan bijak kedudukan.

#container {
  display: inline-block;
  position: relative;
  width: 50%;
}

#dummy {
  margin-top: 75%;
  /* 4:3 aspect ratio */
}

#element {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: silver/* show me! */
}
Salin selepas log masuk
<div>
Salin selepas log masuk

Dengan menggunakan sifat margin atas pada elemen tiruan dan menetapkannya kepada 75% (untuk memadankan nisbah bidang 4:3), kami membuat rujukan untuk ketinggian. Elemen itu kemudiannya diletakkan secara mutlak dalam kawasan rujukan ini, menghasilkan ketinggian yang sama dengan lebarnya.

Atas ialah kandungan terperinci Bolehkah CSS Mengekalkan Nisbah Aspek 1:1 dengan Memadankan Tinggi Elemen Secara Dinamik dengan Lebar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan