Inilah HTML saya:
<a href="#" class="link">small caps</a> &
<a href="#" class="link">ALL CAPS</a>
Inilah CSS saya:
.link {text-transform: capitalize;}
Outputnya adalah:
Small Caps & ALL CAPS
dan saya ingin hasilnya:
Small Caps & All Caps
Ada ide?
Jawaban:
Tidak ada cara untuk melakukan ini dengan CSS, Anda bisa menggunakan PHP atau Javascript untuk ini.
Contoh PHP:
Contoh jQuery (sekarang plugin!):
sumber
Anda hampir dapat melakukannya dengan:
Ini akan memberi Anda output:
sumber
Konversi dengan JavaScript menggunakan
.toLowerCase()
dancapitalize
akan melakukan sisanya.sumber
Pertanyaan menarik!
capitalize
mengubah setiap huruf pertama dari kata menjadi huruf besar, tetapi tidak mengubah huruf lainnya menjadi huruf kecil. Bahkan kelas:first-letter
pseudo tidak akan memotongnya (karena itu berlaku untuk huruf pertama dari setiap elemen, bukan setiap kata), dan saya tidak bisa melihat cara menggabungkan huruf kecil dan huruf besar untuk mendapatkan hasil yang diinginkan.Jadi sejauh yang saya bisa lihat, ini memang tidak mungkin dilakukan dengan CSS.
@Harmen menunjukkan solusi PHP dan jQuery yang tampan dalam jawabannya.
sumber
Saya ingin menyarankan solusi CSS murni yang lebih berguna daripada solusi huruf pertama yang disajikan tetapi juga sangat mirip.
Meskipun ini terbatas pada baris pertama, ini mungkin berguna untuk lebih banyak kasus penggunaan daripada solusi huruf pertama karena ini menggunakan kapitalisasi untuk seluruh baris dan tidak hanya kata pertama. (semua kata di baris pertama) Dalam kasus khusus OP ini bisa menyelesaikannya.
Catatan: Seperti disebutkan dalam komentar solusi huruf pertama , urutan aturan CSS penting! Perhatikan juga bahwa saya mengubah
<a>
tag untuk sebuah<div>
tag karena untuk beberapa alasan elemen pseudo::first-line
tidak bekerja dengan<a>
tag secara asli tetapi baik<div>
atau<p>
baik-baik saja. EDIT: yang<a>
elemen akan bekerja jikadisplay: inline-block;
adalah ditambahkan ke.link
kelas. Terima kasih kepada Dave Land karena mengetahui hal itu!Catatan Baru: jika teks dibungkus, maka huruf kapital akan terlepas karena sekarang berada di baris kedua (baris pertama masih ok).
sumber
( not working )
contoh dapat dibuat untuk pekerjaan dengan menambahkandisplay: inline-block;
ke.link
gaya.JavaScript:
CSS:
Apa yang Khan "akhirnya lakukan" (yang lebih bersih dan bekerja untuk saya) ada di komentar posting yang ditandai sebagai jawabannya.
sumber
captialize
hanya mempengaruhi huruf pertama dari kata tersebut. http://www.w3.org/TR/CSS21/text.html#propdef-text-transformsumber
Semoga bermanfaat untuk java dan jstl.
Di JSP
1.
2.
Dalam CSS
3.
sumber
${fn:toLowerCase(some.key)}
secara langsung, tanpa harus menggunakanfmt:message
. Terima kasih.Anda dapat melakukannya dengan huruf pertama css! misalnya saya menginginkannya untuk Menu:
Ini hanya berjalan dengan elemen blok - karena itu blok inline!
sumber
Jika data berasal dari database, seperti dalam kasus saya, Anda dapat menurunkannya sebelum mengirimnya ke daftar pilih / daftar turun bawah. Sayang Anda tidak dapat melakukannya di CSS.
sumber
Setelah meneliti banyak, saya menemukan fungsi / ekspresi jquery untuk mengubah teks dalam huruf pertama hanya dalam huruf besar, saya memodifikasi kode tersebut agar dapat dikerjakan untuk bidang input. Saat Anda akan menulis sesuatu di bidang input dan kemudian pindah ke elemen atau elemen lain yang diajukan, teks bidang itu akan berubah hanya dengan huruf kapital huruf pertama. Teks apa pun yang diketik pengguna dalam kapitalisasi huruf besar atau kecil:
Ikuti kode ini:
Langkah-1: Panggil perpustakaan jquery di kepala html:
Langkah-2: Tulis kode untuk mengubah teks bidang input:
Langkah-3: Buat bidang input HTML dengan id yang sama yang Anda gunakan dalam kode jquery seperti:
Id bidang input ini adalah: edit-submit-first-name (Menggunakan kode jquery pada langkah-2)
** Hasil: Pastikan teks akan berubah setelah Anda memindahkan fokus Anda dari bidang input di elemen lain. Karena kami menggunakan fokus acara jquery di sini. Hasilnya harus seperti ini: Jenis Pengguna: "terima kasih" itu akan berubah dengan "Terima Kasih". **
Semoga berhasil
sumber
Solusi PHP, di backend:
sumber
Saya tahu ini adalah respons yang terlambat tetapi jika Anda ingin membandingkan kinerja berbagai solusi, saya punya jsPerf yang saya buat.
Solusi Regex pasti yang tercepat.
Inilah jsPerf: https://jsperf.com/capitalize-jwaz
Ada 2 solusi regex.
Yang pertama menggunakan
/\b[a-z]/g
. Batas kata akan menggunakan kata-kata seperti non-disclosure untuk Non-Disclosure.Jika Anda hanya ingin menggunakan huruf besar yang diawali dengan spasi, gunakan regex kedua
sumber
jika Anda menggunakan jQuery; ini adalah salah satu cara untuk melakukannya:
Ini adalah versi yang lebih mudah dibaca untuk melakukan hal yang sama:
Demo
sumber
semua salah memang ada -> font-varian: huruf kecil;
text-transform: capitalize; hanya tutup huruf pertama
sumber
text-transform: capitalize;
tidak mengubah teks yang sudah semua huruf besar. Lihat pertanyaan lagi: Pengguna sudah mencobanya.