cari
Rumahhujung hadapan webtutorial cssSidebar melekit berukuran dinamik dengan HTML dan CSS

Sidebar melekit berukuran dinamik dengan HTML dan CSS

Mewujudkan bar sisi melekit yang menyesuaikan diri dengan saiz viewport adalah mengejutkan dengan mudah menggunakan HTML dan CSS. Memanfaatkan position: sticky dan menetapkan offset arah (seperti top: 0 ) membolehkan pelaksanaan ciri-ciri mudah seperti menu lompat-ke-anchor atau tajuk seksyen. Untuk teknik kedudukan melekit yang lebih maju, meneroka sumber seperti trik CSS.

Walau bagaimanapun, cabaran timbul apabila berurusan dengan kandungan bersaiz dinamik dalam elemen melekit. Ini boleh membawa kepada kandungan yang tersembunyi di bawah viewport, isu biasa apabila ketinggian sidebar melebihi ruang skrin yang tersedia.

Saya baru -baru ini menghadapi masalah ini semasa merancang susun atur desktop dengan kawasan kandungan utama dan bar sisi yang mengandungi item tindakan dan penapis. Sidebar diperlukan untuk tetap tetap ke viewport semasa menatal. Walaupun gaya awal adalah mudah, ketinggian pembolehubah kandungan sidebar memberikan cabaran. Menggunakan max-height dan overflow-y: auto bekerja dengan baik pada skrin yang lebih besar, tetapi viewports yang lebih kecil menyebabkan sidebar melimpah.

Menyelesaikan masalah ketinggian dinamik

Pendekatan awal saya dianggap menggunakan pertanyaan media untuk menghilangkan kedudukan melekit pada skrin yang lebih kecil, menjadikan sidebar relatif kepada bekasnya. Walau bagaimanapun, ketinggian dinamik bar sisi membuat mencari titik putus yang sesuai untuk pertanyaan media yang mustahil. Penyelesaian JavaScript untuk menyesuaikan ketinggian secara dinamik berdasarkan saiz viewport seolah -olah terlalu kompleks dan terdedah kepada isu -isu dengan saiz semula tetingkap.

Penyelesaian berasaskan CSS yang lebih elegan terbukti berkesan.

Melaksanakan penyelesaian

Elemen utama yang digunakan flexbox untuk susun atur, memberikan flex-basis tetap ke bar sisi untuk lebar desktop dan membolehkan elemen artikel mengisi ruang yang tinggal. Teknik Albatross Suci Flexbox memastikan penyusun yang betul pada pandangan yang lebih kecil tanpa pertanyaan media. align-self: start di bar sisi menghalang ketinggiannya daripada meregangkan dengan artikel utama.

CSS utama untuk bar sisi melekit:

 .sidebar {
  --offset: var (-ruang);
  / * ... */
  Kedudukan: melekit;
  atas: var (-offset);
}

Ini menetapkan tingkah laku melekit dengan mengimbangi teratas yang dikawal oleh harta tersuai CSS ( --offset ). Pembolehubah ini digunakan semula untuk jarak yang konsisten.

Struktur komponen bar sisi:

 .component {
  paparan: grid;
  grid-template-baris: auto 1FR auto;
}

.component .content {
  Max-Height: 500px;
  limpahan-y: auto;
}

Ini menggunakan grid CSS untuk susun atur yang fleksibel. max-height pada bahagian kandungan menghalang pertumbuhan yang berlebihan, dan overflow-y: auto membolehkan menatal apabila perlu. Secara kritis, dalam konteks bar sisi:

 .SIDEBAR .COMPONENT {
  Max-Height: Calc (100vh-var (-offset) * 2);
}

Ini secara dinamik mengira max-height berdasarkan ketinggian viewport dan mengimbangi, mencegah limpahan.

Pendekatan ini mewujudkan bar sisi melekit yang responsif yang menyesuaikan diri dengan saiz viewport yang berbeza. Walaupun sesuai untuk desktop, peningkatan selanjutnya mungkin diperlukan untuk peranti yang lebih kecil, seperti butang "melompat ke bar sisi" atau togol untuk menyembunyikan/menunjukkan bar sisi. Ujian pengguna akan membimbing lelaran selanjutnya.

Atas ialah kandungan terperinci Sidebar melekit berukuran dinamik dengan HTML dan CSS. 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
Simulasi pergerakan tetikusSimulasi pergerakan tetikusApr 22, 2025 am 11:45 AM

Sekiranya anda pernah memaparkan animasi interaktif semasa ceramah langsung atau kelas, maka anda mungkin tahu bahawa ia tidak selalu mudah untuk berinteraksi dengan slaid anda

Powering Carian dengan Tindakan Astro dan Fuse.jsPowering Carian dengan Tindakan Astro dan Fuse.jsApr 22, 2025 am 11:41 AM

Dengan Astro, kami dapat menjana sebahagian besar laman web kami semasa membina kami, tetapi mempunyai sedikit kod pelayan yang dapat mengendalikan fungsi carian menggunakan sesuatu seperti fuse.js. Dalam demo ini, kami akan menggunakan fius untuk mencari melalui satu set "penanda buku" peribadi

Undefined: Nilai Boolean KetigaUndefined: Nilai Boolean KetigaApr 22, 2025 am 11:38 AM

Saya ingin melaksanakan mesej pemberitahuan dalam salah satu projek saya, sama seperti apa yang anda lihat dalam Dokumen Google semasa dokumen menyimpan. Dengan kata lain, a

Dalam mempertahankan pernyataan ternaryDalam mempertahankan pernyataan ternaryApr 22, 2025 am 11:25 AM

Beberapa bulan yang lalu, saya berada di berita penggodam (seperti yang dilakukan) dan saya berlari melintasi artikel (kini dipadam) tentang tidak menggunakan jika kenyataan. Sekiranya anda baru dengan idea ini (seperti saya

Menggunakan API Ucapan Web untuk terjemahan berbilang bahasaMenggunakan API Ucapan Web untuk terjemahan berbilang bahasaApr 22, 2025 am 11:23 AM

Sejak awal fiksyen sains, kami telah fantasized tentang mesin yang bercakap dengan kami. Hari ini adalah perkara biasa. Walaupun begitu, teknologi untuk membuat

Blok Jetpack GutenbergBlok Jetpack GutenbergApr 22, 2025 am 11:20 AM

Saya masih ingat ketika Gutenberg dibebaskan ke teras, kerana saya berada di Wordcamp kami pada hari itu. Beberapa bulan telah berlalu sekarang, jadi saya bayangkan semakin banyak kita

Membuat komponen penomboran yang boleh diguna semula di VueMembuat komponen penomboran yang boleh diguna semula di VueApr 22, 2025 am 11:17 AM

Idea di sebalik kebanyakan aplikasi web adalah untuk mengambil data dari pangkalan data dan membentangkannya kepada pengguna dengan cara yang terbaik. Apabila kita berurusan dengan data di sana

Menggunakan 'bayang-bayang kotak' dan laluan klip bersamaMenggunakan 'bayang-bayang kotak' dan laluan klip bersamaApr 22, 2025 am 11:13 AM

Let ' s melakukan sedikit langkah demi langkah keadaan di mana anda tidak boleh melakukan apa yang kelihatannya masuk akal, tetapi anda masih boleh melakukannya dengan penipuan CSS. Dalam ini

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

SecLists

SecLists

SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.