textarea sederhana saya tidak menampilkan bilah horizontal saat teks meluap. Itu membungkus teks untuk baris baru. Jadi bagaimana cara menghapus wordwrap dan menampilkan bilah horizontal saat teks meluap?
textarea sederhana saya tidak menampilkan bilah horizontal saat teks meluap. Itu membungkus teks untuk baris baru. Jadi bagaimana cara menghapus wordwrap dan menampilkan bilah horizontal saat teks meluap?
Jawaban:
Textareas tidak boleh dibungkus secara default, tetapi Anda dapat mengatur wrap = "soft" untuk menonaktifkan bungkus secara eksplisit:
<textarea name="nowrap" cols="30" rows="3" wrap="soft"></textarea>
EDIT: Atribut "wrap" tidak didukung secara resmi. Saya mendapatkannya dari halaman SELFHTML Jerman (sumber bahasa Inggris ada di sini ) yang mengatakan bahwa IE 4.0 dan Netscape 2.0 mendukungnya. Saya juga mengujinya di FF 3.0.7 di mana ia bekerja seperti seharusnya. Banyak hal telah berubah di sini, SELFHTML sekarang menjadi wiki dan tautan sumber bahasa Inggris sudah mati.
EDIT2: Jika Anda ingin memastikan setiap browser mendukungnya, Anda dapat menggunakan CSS untuk mengubah perilaku wrap:
Menggunakan Cascading Style Sheets (CSS), Anda dapat mencapai efek yang sama dengannya
white-space: nowrap; overflow: auto;
. Dengan demikian, atribut wrap dapat dianggap sudah usang.
Dari sini (sepertinya halaman yang bagus dengan informasi tentang textarea).
EDIT3: Saya tidak yakin kapan itu berubah (menurut komentar, pasti sudah sekitar 2014), tetapi wrap
sekarang atribut HTML5 resmi, lihat w3schools . Mengubah jawaban untuk mencocokkan ini.
white-space: pre;
(atau pre-line
/ pre-wrap
) memiliki pengaruh yang sama dengan wrap="off"
saya (padahal white-space: nowrap
saya tidak menghargai padding
)
wrap="off"
tidak lagi valid namun itu adalah persyaratan untuk IE dan Edge!
textarea {
white-space: pre;
overflow-wrap: normal;
overflow-x: scroll;
}
white-space: nowrap
juga berfungsi jika Anda tidak peduli dengan spasi putih, tetapi tentu saja Anda tidak ingin itu jika Anda bekerja dengan kode (atau paragraf indentasi atau konten apa pun di mana mungkin sengaja ada beberapa spasi) ... jadi saya lebih suka pre
.
overflow-wrap: normal
(Berada word-wrap
di browser yang lebih lama) diperlukan jika beberapa orang tua telah mengubah pengaturan itu; itu dapat menyebabkan pembungkus meskipun pre
diatur.
juga - bertentangan dengan jawaban yang diterima saat ini - dihapus saja jangan sering membungkus secara default. pre-wrap
tampaknya menjadi default di browser saya.
overflow-x: scroll
dengan overflow: auto
. Bilah gulir mengurangi ruang pengetikan yang tersedia di area teks. IE11 juga membuat bilah gulir vertikal secara tidak perlu dengan cara Anda, tetapi overflow: auto
memperbaikinya.
Solusi berbasis CSS berikut ini berfungsi untuk saya:
<html>
<head>
<style type='text/css'>
textarea {
white-space: nowrap;
overflow: scroll;
overflow-y: hidden;
overflow-x: scroll;
overflow: -moz-scrollbars-horizontal;
}
</style>
</head>
<body>
<form>
<textarea>This is a long line of text for testing purposes...</textarea>
</form>
</body>
</html>
Saya menemukan cara untuk membuat textarea dengan semua ini bekerja secara bersamaan:
Ini bekerja dengan baik pada:
Izinkan saya menjelaskan bagaimana saya mencapai hal itu: Saya menggunakan alat terintegrasi inspektur Chrome dan saya melihat nilai pada gaya CSS, jadi saya mencoba nilai-nilai ini, bukannya yang normal ... percobaan & kesalahan sampai saya dikurangi menjadi minimum dan ini dia adalah untuk siapa saja yang menginginkannya.
Di bagian CSS saya menggunakan ini untuk Chrome, Firefox, Opera dan Safari:
textarea {
white-space:nowrap;
overflow:scroll;
}
Di bagian CSS saya menggunakan ini untuk IE:
textarea {
overflow:scroll;
}
Itu agak rumit, tetapi ada CSS.
Tag (x) HTML seperti ini:
<textarea id="myTextarea" rows="10" cols="15"></textarea>
Dan di akhir <head>
bagian JavaScript seperti ini:
window.onload=function(){
document.getElementById("myTextarea").wrap='off';
}
JavaScript adalah untuk membuat validator W3C yang melewati XHTML 1.1 Strict, karena atribut wrap tidak resmi dan dengan demikian tidak dapat menjadi tag (x) HTML secara langsung, tetapi sebagian besar browser menanganinya, jadi setelah memuat halaman itu menetapkan atribut itu.
Semoga ini dapat diuji pada lebih banyak browser dan versi dan membantu seseorang untuk memperbaikinya dan membuatnya sepenuhnya cross-browser untuk semua versi.
Pertanyaan ini tampaknya menjadi yang paling populer untuk menonaktifkan textarea
bungkus. Namun, pada April 2017 saya menemukan bahwa IE 11 (11.0.9600) tidak akan menonaktifkan bungkus kata dengan solusi di atas.
Satu- satunya solusi yang berfungsi untuk IE 11 adalah wrap="off"
. wrap="soft"
dan / atau berbagai atribut CSS seperti white-space: pre
ubah di mana IE 11 memilih untuk membungkus tetapi masih membungkus di suatu tempat. Perhatikan bahwa saya telah menguji ini dengan atau tanpa Tampilan Kompatibilitas . IE 11 kompatibel dengan HTML 5, tetapi tidak dalam hal ini.
Jadi, untuk mencapai garis yang mempertahankan ruang putih mereka dan keluar dari sisi kanan saya menggunakan:
<textarea style="white-space: pre; overflow: scroll;" wrap="off">
Kebetulan ini juga berfungsi di Chrome & Firefox. Saya tidak membela penggunaan pra-HTML 5 wrap="off"
, hanya mengatakan bahwa tampaknya diperlukan untuk IE 11.
Jika Anda dapat menggunakan JavaScript, berikut ini mungkin opsi paling portabel saat ini (Firefox 31 yang diuji, Chrome 36):
contenteditable="true"
http://jsfiddle.net/cirosantilli/eaxgesoq/
<style>
div#editor {
white-space: pre;
word-wrap: normal;
overflow-x: scroll;
}
<style>
<div contenteditable="true"></div>
Tampaknya tidak ada standar, solusi CSS portabel:
wrap
atribut tidak standar
white-space: pre;
tidak berfungsi untuk Firefox 31 untuk textarea
. Biola , permintaan fitur terbuka .
Juga, jika Anda dapat menggunakan Javascript, Anda mungkin juga menggunakan editor ACE:
http://jsfiddle.net/cirosantilli/bL9vr8o8/
<script src="http://cdnjs.cloudflare.com/ajax/libs/ace/1.1.3/ace.js"></script>
<div id="editor">content</div>
<script>
var editor = ace.edit('editor')
editor.renderer.setShowGutter(false)
</script>
Mungkin bekerja dengan ACE karena tidak menggunakan textarea
salah satu yang kurang ditentukan / diimplementasikan secara tidak jelas, tetapi tidak yakin apakah itu digunakan contenteditable
.