Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Mencapai Pengembangan Berpusat Elemen Div dalam CSS Tanpa JavaScript?

Bagaimana untuk Mencapai Pengembangan Berpusat Elemen Div dalam CSS Tanpa JavaScript?

Patricia Arquette
Patricia Arquetteasal
2024-10-28 03:44:02920semak imbas

How to Achieve Centered Expansion of a Div Element in CSS Without JavaScript?

Memperluas Div daripada Pusatnya Menggunakan CSS

Dalam bidang transformasi CSS, seseorang mungkin membayangkan elemen div berkembang dengan anggun dari paksi pusatnya , bukannya tingkah laku lalai untuk mengembangkan dari sudut atas dan kiri. Walau bagaimanapun, kesan yang diingini ini memberikan cabaran tanpa JavaScript.

Penyelesaian: Memanipulasi Margin

Kunci untuk mencapai pengembangan berpusat ini terletak pada peralihan margin div menggunakan khusus formula. Teknik ini melibatkan pengiraan perbezaan antara saiz sasaran dan saiz awal dan membahagikan hasilnya dengan dua. Nilai ini kemudiannya digunakan sebagai pelarasan margin negatif semasa peralihan.

Pilihan Penyesuaian:

Bergantung pada gelagat yang diingini, tiga pilihan utama tersedia:

Pilihan 1: Memelihara Ruang

Pilihan ini mengembangkan div dalam ruang yang dikhaskan di sekelilingnya, meninggalkan elemen sekeliling tidak terjejas.

#square {
    -webkit-transition: width 1s, height 1s, margin 1s;
    transition: width 1s, height 1s, margin 1s;
}
#square:hover {
    margin: 55px; /* calculated as initial margin - ((width change and height change)/2) */
}

Pilihan 2: Mengatasi Elemen Sekeliling

Dengan menetapkan margin negatif, pilihan ini menyebabkan div berkembang ke atas elemen berdekatan, bertindih kandungannya.

#square {
    -webkit-transition: width 1s, height 1s, margin 1s;
    transition: width 1s, height 1s, margin 1s;
}
#square:hover {
    margin: -50px; /* calculated as 0 - ((width change and height change)/2) */
}

Pilihan 3: Beralih Elemen Sekeliling

Variasi ini menganjakkan div dan mengalihkan elemen seterusnya ke bawah aliran dokumen.

#square {
    -webkit-transition: width 1s, height 1s, top 1s, left 1s, margin 1s;
    transition: width 1s, height 1s, top 1s, left 1s, margin 1s;
}
#square:hover {
    top: -50px; /* calculated as initial top - ((new height - initial height)/2) */
    left: -50px; /* calculated as initial left - ((new width - initial width)/2) */
    margin-right: -50px;
    margin-bottom: -50px;
}

Nota: Pengiraan ini digunakan pada div segi empat sama. Untuk elemen bukan segi empat sama, pengiraan untuk pelarasan jidar mungkin berbeza sedikit bergantung pada saiz semula berkadar yang diingini.

Atas ialah kandungan terperinci Bagaimana untuk Mencapai Pengembangan Berpusat Elemen Div dalam CSS Tanpa JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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