asal
Apa yang lebih menakjubkan ialah dia menggunakan dua elemen sasaran dengan nama sauh yang sama, setiap elemen yang dilampirkan pada titik sauh yang sepadan, seperti sihir. Jika ini tidak kelihatan menarik, maka kita harus mengkaji secara ringkas bagaimana kedudukan kedudukan utama berfungsi.
CSS Anchor Positioning and Anchor-Scope Atribute
Posisi Anchor membawa dua konsep baru ke CSS:
Point Anchor elemen dan sasaran elemen. Anchor adalah elemen rujukan yang digunakan untuk mencari unsur -unsur lain. Elemen sasaran adalah elemen yang benar -benar diposisikan berbanding dengan satu atau lebih titik utama.
sauh dan sasaran boleh menjadi hampir semua elemen, anda boleh memikirkannya sebagai dua div yang diletakkan bersebelahan:
<code><div>anchor</div> <div>target</div></code>
: anchor-name
<code>.anchor { anchor-name: --my-anchor; }</code>
pada elemen yang benar -benar diposisikan untuk melampirkannya ke titik utama dengan nama yang sama. Walau bagaimanapun, untuk menggerakkan sasaran di sekitar titik utama, kita memerlukan atribut position-anchor
. position-area
<code>.target { position: absolute; position-anchor: --my-anchor; position-area: top right; }</code>
<code></code>
Elemen sasaran tidak dilampirkan pada titik utama yang terdekat, tetapi semuanya ditumpuk pada titik utama yang didaftarkan terakhir di DOM.
Atribut anchor-scope
diperkenalkan di Chrome 131 untuk menyelesaikan masalah ini. Ia mengehadkan skop titik utama kepada subtrees supaya setiap sasaran dilampirkan dengan betul. Walau bagaimanapun, saya tidak mahu memberi perhatian kepada harta ini, kerana apa yang menarik perhatian saya pada mulanya ialah Temani tidak menggunakannya . Atas sebab tertentu, semua sasaran dilampirkan dengan betul, sekali lagi seperti sihir.
biasanya dilampirkan pada sauh terakhir di DOM, bukannya sauh terdekat, tetapi dalam contoh pertama kami, kami melihat dua sauh dengan sasaran tambahan yang sama. Semua ini tidak menggunakan atribut anchor-name
. Apa yang berlaku? anchor-scope
mengandungi blok .
Ia harus diperhatikan tentang kedudukan sauh bahawa ia bergantung kepada sebahagian besarnya bagaimana unsur -unsur mengandungi blok dibina. Ini bukan ciri yang wujud dari kedudukan sauh itu sendiri, tetapi ciri -ciri kedudukan mutlak. Unsur yang benar-benar diposisikan diposisikan relatif kepada blok pembendungannya, sementara atribut margin seperti, top: 0px
atau left: 30px
hanya memindahkan unsur-unsur di sekitar sempadan blok yang mengandungi, mewujudkan apa yang dipanggil inset: 1rem
blok kemasukan yang diubahsuai .
position-area
Biasanya, blok yang mengandungi elemen kedudukan mutlak adalah keseluruhan viewport, tetapi boleh diubah oleh mana -mana atribut kedudukan yang bukan
). Temani mengambil kesempatan daripada fakta ini untuk membuat blok baru termasuk untuk setiap gelangsar supaya mereka hanya boleh dilampirkan pada titik utama mereka yang sepadan. Jika anda melihat kod tersebut, anda boleh menemuinya pada permulaan: static
relative
<code><div>anchor</div> <div>target</div></code>
Soalan lain
anchor-scope
Saya dapati ini apabila saya bereksperimen dengan menatal animasi pemacu dan kedudukan utama pada masa yang sama dan cuba melampirkan nota kaki gelembung teks ke sisi jawatan, seperti:
Secara logik, setiap nota kaki adalah matlamat, tetapi pilihan titik utama adalah agak rumit. Pada mulanya saya fikir setiap perenggan boleh digunakan sebagai sauh, tetapi itu bermakna akan ada beberapa sauh dengan
yang sama. Hasil: Semua sasaran akan disusun pada sauh terakhir:
anchor-name
Ini dapat diselesaikan dengan kaedah sebelumnya untuk membuat blok yang baru untuk setiap komen. Walau bagaimanapun, kita boleh mengambil pendekatan lain, yang saya panggil pendekatan pengurangan. Masalahnya timbul apabila terdapat beberapa sauh dengan
Dalam kes ini kita mahu meletakkan setiap sasaran hanya di kedua -dua belah jawatan, jadi kita boleh menggunakan seluruh badan jawatan sebagai sauh, dan kerana setiap sasaran secara semulajadi diselaraskan pada paksi menegak, semua yang tersisa adalah untuk menggerakkannya di sepanjang paksi mendatar:
Anda boleh menyemak bagaimana jawatan asal dilakukan!
anchor-scope
Mungkin harta CSS baru -baru ini dikeluarkan kepada penyemak imbas (setakat ini, hanya dalam Chrome 131), jadi kami tidak dapat mengharapkan sokongannya melebihi jangkaan. Walaupun saya suka menggunakannya pada bila -bila masa, di mana sahaja, ia akan kekal terhad kepada demo pendek untuk seketika. Ini bukan alasan untuk mengehadkan penggunaan sifat kedudukan utama yang lain, yang disokong dalam Chrome 125 dan kemudiannya (dan diharapkan pada penyemak imbas lain dalam masa terdekat), jadi saya harap isu -isu kecil ini dapat membantu anda terus menggunakan kedudukan utama tanpa sebarang kebimbangan.
Atas ialah kandungan terperinci Namun satu lagi kedudukan sauh. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!