@JDIsaaks - selanjutnya, memungkinkan pengubahan ukuran dalam situasi tertentu dapat merusak tata letak dan printabilit (aspek penting dari proyek mission-critical saat ini).
random_user_name
10
Terkadang Anda benar-benar menginginkan textarea yang tidak dapat diubah ukurannya. Misalnya, dalam hal ini, ketika Anda (secara kondisional) mengubah textarea menjadi sesuatu yang hanya terlihat seperti label. Terlihat sangat aneh untuk memiliki label dengan cara grabber mengambang acak ke samping.
neminem
2
Demi semua yang baik, tolong jangan lakukan ini pada textarea yang sebenarnya atau Anda akan mengasingkan pengguna kekuatan Anda. Memutus fungsionalitas peramban inti harus dianggap sebagai opsi nuklir.
Superluminary
Jawaban:
3532
Aturan CSS berikut ini menonaktifkan perilaku mengubah ukuran untuk textareaelemen:
textarea {resize: none;}
Untuk menonaktifkannya untuk beberapa (tetapi tidak semua) textarea, ada beberapa opsi .
Untuk menonaktifkan spesifik textareadengan nameatribut diatur ke foo(yaitu, <textarea name="foo"></textarea>):
textarea[name=foo]{resize: none;}
Atau, menggunakan idatribut (yaitu, <textarea id="foo"></textarea>):
#foo {resize: none;}
The halaman W3C daftar nilai yang mungkin untuk mengubah ukuran batasan: none, baik, horisontal, vertikal, dan mewarisi:
textarea {resize: vertical;/* user can resize vertically, but width is fixed */}
Tinjau halaman kompatibilitas yang layak untuk melihat browser apa yang saat ini mendukung fitur ini. Seperti yang dikomentari Jon Hulka, dimensi dapat lebih lanjut ditahan di CSS menggunakan max-width, max-height, min-width, dan min-height.
Sangat penting untuk diketahui:
Properti ini tidak melakukan apa-apa kecuali properti melimpah adalah sesuatu selain yang terlihat, yang merupakan default untuk sebagian besar elemen Jadi secara umum untuk menggunakan ini, Anda harus mengatur sesuatu seperti overflow: gulir;
Apakah ada solusi untuk Firefox, Opera dan / atau IE?
Šime Vidas
6
@ Šime IE dan FF3 (dan sebelumnya) tidak menambahkan ukuran dukungan, sehingga solusi untuk mereka tidak diperlukan. Untuk FF4, solusi ini harusnya berfungsi.
Donat
24
sesuai davidwalsh.name/textarea-resize - gunakan ukuran: vertikal atau ukuran: horizontal untuk membatasi ukuran ke satu dimensi. Atau gunakan salah satu dari max-width, max-height, min-width dan min-height.
Jon Hulka
3
Apakah saya satu-satunya yang merasa aneh untuk mengatur ini menggunakan css dan bukan atribut? Mengapa saya tidak dapat kemudian mengatur properti dinonaktifkan atau dicentang atau lainnya menggunakan CSS ...
Buksy
6
@ Buksy Karena "dinonaktifkan" adalah keadaan, bukan properti visual. Dengan demikian, logis bahwa itu tidak harus diputuskan oleh bahasa penataan .
CSS 3 memiliki properti baru untuk elemen UI yang akan memungkinkan Anda melakukan ini. Properti adalah properti ukuran . Jadi, Anda akan menambahkan berikut ini ke stylesheet Anda untuk menonaktifkan pengubahan ukuran semua elemen textarea:
textarea { resize: none;}
Ini adalah properti CSS 3; gunakan grafik kompatibilitas untuk melihat kompatibilitas browser.
Secara pribadi, saya akan merasa sangat menjengkelkan telah mengubah ukuran dinonaktifkan pada elemen textarea. Ini adalah salah satu situasi di mana perancang berusaha "menghancurkan" klien pengguna. Jika desain Anda tidak dapat mengakomodasi area teks yang lebih besar, Anda mungkin ingin mempertimbangkan kembali bagaimana desain Anda bekerja. Setiap pengguna dapat menambahkan textarea { resize: both !important; }ke lembar gaya pengguna mereka untuk mengesampingkan preferensi Anda.
Tapi itu akan menjadi pengguna yang sengaja merusak tata letak mereka, daripada pengguna yang hanya perlu mengubah ukurannya texareadan akhirnya membuat sesuatu tidak berfungsi
The resize menspesifikasikan properti atau tidaknya suatu unsur adalah resizable oleh pengguna.
Catatan: Properti pengubahan ukuran berlaku untuk elemen yang nilai limpahannya dikomputasi adalah sesuatu selain "terlihat".
Ubah ukuran juga tidak didukung di Internet Explorer saat ini.
Berikut adalah berbagai properti untuk mengubah ukuran:
Tanpa Ubah Ukuran:
textarea {
resize: none;}
Ubah ukuran kedua cara (vertikal & horizontal):
textarea {
resize: both;}
Ubah ukuran secara vertikal:
textarea {
resize: vertical;}
Ubah ukuran secara horizontal:
textarea {
resize: horizontal;}
Juga jika Anda memiliki widthdan heightdalam CSS atau HTML Anda, itu akan mencegah teks Anda diubah ukurannya, dengan dukungan browser yang lebih luas.
Untuk Internet Explorer dan iOS Anda tidak dapat mematikan pengubahan ukuran, tetapi Anda dapat membatasi textareadimensi dengan mengatur widthdan height.
/* One can also turn on/off specific axis. Defaults to both on. */
textarea { resize:vertical;}/* none|horizontal|vertical|both */
<textareaclass="resizeable"rows="5"cols="20"name="resizeable"title="This is Resizable.">
This is Resizable. Lorem ipsum, or lipsum as it is sometimes known, is dummy text used in laying out print, graphic or web designs. The passage is attributed to an unknown typesetter in the 15th century who is thought to have scrambled parts of Cicero's De Finibus Bonorum et Malorum for use in a type specimen book.
</textarea><textareaclass="noResizeable"rows="5"title="This will not Resizable. "cols="20"name="resizeable">
This will not Resizable. Lorem ipsum, or lipsum as it is sometimes known, is dummy text used in laying out print, graphic or web designs. The passage is attributed to an unknown typesetter in the 15th century who is thought to have scrambled parts of Cicero's De Finibus Bonorum et Malorum for use in a type specimen book.
</textarea><textareaclass="resizeable_V"title="This is Vertically Resizable."rows="5"cols="20"name="resizeable">
This is Vertically Resizable. Lorem ipsum, or lipsum as it is sometimes known, is dummy text used in laying out print, graphic or web designs. The passage is attributed to an unknown typesetter in the 15th century who is thought to have scrambled parts of Cicero's De Finibus Bonorum et Malorum for use in a type specimen book.
</textarea><textareaclass="resizeable_H"title="This is Horizontally Resizable."rows="5"cols="20"name="resizeable">
This is Horizontally Resizable. Lorem ipsum, or lipsum as it is sometimes known, is dummy text used in laying out print, graphic or web designs. The passage is attributed to an unknown typesetter in the 15th century who is thought to have scrambled parts of Cicero's De Finibus Bonorum et Malorum for use in a type specimen book.
</textarea>
Jangan menyalahgunakan !importantatribut. Tidak ada artinya untuk memperbaiki lebar & tinggi jika atribut CSS resize: nonedapat menghapus fitur mengubah ukuran
Raptor
1
Bukankah itu !importantjahat?
Peter Mortensen
Di Chrome saat ini, ini menghentikan pengubahan ukuran horizontal, tetapi saya masih dapat mengubah ukuran teks secara vertikal.
Jawaban:
Aturan CSS berikut ini menonaktifkan perilaku mengubah ukuran untuk
textarea
elemen:Untuk menonaktifkannya untuk beberapa (tetapi tidak semua)
textarea
, ada beberapa opsi .Untuk menonaktifkan spesifik
textarea
denganname
atribut diatur kefoo
(yaitu,<textarea name="foo"></textarea>
):Atau, menggunakan
id
atribut (yaitu,<textarea id="foo"></textarea>
):The halaman W3C daftar nilai yang mungkin untuk mengubah ukuran batasan: none, baik, horisontal, vertikal, dan mewarisi:
Tinjau halaman kompatibilitas yang layak untuk melihat browser apa yang saat ini mendukung fitur ini. Seperti yang dikomentari Jon Hulka, dimensi dapat lebih lanjut ditahan di CSS menggunakan max-width, max-height, min-width, dan min-height.
sumber
Dalam CSS ...
sumber
Saya menemukan dua hal:
Pertama
Ini adalah CSS 3, yang belum dirilis , kompatibel dengan Firefox 4 (dan lebih baru), Chrome, dan Safari .
Fitur format lain adalah untuk
overflow: auto
menyingkirkan scrollbar kanan, dengan mempertimbangkan atribut dir .Kode dan browser yang berbeda
HTML dasar
Beberapa browser
sumber
CSS 3 memiliki properti baru untuk elemen UI yang akan memungkinkan Anda melakukan ini. Properti adalah properti ukuran . Jadi, Anda akan menambahkan berikut ini ke stylesheet Anda untuk menonaktifkan pengubahan ukuran semua elemen textarea:
Ini adalah properti CSS 3; gunakan grafik kompatibilitas untuk melihat kompatibilitas browser.
Secara pribadi, saya akan merasa sangat menjengkelkan telah mengubah ukuran dinonaktifkan pada elemen textarea. Ini adalah salah satu situasi di mana perancang berusaha "menghancurkan" klien pengguna. Jika desain Anda tidak dapat mengakomodasi area teks yang lebih besar, Anda mungkin ingin mempertimbangkan kembali bagaimana desain Anda bekerja. Setiap pengguna dapat menambahkan
textarea { resize: both !important; }
ke lembar gaya pengguna mereka untuk mengesampingkan preferensi Anda.sumber
texarea
dan akhirnya membuat sesuatu tidak berfungsisumber
Jika Anda membutuhkan dukungan mendalam, Anda dapat menggunakan teknik sekolah lama:
sumber
resize:none
dengan solusi ini untuk mencegah gagang muncul di sudut bawah yang tidak berhasil.Ini dapat dilakukan dalam HTML dengan mudah:
Ini bekerja untuk saya. Nilai default
true
untukdraggable
atribut.sumber
Untuk menonaktifkan properti ukuran, gunakan properti CSS berikut:
Anda dapat menerapkan ini sebagai properti gaya sebaris seperti:
atau di antara
<style>...</style>
tag elemen seperti:sumber
Anda cukup menggunakan:
resize: none;
di CSS Anda.Ubah ukuran juga tidak didukung di Internet Explorer saat ini.
Berikut adalah berbagai properti untuk mengubah ukuran:
Tanpa Ubah Ukuran:
Ubah ukuran kedua cara (vertikal & horizontal):
Ubah ukuran secara vertikal:
Ubah ukuran secara horizontal:
Juga jika Anda memiliki
width
danheight
dalam CSS atau HTML Anda, itu akan mencegah teks Anda diubah ukurannya, dengan dukungan browser yang lebih luas.sumber
CSS 3 dapat mengatasi masalah ini. Sayangnya itu hanya didukung pada 60% dari browser yang digunakan saat ini.
Untuk Internet Explorer dan iOS Anda tidak dapat mematikan pengubahan ukuran, tetapi Anda dapat membatasi
textarea
dimensi dengan mengaturwidth
danheight
.Lihat Demo
sumber
Anda cukup menonaktifkan properti textarea seperti ini:
Untuk menonaktifkan pengubahan ukuran vertikal atau horizontal , gunakan
atau
sumber
Saya telah membuat demo kecil untuk menunjukkan bagaimana mengubah ukuran properti bekerja. Saya harap ini akan membantu Anda dan orang lain juga.
sumber
Dengan
@style
, Anda dapat memberikan ukuran khusus dan menonaktifkan fitur mengubah ukuran(resize: none;)
.sumber
Anda dapat mencoba dengan jQuery juga
sumber
Untuk menonaktifkan pengubahan ukuran untuk semua
textarea
s:Untuk menonaktifkan pengubahan ukuran untuk spesifik
textarea
, tambahkan atributname
,, atauid
dan atur untuk sesuatu. Dalam hal ini, namanyanoresize
HTML
CSS
sumber
Menambahkan
!important
membuatnya berfungsi:outline
hanya untuk menghindari garis biru pada browser tertentu.sumber
!important
atribut. Tidak ada artinya untuk memperbaiki lebar & tinggi jika atribut CSSresize: none
dapat menghapus fitur mengubah ukuran!important
jahat?