Rumah > Artikel > hujung hadapan web > Bagaimana untuk memusatkan div di dalam div lain?
Penjajaran tengah bagi div ialah salah satu aspek terpenting dalam pembangunan bahagian hadapan. Dalam artikel ini, kita akan melihat teknik meletakkan div di dalam div lain menggunakan HTML dan CSS.
Dalam tutorial ini kita akan mempunyai div ibu bapa yang sepatutnya mempunyai div anak. Tugas kami ialah meletakkan div anak di tengah div induk.
Ini bukan cara yang sangat popular untuk menyelaraskan satu div ke div yang lain
left:50%; top:50%; Transform: translate(-50%, -50%);
Sintaks di atas melaksanakan operasi berikut -
Peraturan CSS "kiri:50%;" menetapkan kedudukan mendatar elemen kepada 50% bahagian kiri bekasnya.
Peraturan "atas:50%;" menetapkan kedudukan menegak elemen kepada 50% dari bahagian atas bekasnya.
Peraturan "transform: terjemah(-50%, -50%);" menggerakkan elemen -50% secara mendatar dan -50% secara menegak, dengan berkesan meletakkan bahagian tengah elemen di sebelah kirinya bekas Sisi dan kedudukan 50% atas.
Walau bagaimanapun, ini bukan cara yang popular untuk memusatkan div dalam div lain. Ini kerana sebab-sebab berikut -
Ini memerlukan lima baris kod tambahan, lebih banyak daripada kaedah lain.
Kedudukan div ibu bapa dan anak mesti ditakrifkan, yang boleh menyebabkan kesulitan dalam mereka bentuk div lain yang berkaitan pada masa hadapan.
<!DOCTYPE html> <html lang="en"> <head> <style> .container{ background-color: red; width:50vw; height:50vh; position: relative; } .child{ background-color: yellow; Width: 25vw; Height: 25vh; position: absolute; left:50%; top:50%; transform:translate(-50%, -50%); } </style> </head> <body> <div class="container"> <div class="child"> </div> </div> </body> </html>
Dalam contoh di atas, kami mula-mula mengisytiharkan bahawa kedudukan anak adalah mutlak dan kedudukan ibu bapa adalah relatif. Seterusnya, kami mengalihkan anak 50% dari bahagian atas dan kiri div induk. Seterusnya, kami memusatkan div kanak-kanak menggunakan sifat transformasi CSS.
translate(x, y) mengambil dua nilai sebagai parameter, dengan x ialah bilangan piksel untuk menggerakkan elemen secara mendatar dan y ialah bilangan piksel untuk menggerakkan elemen secara menegak. Dalam contoh ini, elemen akan bergerak -50% daripada lebarnya dan -50% daripada ketinggiannya, memusatkannya secara menegak dan mendatar.
Cara yang lebih popular untuk menjajarkan div adalah dengan menggunakan sifat grid CSS namun, untuk ini, anda perlu mengisytiharkan div sebagai grid terlebih dahulu.
place-items: center;
tempat-item sifat menjajarkan item secara mendatar dan menegak dengan bekas grid. Kami hanya boleh menggunakan sifat ini dengan bekas grid.
<!DOCTYPE html> <html lang="en"> <head> <style> .container{ background-color: blue; width:50vw; height:50vh; display: grid; place-items: center; } .child{ background-color: yellow; width:25vw; height:25vh; } </style> </head> <body> <div class="container"> <div class="child"> </div> </div> </body> </html>
Kaedah lain yang boleh kami gunakan ialah sifat flexbox CSS. Mula-mula kita perlu mengisytiharkan ibu bapa sebagai kotak fleksibel. Kotak fleksibel ialah elemen yang digunakan secara meluas dalam CSS. Ia sangat mudah digunakan kerana ia adalah elemen responsif dan pengaturcara umumnya mempunyai kawalan yang baik ke atas sifat Flexbox.
<!DOCTYPE html> <html lang="en"> <head> <style> .container{ background-color: purple; width:50vw; height:30vh; display: flex; flex-direction: row; align-items: center; justify-content: center; } .child{ background-color: green; width:25vw; height:10vh; } </style> </head> <body> <div class="container"> <div class="child"> </div> </div> </body> </html>
Meletakkan berbilang div bersarang di dalam div induk juga merupakan tugas yang mudah. Katakan terdapat tiga div, iaitu bekas, yang merupakan div induk, dan anak pertama, yang merupakan anak div bekas; Kami kemudiannya boleh menjajarkan elemen anak pertama dahulu ke dalam div bekas menggunakan kaedah yang kami bincangkan. Seterusnya, kita boleh menjadikan anak pertama sebagai ibu bapa kepada anak kedua dan menggunakan teknik yang sama.
Sebagai ilustrasi, kami akan menggunakan salah satu kaedah ini untuk menunjukkan teknik tersebut. Pembaca harus mencuba dua kaedah lain untuk melaksanakan tugas yang serupa.
<!DOCTYPE html> <html lang="en"> <head> <style> .container { background-color: red; width: 50vw; height: 30vh; display: flex; flex-direction: row; align-items: center; justify-content: center; } .first-child { background-color: green; width: 25vw; height: 20vh; display: flex; flex-direction: row; align-items: center; justify-content: center; } .second-child { background-color: yellow; height: 10vh; width: 20vw; } </style> </head> <body> <div class="container"> <div class="first-child"> <div class="second-child"></div> </div> </div> </body> </html>
Dalam artikel ini, kami mempelajari cara menjajarkan div di tengah di dalam div lain menggunakan HTML dan CSS. Kami melihat tiga teknik berbeza untuk div penjajaran tengah. Mereka menggunakan sifat kedudukan, sifat grid dan harta flexbox. Antaranya, atribut flexbox adalah yang paling banyak digunakan dan paling mudah.
Atas ialah kandungan terperinci Bagaimana untuk memusatkan div di dalam div lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!