Awal tahun ini, saya menulis artikel mengenai kawasan teks dan kotak input secara automatik. Idea teras adalah menjadikan kawasan teks lebih seperti a<div> , supaya ketinggiannya diselaraskan secara automatik mengikut kandungan untuk menampung nilai semasa. Yang menghairankan, tidak ada penyelesaian asli yang mudah untuk mencapai matlamat ini, bukan? Melihat kembali artikel itu, idea -idea yang saya buat tidak begitu ideal. Tetapi skim Stephen Shaw yang disebutkan pada akhir artikel ini sangat baik, jadi saya ingin menyerlahkan dan menjelaskan bagaimana ia berfungsi kerana ia seolah -olah menjadi jawapan terakhir kepada masalah pengalaman pengguna sedemikian sehingga kita mendapat penyelesaian asli yang lebih baik. Sekiranya anda ingin melihat hanya contoh yang boleh dijalankan, lihat demo:<h3 id="Caranya-adalah-dengan-tepat-menyalin-kandungan-kawasan-teks-ke-dalam-elemen-em-yang-secara-automatik-dapat-em-mengembangkan-ketinggian-dan-memadankan-saiznya"> Caranya adalah dengan tepat menyalin kandungan kawasan teks ke dalam elemen <em>yang secara automatik dapat</em> mengembangkan ketinggian dan memadankan saiznya.</h3>
<p> Anda mempunyai <code><textarea></textarea>
,它无法自动扩展高度。
相反,您需要在另一个元素中精确复制<textarea></textarea>
的外观、内容和位置。您可以隐藏副本的视觉效果(也可以保留实际功能的<textarea></textarea>
可见)。
现在,这三个元素相互关联。最高的子元素会将父元素的高度推高,其他子元素也会随之调整。这意味着<textarea></textarea>
的最小高度将成为“基准”高度,但如果复制的文本元素变得更高,则所有元素都会随之变高。
如此巧妙!我非常喜欢它。
您需要确保复制的元素完全相同
相同的字体、相同的填充、相同的边距、相同的边框……一切都要相同。它是一个完全相同的副本,只是通过visibility: hidden;
隐藏了视觉效果。如果两者不完全相同,则所有元素的高度不会完全同步。
我们还需要在复制的文本上使用white-space: pre-wrap;
,因为这是<textarea></textarea>
的行为方式。
这是最奇怪的部分
在我的演示中,我使用::after
来创建复制的文本。我不确定这是否是最佳方法。对我来说,这感觉很简洁,但我不知道使用<div aria-hidden="true">对于屏幕阅读器是否更安全?或者<code>visibility: hidden;
就足够了吗?无论如何,这还不是最奇怪的部分。最奇怪的部分是:
<code>content: attr(data-replicated-value) " ";</code>
因为我使用的是伪元素,所以这一行将数据属性从元素中获取,并将内容呈现到页面上并添加了一个额外的空格(这就是最奇怪的部分)。如果您不这样做,最终结果会显得“跳跃”。我无法完全理解其中的原因,但它似乎能更好地处理<textarea></textarea>
和文本元素之间的换行符行为。
如果您不想使用伪元素,也可以,但请注意“跳跃”行为。
特别感谢WillEarp和MartinTillmann,他们都在同一天随机发邮件提醒我Shaw的技巧有多么巧妙。这是Martin使用Alpine.js和Tailwind制作的示例,最终也类似于单行代码(但请注意它存在“跳跃”问题)。
我相信大家可以想象如何使用Vue和React等框架来实现这一点,并轻松地在<textarea></textarea>
和其他元素之间维护状态。我不会在这里包含示例,部分原因是我比较懒,但主要是因为我认为您应该理解其工作原理。这将使您更聪明,并更好地理解您的网站。
Atas ialah kandungan terperinci Trik paling bersih untuk tekstasi autogrowing. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

CSS Grid adalah alat yang berkuasa untuk mewujudkan susun atur web yang rumit dan responsif. Ia memudahkan reka bentuk, meningkatkan kebolehcapaian, dan menawarkan lebih banyak kawalan daripada kaedah yang lebih lama.

Artikel membincangkan CSS Flexbox, kaedah susun atur untuk penjajaran yang cekap dan pengedaran ruang dalam reka bentuk responsif. Ia menerangkan penggunaan Flexbox, membandingkannya dengan grid CSS, dan butiran sokongan penyemak imbas.

Artikel ini membincangkan teknik untuk membuat laman web responsif menggunakan CSS, termasuk tag Meta Viewport, grid fleksibel, media cecair, pertanyaan media, dan unit relatif. Ia juga meliputi menggunakan grid CSS dan Flexbox bersama -sama dan mengesyorkan rangka kerja CSS

Artikel ini membincangkan harta saiz kotak CSS, yang mengawal bagaimana dimensi elemen dikira. Ia menerangkan nilai seperti kotak kandungan, kotak sempadan, dan kotak padding, dan kesannya terhadap reka bentuk susun atur dan penjajaran bentuk.

Artikel membincangkan membuat animasi menggunakan CSS, sifat utama, dan menggabungkan dengan JavaScript. Isu utama adalah keserasian penyemak imbas.

Artikel membincangkan menggunakan CSS untuk transformasi 3D, sifat utama, keserasian penyemak imbas, dan pertimbangan prestasi untuk projek web. (Kira -kira aksara: 159)

Artikel ini membincangkan menggunakan kecerunan CSS (linear, radial, mengulangi) untuk meningkatkan visual laman web, menambah kedalaman, fokus, dan estetika moden.

Artikel membincangkan unsur-unsur pseudo dalam CSS, penggunaannya dalam meningkatkan gaya HTML, dan perbezaan dari kelas pseudo. Menyediakan contoh praktikal.


Alat AI Hot

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

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

Undress AI Tool
Gambar buka pakaian secara percuma

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

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

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.

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),
