Saya tahu apa yang Anda pikirkan. "Apa maksudmu, buat slider hanya dengan CSS. Tentunya Anda memerlukan JavaScript untuk mengontrol perilaku penggeser?" Show
Sebenarnya, ada cara cerdas untuk melakukannya dengan CSS murni, dan bukan satu baris JS. Dan ya, itu termasuk tombol navigasi dan remah roti Lihatlah hasil yang akan kita dapatkan Lihat Pena di CodePen Baca terus untuk mengetahui caranya Langkah 1 - buat tata letak slider AndaPertama, Anda perlu membuat ruang untuk memasukkan slider, dan tentu saja, beberapa slide
Jadi di sini kita punya
Maka kita membutuhkan CSS _ _0 bisa apa saja - Saya baru saja menggunakan flexbox untuk memudahkan memusatkan slider. Tapi jika mau, Anda bisa menggunakan CSS Grid (ini masalah preferensi, seperti yang kami jelaskan di CSS Grid Vs ini. artikel Flexbox) _1 hanya mengatur ukuran slider Anda - Anda dapat menyesuaikan ini sesuai dengan kebutuhan AndaSelanjutnya, kita akan memberi style pada elemen _2
Oke, disinilah keajaiban terjadi. Jika kami menyetel _8 untuk menggulir, apa pun yang tidak sesuai dengan area pandang 1 kami hanya akan dapat diakses dengan menggulirMenyetel 0 ke 1 dan 2 ke 3 berarti bahwa jika kita melompat-tautan ke elemen anak mana pun dari 2, browser akan menggulir ke sana dengan lancar, bukan hanya langsung melompat ke elemen ituBenar, selanjutnya mari kita gaya slide itu sendiri
Cocokkan ukuran _3 menjadi sama dengan 1. Tiga properti terakhir, _7, 8, dan 9, adalah kunci. Ini memastikan bahwa ketika kita melakukan jump-link ke slide tertentu, slide akan 'snap' ke tengah viewport sliderOK, sejauh ini kita punya ini Lihat Pena di CodePen Jika Anda mengklik di dalam penggeser, lalu tekan tombol panah, Anda akan melihat perilaku pengguliran dan gertakan yang mulus sedang beraksi Tapi tentu saja kami tidak ingin pengguna kami harus melakukan ini. Kami ingin meletakkan beberapa tombol navigasi pada penggeser sebagai gantinya - dan kami mungkin juga harus menyingkirkan bilah gulir itu Langkah 2 - Menambahkan tombol navigasi sliderDalam HTML, saya telah menambahkan dua elemen 0 ke setiap slide
Perhatikan bahwa
Sekarang untuk css
Anda dapat menata dan memposisikan tombol-tombol ini sesuai keinginan Anda - saya telah memilih untuk mengarahkan panah ke setiap arah. Terkadang opsi sederhana adalah yang terbaik - tetapi Anda dapat membuat pilihan sendiri Langkah 3 - Menghapus scrollbar dengan CSS
cukup tambahkan _4 ke 5. Ini juga memainkan radius perbatasanItu memberi kita ini Lihat Pena di CodePen Oke, cukup bagus - tetapi idealnya kita tidak ingin tombol dikunci pada setiap slide. Slider biasanya memiliki tombol yang terpasang di tempatnya Tetapi apakah itu mungkin dengan CSS? Kenapa iya Langkah 4 - Memperbaiki tombol navigasi pada tempatnyaKita tidak perlu mengubah HTML untuk ini, tetapi kita perlu memperbarui sedikit CSS kita
OK jadi apa yang terjadi di sini? . Ini membuat tombol kami tidak terlihat secara efektif Kemudian, kami telah menambahkan _7 dan 8 pseudo elemen ke 1. Ini memiliki gaya yang sama yang kita miliki sebelumnya pada elemen 0 - panah sederhana yang bagus. Dan kami telah memposisikannya tepat di atas tombol kami yang sekarang tidak terlihat, dan menyetel 1 ke 2Karena mereka dilampirkan ke elemen _1 dan bukan 3, mereka akan tetap di tempatnya saat pengguna menggulir slide. Tetapi. ketika pengguna mengklik salah satunya, mereka sebenarnya mengklik tombol tak terlihat yang dilampirkan pada slide yang sebenarnyaIni memberikan ilusi tombol navigasi tetap. Bagus kan? Sepertinya ini Lihat Pena di CodePen Oke, sekarang kita punya penggeser CSS murni yang cukup bagus Aha, saya mendengar Anda berkata, tapi bagaimana dengan remah roti, bisakah kita menambahkannya juga? Senang Anda bertanya - ya kami bisa Langkah 5 - Tambahkan remah roti ke penggeserUntuk menambahkan remah roti ke penggeser, kami benar-benar menggunakan teknik yang sama yang baru saja kami lalui - hanya dengan cara yang sedikit berbeda Setiap remah roti hanya akan menjadi tautan lompat lain yang menunjuk ke slide yang relevan, dan kami akan memposisikannya secara mutlak di elemen 1Jadi inilah HTML (letakkan ini di 1, di bawah elemen 2)
Lihat? . Sekarang untuk menatanya
Sekali lagi, Anda bebas untuk menatanya sesuai keinginan hati Anda Dan inilah hasil akhirnya Lihat Pena di CodePen Penggeser yang cukup keren, dan tidak ada JavaScript yang terlihat. Harapan itu berguna untuk Anda KesimpulanIni adalah trik berguna yang memungkinkan Anda membuat fungsi penggeser - bahkan untuk orang dengan JS dimatikan. Tapi tentu saja, tanpa JS, Anda benar-benar terbatas pada apa yang dapat Anda lakukan dan bagaimana Anda dapat mengintegrasikannya dengan situs Anda yang sudah ada. Browser Anda tidak mendukung tag video Jika Anda ingin memanfaatkan kekuatan JS untuk membuat penggeser halaman penuh yang indah, responsif, lihat halaman lengkap. js. Ini memiliki fungsi penggeser langsung dari kotaknya, dan termasuk dukungan untuk
Ini juga sangat mudah diatur - jadi cobalah Dan jika Anda masih haus akan penggeser, dapatkan inspirasi dari daftar penggeser animasi yang luar biasa ini atau penggeser lainnya dengan penggeser Webflow yang keren Bagaimana cara menggeser gambar dalam HTML menggunakan CSS?Contoh . . .Bagaimana Anda membuat slider yang berfungsi di HTML dan CSS?Kita akan menjelajahi setiap konsep selangkah demi selangkah dan mengapa kita melakukan apa yang sedang kita lakukan. . Langkah 1. Buat Tata Letak Dasar Penggeser Gambar menggunakan Kode HTML. . Langkah 2. Tambahkan Tombol Sebelumnya dan Berikutnya. . Langkah 3. Tambahkan Gambar dan Teks yang Diperlukan ke Penggeser. . Langkah 4. Aktifkan Dua Tombol menggunakan Kode JavaScript Bagaimana cara membuat slider tanpa JavaScript?Tambahkan pembungkus dengan input radio dan slide agar memiliki dua slide. . Anda harus menambahkan dua input input untuk slide pertama harus memiliki atribut yang diperiksa ditambahkan Anda harus menambahkan "nama" yang sama ke semua masukan sehingga hanya satu yang dapat diperiksa pada waktu yang sama Anda dapat menambahkan gambar, teks, atau keduanya bersama-sama di dalam slide Bagaimana saya bisa membuat banyak penggeser gambar dalam HTML dan CSS? . |