Dipublikasikan: 14 Jan 2025
Mulai Chrome 133, text-box memungkinkan developer dan desainer menyesuaikan ruang di atas dan di bawah teks.
Longhand:
text-box-trim: trim-start | trim-end | trim-both | none;
text-box-edge: cap | ex | text | leading + alphabetic | text;
Singkatan:
text-box: trim-both cap alphabetic;
Properti ini memungkinkan Anda mengontrol ruang di atas dan di bawah teks, misalnya
<h1>, <button>, dan <p>. Setiap font menghasilkan jumlah ruang arah blok yang berbeda, yang berkontribusi pada ukuran elemen. Kontribusi ruang yang kacau ini tidak mudah diukur, dan tidak mungkin dikendalikan, hingga saat ini.
Font sudah tahu, sekarang CSS juga tahu.
Ruang di atas dan di bawah font ada karena cara web menata teks, yang disebut "setengah jarak baris". Hal ini dibahas secara ahli dalam postingan oleh Matthias Ott yang berjudul The Thing With Leading In CSS. Pada dasarnya, saat tata huruf dilakukan secara manual, potongan timbal logam digunakan untuk memisahkan baris teks. Web, yang terinspirasi oleh iklan utama, membagi iklan utama menjadi dua bagian dan mendistribusikan satu bagian di atas dan satu bagian di bawah konten.
Histori ini bermakna karena text-box memberi kita nama untuk setiap bagian:
atas dan bawah. Selain itu, Anda dapat memangkasnya.
Ada juga karya sebelumnya untuk text-box, Anda mungkin ingat postingan menarik dari Ethan Wang yang berjudul Leading-Trim: The Future Of Digital Typesetting, yang memperkenalkan leading-trim (nama text-box sebelumnya).

Titik entri Anda ke pemangkasan teks mungkin berasal dari Figma dan kontrol "pemangkasan vertikal" untuk desainer. Postingan X ini menunjukkan lokasi opsi pemangkasan vertikal ini dan cara opsi ini berguna untuk tombol.
Terlepas dari cara Anda sampai di sini, kontrol tipografi yang terdengar kecil ini dapat membuat perbedaan besar.
Fitur dan sintaksis
Menurut pendapat saya, berikut adalah dua kalimat singkat yang paling umum yang akan Anda perlukan saat bekerja dengan text-box:
h1 {
/* trim both sides to the capital letters */
text-box: trim-both cap alphabetic;
/* trim both sides to the lowercase letter x */
text-box: trim-both ex alphabetic;
}
Memangkas keduanya menjadi cap alphabetic akan menjadi penggunaan paling umum dari fitur ini.
Demo berikut menggunakannya berkali-kali. Namun, contoh sebelumnya juga
menampilkan ex alphabetic karena berguna untuk keseimbangan optik dengan cara uniknya
sendiri.
Taman bermain Explorer
Jelajahi sintaksis di playground kami, dan lihat hasilnya menggunakan menu drop-down. Anda dapat mengubah font, mengubah nilai pangkas atas dan bawah, serta mengikuti visual dan label berkode warna.
Hal yang dapat dicoba:
- Memeriksa secara visual cara kerja
text-box-trimdi seluruh varian teks baris tunggal dan multi-baris. - Arahkan kursor ke varian, lihat nilai pangkas yang digunakan untuk mencapai efek tersebut.
- Mengubah font.
- Memangkas hanya satu sisi kotak teks.
- Tinjau sintaksis saat Anda bermain.
Apa yang dapat saya buat dan masalah apa yang dapat diselesaikannya?
Ada beberapa solusi penataan dan perataan yang jauh lebih sederhana yang muncul dari kemampuan pemangkasan ini. Anda bahkan dapat lebih dekat dengan leading yang tepat, di mana sesuatu seperti gap dapat digunakan di antara konten.
Penengahan yang lebih mudah
Untuk komponen yang lebih kecil, lebih inline, dan intrinsik konten, padding: 10px adalah gaya yang wajar untuk ditentukan bagi elemen agar memiliki jarak yang sama di semua sisi. Namun, hasilnya dapat membingungkan orang, karena sering kali memiliki ruang ekstra di bagian atas dan bawah.
Untuk mengatasi hal ini, developer sering kali secara eksplisit menempatkan padding yang lebih sedikit di bagian atas dan bawah (blok) untuk mengimbangi efek setengah jarak antarbaris.
button {
padding-block: 5px;
padding-inline: 10px;
}
Pada tahap ini, kita harus mencoba kombinasi nilai hingga semuanya berpusat secara visual. Tampilan ini mungkin terlihat bagus di satu layar dan sistem operasi, tetapi tidak di layar dan sistem operasi lainnya.
text-box memungkinkan kita memangkas setengah spasi di awal dari teks, sehingga nilai padding yang sama seperti 10px menjadi berguna:
button {
text-box: trim-both cap alphabetic;
padding: 10px;
}
Berikut beberapa elemen <button> yang menunjukkan cara memangkas ruang dengan
text-box membuat padding: 10px terlihat sama di semua sisi dalam elemen
interaktif yang praktis. Perhatikan bagaimana font alternatif dapat menghasilkan ruang setengah leading yang sangat berbeda.
Berikut adalah elemen <span>, yang sering digunakan untuk menampilkan kategori atau badge. Contoh lain saat padding sisi yang sama akan menjadi solusi terbaik, tetapi hingga
text-box kami harus mencari solusi alternatif.
Penyesuaian yang lebih mudah
Ruang setengah leading yang tidak dapat dikontrol di atas (over) dan di bawah (under)
kotak teks juga menyulitkan perataan. Contoh berikut menunjukkan kapan setengah
jarak antar-baris dapat menyulitkan perataan dan cara memangkas sisi blok kotak teks
dapat menghasilkan perataan yang lebih baik.
Di sini, gambar ditempatkan di samping teks. Gambar akan bertambah tinggi sesuai
kebutuhan teks. Tanpa text-box, gambar akan selalu sedikit lebih tinggi.
Dengan text-box, gambar dapat selaras sempurna dengan konten teks.
Perhatikan bahwa ruang kosong berada di atas baris teks berformat pertama dan di bawah baris teks berformat terakhir dalam skenario dengan pemisahan baris.
Dalam contoh berikut, perhatikan bagaimana fitur
beradaptasi secara logis terhadap perubahan
writing-mode. Coba
ubah teks, perhatikan bagaimana tata letak tetap selaras.
Lanjutkan belajar
Ingin mengetahui info selengkapnya? Daftar link berikut menawarkan berbagai jumlah informasi tambahan dan kasus penggunaan.
- Kumpulan Codepen dari semua demo.
- Penelitian dan demo yang bagus oleh Jan Nicklas.
- Two CSS Properties for Trimming Text Box Whitespace di CSS Tricks.
- Tata Letak Inline CSS di tepi teks.
- Jangan disamakan dengan
size-adjustatauascent-override - Dasar CSS: Yang Baik, Yang Buruk, dan Yang Jelek.
- Diterapkan ke banyak elemen HTML: CodePen.
- Postingan blog Safari.
- Alasan saya sebagai desainer antusias dengan pemangkasan kotak teks.