Rumah > hujung hadapan web > tutorial css > Mengapakah `ketinggian: 100%` Gagal pada Elemen Kanak-kanak Apabila Induknya Mempunyai `min-height`/`max-height` tetapi Tiada Ketinggian Eksplisit?

Mengapakah `ketinggian: 100%` Gagal pada Elemen Kanak-kanak Apabila Induknya Mempunyai `min-height`/`max-height` tetapi Tiada Ketinggian Eksplisit?

Patricia Arquette
Lepaskan: 2024-12-26 20:36:10
asal
221 orang telah melayarinya

Why Does `height: 100%` Fail on a Child Element When Its Parent Has `min-height`/`max-height` but No Explicit Height?

Mengapa Ketinggian: 100% pada Elemen Kanak-kanak Gagal Digunakan Apabila Elemen Induk Mempunyai Nilai Ketinggian Min/Ketinggian Maks tetapi Tiada Nilai Ketinggian Tertentu?

Pertimbangkan HTML dan CSS berikut persediaan:

<div class="container">
  <div class="child"></div>
</div>
Salin selepas log masuk
.container {
  background-color: red;
  width: 500px;
  min-height: 300px;
}

.child {
  background-color: blue;
  width: 500px;
  height: 100%;
}
Salin selepas log masuk

Dalam senario ini, elemen kontena dipaparkan dengan ketinggian 300px seperti yang dijangkakan, tetapi elemen anak kekal tanpa sebarang ketinggian walaupun ketinggian: 100% pengisytiharan.

Walau bagaimanapun, menambah nilai ketinggian kecil (cth., 1px) pada elemen bekas menyebabkan elemen anak tiba-tiba mengisi keseluruhan bekas dengan ketinggian 300px:

.container {
  background-color: red;
  width: 500px;
  min-height: 300px;
  height: 1px;
}

.child {
  background-color: blue;
  width: 500px;
  height: 100%;
}
Salin selepas log masuk

Tingkah laku ini berpunca daripada spesifikasi CSS itu sendiri. Apabila ketinggian elemen tidak ditakrifkan dengan jelas, peratusan ketinggian pada anaknya akan gagal. Mengikut spesifikasi:

Menentukan peratusan ketinggian. Peratusan dikira berkenaan dengan ketinggian blok yang mengandungi kotak yang dihasilkan. Jika ketinggian blok yang mengandungi tidak dinyatakan secara eksplisit (iaitu, ia bergantung pada ketinggian kandungan), dan elemen ini tidak diletakkan secara mutlak, nilai dikira kepada 'auto'.

Dalam kes awal, sejak ketinggian elemen bekas tidak ditetapkan secara eksplisit, ketinggian elemen kanak-kanak: 100% menjadi 'auto'. Ini bermakna ia akan mengambil hanya sebanyak ruang yang diperlukan oleh kandungannya, menyebabkan ketinggian tidak kelihatan.

Menambah nilai ketinggian (walaupun sekecil 1px) pada elemen bekas dengan jelas mentakrifkan ketinggiannya, membenarkan kanak-kanak ketinggian elemen: 100% untuk mengira dan menggunakan ketinggian yang betul.

Oleh itu, tingkah laku yang kelihatan tidak dijangka berpunca daripada fakta bahawa ketinggian unsur induk perlu ditakrifkan secara eksplisit untuk elemen anaknya mengira dengan betul peratusan ketinggiannya.

Atas ialah kandungan terperinci Mengapakah `ketinggian: 100%` Gagal pada Elemen Kanak-kanak Apabila Induknya Mempunyai `min-height`/`max-height` tetapi Tiada Ketinggian Eksplisit?. 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