Biasanya textareas persegi panjang atau persegi, seperti ini:
Tapi saya ingin textarea berbentuk kustom, seperti ini, misalnya:
Bagaimana ini mungkin?
javascript
jquery
html
css
Paranoid
sumber
sumber
<div>
teks untuk menyimpan bukan solusi yang baik. Ini dapat membantu mendesain, dan bahkan mungkin dapat diterima untuk teks hanya-baca (yang benar-benar mengalahkan tujuancontenteditable
), tetapi itu tidak baik untuk input teks dari pengguna. Sebuah div (bahkan yang dapat diedit) bukan elemen input standar seperti elemen form normal, oleh karena itu, itu tidak akan diperlakukan seperti itu, sehingga isinya tidak akan disimpan oleh browser jika terjadi crash. Menggunakan div menyebabkan hilangnya data . Lihat contoh ini .Jawaban:
pengantar
Pertama, ada banyak solusi, yang diusulkan dalam posting lain. Saya pikir yang ini saat ini (tahun 2013) adalah yang dapat kompatibel dengan jumlah browser terbesar, karena tidak memerlukan properti CSS3. Namun, metode ini tidak akan berfungsi pada browser yang tidak mendukung
contentdeditable
, hati-hati.Solusi dengan div
contenteditable
Seperti yang diusulkan oleh @Getz , Anda dapat menggunakan div dengan
contenteditable
dan kemudian membentuknya dengan beberapa div di atasnya. Berikut adalah contohnya, dengan dua blok yang melayang di kiri atas dan kanan atas div utama:Seperti yang Anda lihat, Anda harus bermain sedikit dengan perbatasan jika Anda ingin hasil yang sama seperti yang Anda minta di posting Anda. Div utama memiliki perbatasan biru di setiap sisi. Selanjutnya, blok merah harus ditempel untuk menyembunyikan batas atas div utama, dan Anda perlu menerapkan perbatasan hanya pada sisi tertentu ( bawah dan kiri untuk blok kanan, bawah dan kanan untuk kiri).
Setelah itu, Anda bisa mendapatkan konten melalui Javascript, ketika tombol " Kirim " dipicu misalnya. Dan saya pikir Anda juga dapat menangani sisa CSS (
font-size
,color
, dll) :)Contoh kode lengkap
sumber
You can't apply a border color for the editable section keeping the two corner div's background-color:white
. Bukan? Masih ini akan menang. +1bad things
hanya tentang itu . Itu akan menjadi efek samping dari situasi yang baru saja saya tanyakan dan apa yang telah Anda lakukan dalam biola. Tapi itu jelas merupakan solusi yang sangat bagus. Terima kasih untuk klarifikasi.Dalam waktu dekat kita dapat menggunakan apa yang disebut
css-shapes
untuk mencapai ini. Sebuah div dengancontenteditable
atribut yang diset untuktrue
digabungkan dengancss-shapes
dapat membuat area teks bentuk apa pun.Saat ini Chrome Canary sudah mendukung
css-shapes
. Contoh yang mungkin dengan css-bentuk adalah:Di sini mereka menggunakan bentuk poligon untuk mendefinisikan aliran teks. Seharusnya dimungkinkan untuk membuat dua poligon agar sesuai dengan bentuk yang Anda inginkan untuk textarea Anda.
Informasi lebih lanjut tentang
css-shapes
telah ditulis di: http://sarasoueidan.com/blog/css-shapes/Polygon dibuat dengan: http://betravis.github.io/shape-tools/polygon-drawing/
Hasil
http://jsfiddle.net/A8cPj/1/
sumber
Mungkin itu mungkin dengan Content Editable ?
Ini bukan textarea, tetapi jika Anda berhasil membuat div dengan bentuk ini, itu bisa berhasil.
Saya pikir itu tidak mungkin hanya dengan textarea ...
Contoh kecil: http://jsfiddle.net/qgfP6/5/
sumber
Anda bisa bekerja dengan div yang dapat diedit, dengan dua sudut div:
sumber
Anda juga bisa melakukan ini dengan Kawasan CSS
(Platform Web)
[Saat ini didukung di WebKit Nightly, Safari 6.1+ dan iOS7 dan sudah dapat digunakan dalam chrome dan opera setelah mengaktifkan flag: enable-experimental-web-platform-features - caniuse , Web Platform ]
BIOLA
Jadi Anda bisa membuat bentuk teks itu dengan mengalirkan teks melalui 2 wilayah, dan mengeditnya dengan menambahkan konten yang dapat diedit pada konten.
Markup
(Relevan) CSS
Hasil:
Untuk info lebih lanjut tentang kawasan - inilah aricle yang bagus: wilayah CSS3: Tata letak halaman kaya dengan HTML dan CSS3
sumber
Baris panjang teks di dalam kotak akan menurunkan kursor melewati tepi tengah dan saya tidak bisa memperbaikinya
sumber
Itu tidak mungkin tuanku! Textarea umumnya kotak kotak atau persegi, tempat Anda bisa mengetik.
Namun, untuk membuat sesuatu seperti itu Anda dapat menggunakan 2 textarea dan kemudian memberi mereka lebar dan tinggi yang ditentukan. Kalau tidak, saya tidak berpikir itu akan terjadi!
Metode kedua adalah membuat elemen yang dapat diedit.
http://jsfiddle.net/afzaal_ahmad_zeeshan/at2ke/
Kode tersebut adalah:
Dengan ini, Anda dapat membuat elemen apa pun dapat diedit! Anda dapat memberikan dimensi padanya, dan itu akan berhasil! Anda akan mendapatkannya hanya sebagai textarea.
Referensi: https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_Editable
sumber
div
s bukan textarea. Karena textarea tidak dapat dimodifikasi menjadi bentuk! :) @Markasoftware Jadi Anda salah saat mengunduh jawaban ini! .. karena ini adalah jawaban yang sama dengan miliknya. Satu-satunya hal yang tidak ada di sini adalah gambar dan kode untuk membuat div yang dapat diedit dengan bentuk itu!Jika Anda menggabungkan bentuk CSS dengan
contenteditable
ini dapat dilakukan di browser webkit.Pertama, Anda harus mengaktifkan flag: enable-experimental-web-platform-features
Kemudian restart browser webkit Anda dan kemudian periksa FIDDLE ini !
Metode ini juga akan berfungsi untuk bentuk yang tidak standar.
Markup
CSS
Jadi bagaimana saya bisa mendapatkan bentuk poligon itu?
Buka situs ini dan buat bentuk kustom Anda sendiri!
Catatan tentang mengaktifkan bendera: (dari sini )
sumber
box-sizing
.)Anda dapat menggunakan alat desainer web Google untuk membuat bentuk yang rumit menggunakan
HTML5-canvas and CSS
.Terlebih lagi Anda akan mendapatkan alat lain seperti alat mengetik untuk memasukkan teks di dalam bentuk ini.
Karena file output berisi banyak kode, menyediakan contoh demo sampel yang dibuat menggunakan alat Google Web Designer
DEMO FIDDLE >>
sumber
<textarea>
(yaitu kotak teks yang dapat diedit), tetapi dengan bentuk non-persegi panjang. Tanpa bagian "yang dapat diedit", ada sedikit tantangan di sini - orang telah melakukan teks mengalir dalam HTML sejak diperkenalkannya gambar mengambang di HTML 2.0.Jika, untuk alasan apa pun, Anda benar-benar perlu mendukung browser yang tidak memilikinya
contenteditable
, Anda mungkin bisa melakukan hal yang sama dalam JavaScript, dengan menggunakan acara, meskipun ini merupakan solusi yang sangat berantakan.Kodesemu:
sumber