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

Patricia Arquette
Lepaskan: 2024-10-28 03:44:02
asal
974 orang telah melayarinya

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) */
}
Salin selepas log masuk

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) */
}
Salin selepas log masuk

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;
}
Salin selepas log masuk

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!

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