


Bagaimana untuk membuat header melekit yang menyusut pada tatal dengan CSS?
Gunakan kedudukan: melekit untuk mencapai kepala melekit; 2. CSS moden secara automatik boleh mengecut apabila menatal melalui animasi-masa: Lihat (), tetapi sokongan penyemak imbas adalah terhad; 3. Adalah disyorkan untuk menggabungkan JavaScript untuk mendengar acara tatal dalam persekitaran pengeluaran. Apabila menatal ke bawah melebihi 50px, tambah kelas. 4. Pengoptimuman pilihan termasuk menggunakan transformasi atau perubahan untuk meningkatkan prestasi animasi, tetapi memberi perhatian kepada kesan susun atur; Penyelesaian ini mempunyai keserasian yang baik dan hasil yang lancar, dan sesuai untuk reka bentuk web moden.
Mewujudkan tajuk melekit yang mengecut apabila pengguna menatal ke bawah halaman adalah corak UX yang bersih dan moden. Anda boleh mencapai kesan ini hanya menggunakan CSS (dengan sedikit bantuan dari position: sticky
dipandu dan tatal), walaupun sokongan penuh untuk kesan berasaskan tatal lanjutan mungkin memerlukan mempertimbangkan keserasian penyemak imbas.

Berikut adalah cara untuk membuat tajuk melekit yang mengecut pada tatal menggunakan CSS tulen , dengan pendekatan yang mesra.
✅ 1. Header Sticky Basic dengan mengecut lancar pada tatal
Kami akan menggunakan position: sticky
untuk Stickiness dan CSS Scroll-Driven Animations (melalui scroll-timeline
dan animation
)-kaedah yang lebih baru tetapi elegan. Kami juga akan menunjukkan alternatif yang lebih mudah menggunakan JavaScript jika diperlukan.

Struktur HTML
<header class = "sticky-header"> <div class = "header-content"> <h1> Laman web saya </h1> <av> <a href = "#"> home </a> <a href = "#"> tentang </a> <a href = "#"> Hubungi </a> </nav> </div> </header> <!-Kandungan halaman untuk membolehkan menatal-> <tain> <p> tatal ke bawah untuk melihat kesannya ... </p> <!-tambah lebih banyak kandungan untuk membolehkan Scrolling-> <div style = "Height: 200vh;"> </div> </main>
✅ 2. CSS: Sticky Shrink on Scroll (CSS moden dengan garis masa tatal)
Kaedah ini menggunakan animasi yang didorong oleh CSS , yang disokong dalam pelayar moden seperti Chrome, Edge, dan Firefox (dengan bendera).
.sticky-header { Kedudukan: melekit; Atas: 0; Latar Belakang: #ffff; Padding: 20px 10px; box-shadow: 0 2px 10px rgba (0, 0, 0, 0.1); Peralihan: padding 0.3s mudah; / * Tentukan garis masa tatal */ Animasi-masa: Lihat (); Nama Animasi: Shrink-Header; Animasi-Range: Entry 0% Cover 100%; Animasi-Fill-Mode: Kedua-duanya; Z-indeks: 1000; } .header-Content H1 { Margin: 0; saiz font: 24px; Peralihan: Saiz fon 0.3s mudah; } .Header-Content Nav A { margin-kiri: 20px; saiz font: 18px; Warna: #333; Teks-penyerapan: Tiada; Peralihan: Saiz fon 0.3s mudah; } / * Animasi untuk mengecut header */ @KeyFrames mengecut-header { dari { Padding-block: 20px; } ke { Padding-block: 10px; } } / * Pilihan: mengecut teks juga */ .sticky-header: IS (: state (shrunk)) .header-content H1 { saiz font: 20px; }
? Nota :
animation-timeline: view()
Membuat garis masa berdasarkan kedudukan tatal elemen ke dalam viewport. Ini adalah kunci kepada animasi berkaitan tatal dalam CSS tulen.
Walau bagaimanapun, sokongan penyemak imbas untuk animation-timeline
dan @scroll-timeline
masih terhad. Untuk keserasian yang lebih luas, gunakan JavaScript Fallback di bawah.
✅ 3. Fallback: JavaScript minimum CSS minimum (disyorkan untuk pengeluaran)
Jika anda memerlukan sokongan penyemak imbas yang luas (safari, krom yang lebih tua, dan lain -lain), menggabungkan kelas CSS dengan JavaScript kecil untuk mengesan kedudukan tatal.
CSS yang dikemas kini
.sticky-header { Kedudukan: melekit; Atas: 0; Latar Belakang: #ffff; Padding: 20px 10px; box-shadow: 0 2px 10px rgba (0, 0, 0, 0.1); Peralihan: padding 0.3s mudah; Z-indeks: 1000; } .sticky-header.shrunk { Padding: 10px; } .Sticky-Header.Shrunk H1 { saiz font: 20px; } .sticky-header.shrunk nav a { saiz font: 16px; }
Javascript untuk menambah kelas pada tatal
header const = document.QuerySelector ('. Sticky-header'); Biarkan LastScrollTop = 0; window.addeventListener ('tatal', () => { const currentscrollTop = window.scrolly; // hanya mencetuskan semasa menatal ke bawah jika (currentscrollTop> lastscrollTop && currentscrollTop> 50) { header.classlist.add ('shrunk'); } else { header.classlist.remove ('shrunk'); } lastScrollTop = currentscrollTop; });
? Pendekatan ini boleh dipercayai dan disokong secara meluas. Header menyusut ketika menatal ke 50px lalu dan mengembang kembali ketika menatal.
✅ 4. Peningkatan pilihan
- Gunakan
will-change: transform
atautransform: scale()
untuk Animasi Lancar. - Tambah
requestAnimationFrame
untuk mengoptimumkan prestasi tatal. - Debounce atau tatal tatal throttle jika diperlukan.
Contoh dengan transform
untuk Skaling Smoother:
.sticky-header.shrunk { Transform: Skala (0.95); Transform-Origin: Pusat Atas; }
Tetapi berhati -hati - transform
boleh menjejaskan susun atur. Melekat pada padding
dan perubahan font-size
untuk hasil yang lebih selamat.
Ringkasan
- Gunakan
position: sticky
untuk keletihan. - Untuk penyemak imbas moden: Cuba animasi yang didorong oleh CSS (
animation-timeline: view()
). - Untuk pengeluaran: Gunakan peralihan CSS JavaScript untuk bertukar -tukar kelas
.shrunk
pada tatal. - Sentiasa menguji saiz skrin mudah alih dan berbeza.
Pada asasnya, ia adalah kombo kedudukan melekit, peralihan lancar, dan pengesanan tatal - mudah tetapi berkesan.
Atas ialah kandungan terperinci Bagaimana untuk membuat header melekit yang menyusut pada tatal dengan CSS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Penyemak imbas yang berbeza mempunyai perbezaan dalam parsing CSS, mengakibatkan kesan paparan yang tidak konsisten, terutamanya termasuk perbezaan gaya lalai, kaedah pengiraan model kotak, flexbox dan tahap sokongan susun atur grid, dan tingkah laku yang tidak konsisten bagi atribut CSS tertentu. 1. Pemprosesan gaya lalai tidak konsisten. Penyelesaiannya adalah menggunakan cssreset atau normalisasi.css untuk menyatukan gaya awal; 2. Kaedah pengiraan model kotak versi lama IE adalah berbeza. Adalah disyorkan untuk menggunakan kotak-kotak: kotak sempadan dengan cara yang bersatu; 3. Flexbox dan grid melakukan secara berbeza dalam kes kelebihan atau dalam versi lama. Lebih banyak ujian dan gunakan autoprefixer; 4. Beberapa tingkah laku atribut CSS tidak konsisten. CANIUSE mesti dirujuk dan diturunkan.

Accent-color adalah atribut yang digunakan dalam CSS untuk menyesuaikan warna-warna sorot elemen bentuk seperti kotak pilihan, butang radio dan slider; 1. Ia secara langsung mengubah warna lalai keadaan yang dipilih dari kawalan borang, seperti menukar tanda semak biru kotak semak menjadi merah; 2. Unsur yang disokong termasuk kotak input Type = "Checkbox", Type = "Radio" dan Type = "Range"; 3. Menggunakan warna aksen boleh mengelakkan gaya tersuai kompleks dan struktur dom tambahan, dan mengekalkan kebolehcapaian asli; 4. Ia umumnya disokong oleh pelayar moden, dan pelayar lama perlu diturunkan; 5. Set Accent-Col

Gaya lalai penyemak imbas memastikan kebolehbacaan asas dengan menggunakan margin, mengisi, fon, dan gaya elemen secara automatik, tetapi boleh menyebabkan susun atur silang penyemak imbas yang tidak konsisten. 1. Margin lalai dan mengisi perubahan aliran susun atur, seperti jarak tajuk, perenggan dan senarai; 2. Tetapan fon lalai mempengaruhi kebolehbacaan, seperti saiz fon 16px dan font masa times; 3. Unsur -unsur bentuk sangat berbeza dalam pelayar yang berbeza, jadi penampilan perlu ditetapkan semula; 4. Beberapa tag seperti Strong dan EM mempunyai gaya penekanan lalai dan perlu ditulis secara jelas. Penyelesaian termasuk menggunakan normalize.css, gaya tetapan semula, atau margin yang jelas dan mengisi global, sambil menyesuaikan fon dan bentuk bentuk untuk konsistensi.

Untuk mencantikkan permulaan perenggan untuk meningkatkan daya tarikan visual, amalan biasa adalah menggunakan unsur-unsur pseudo CSS atau gaya secara manual dokumen. Dalam pembangunan web, p :: letter pertama boleh digunakan untuk menetapkan gaya huruf pertama, seperti membesarkan, membanting, dan membuang warna, tetapi harus diperhatikan bahawa ia hanya sesuai untuk unsur-unsur peringkat blok; Jika anda ingin menyerlahkan keseluruhan baris pertama, gunakan P :: Line pertama untuk menambah gaya; Dalam perisian dokumen seperti Word, anda boleh menyesuaikan format huruf pertama secara manual atau membuat templat gaya, dan InDesign mempunyai fungsi terbina dalam "sinking pertama" yang sesuai untuk penerbitan dan reka bentuk; Apabila memohon, anda perlu memberi perhatian kepada butiran, seperti mengelakkan gaya kompleks yang mempengaruhi membaca dan memastikan keserasian dan konsistensi format.

Thevertikal-alignpropertyincsunsignsinlineortable-cellelsementsvertically.1.itadjustSelementsLikeimagesorforminputswithIntextlinesingvaluesebaseline, Middle, Super, andSub.2.INTablecells, itControlscontentalignmentwith, Orbottomeses, STERSTOMENTIGES

Reset dan kaunter kaunter CSS digunakan untuk jumlah elemen HTML secara automatik. 1. Gunakan reset kaunter untuk memulakan atau menetapkan semula kaunter, sebagai contoh, seksyen {restra-reset: sub-seksyen;} untuk membuat kaunter bernama sub-seksyen; 2. Meningkatkan kaunter melalui kaunter-ketegangan, seperti H3 {Counter-Increment: Sub-section;} untuk meningkatkan setiap nombor tajuk H3; 3. Gunakan atribut kandungan untuk menggabungkan unsur-unsur pseudo untuk memaparkan kaunter, seperti h3 :: sebelum {kandungan:

UseAutomatedToolsLikePurgecssoruncsStoScanandRemoveUnusedCss; 2.integratePurgingIntoyourBuildProcessviawebpack, Vite, OrtailWind 'Scontentconfiguration; 3.auditcssusageWithchromedevtoolscoveragetabbeforepurgingtoavoidremovingneededstyles; 4.safelistdynamic

Untuk menukar warna teks dalam CSS, anda perlu menggunakan atribut warna; 1. Gunakan atribut warna untuk menetapkan warna latar depan teks, nama warna yang menyokong (seperti merah), kod heksadesimal (seperti #FF0000), nilai RGB (seperti RGB (255,0,0)), nilai HSL (0,100% RGBA (255,0,0,0.5)); 2. Anda boleh memohon warna ke mana -mana elemen yang mengandungi teks, seperti tajuk H1 hingga H6, perenggan P, pautan A (perhatikan tetapan warna dari keadaan yang berlainan: pautan, a: dilawati, A: hover, a: aktif), butang, div, span, dan sebagainya; 3. Kebanyakan
