아래에 표시된 HTML,
<input type="text"/>
다음과 같이 브라우저에 표시됩니다.
다음 텍스트를 추가하면
빠른 갈색 여우가 게으른 개를 뛰어 넘었습니다.
아래 HTML을 사용하여
<input type="text" value="The quick brown fox jumped over the lazy dog."/>
다음과 같이 브라우저에 표시됩니다.
그러나 다음과 같이 브라우저에 표시되기를 바랍니다.
내 입력 요소의 텍스트를 래핑하고 싶습니다. 텍스트 영역없이이 작업을 수행 할 수 있습니까?
답변
그것이 여러 줄 textarea
텍스트 입력에 대한 작업입니다. 는 input
그것을하지 않을 것이다 ; 그렇게하도록 설계되지 않았습니다.
따라서 textarea
. 시각적 차이 외에도 JavaScript를 통해 동일한 방식으로 액세스됩니다 ( value
속성 사용 ).
input
이벤트 를 통해 그리고 단순히 replace(/\n/g, '')
.
답변
단어 나누기는 의도의 일부를 모방합니다.
input[type=text] {
word-wrap: break-word;
word-break: break-all;
height: 80px;
}
<input type="text" value="The quick brown fox jumped over the lazy dog" />
해결 방법으로이 솔루션은 일부 브라우저에서 효율성을 잃었습니다. 데모를 확인하십시오 : http://cssdesk.com/dbCSQ
답변
입력을 사용할 수 없으며 대신 텍스트 영역을 사용해야합니다. wrap="soft"
코드와 함께 텍스트 영역을 사용하고 다음과 같은 나머지 속성은 선택 사항입니다.
<textarea name="text" rows="14" cols="10" wrap="soft"> </textarea>
속성 : 예를 들어 “40”문자로 텍스트의 양을 제한하려면 다음maxlength="40"
과 같은 속성을 추가 할 수 있습니다 <textarea name="text" rows="14" cols="10" wrap="soft" maxlength="40"></textarea>
. 스크롤을 숨기려면 해당 스타일을 숨 깁니다. 만 사용하는 경우 overflow:scroll;
나 overflow:hidden;
또는 overflow:auto;
그것은 단지 하나 개의 스크롤 막대에 대한 영향이 소요됩니다. 각 스크롤 막대에 대해 다른 속성을 원하는 경우 overflow:scroll; overflow-x:auto; overflow-y:hidden;
스타일 영역에서 다음 과 같은 속성을 사용합니다 . 텍스트 영역의 크기를 조정할 수 없도록하려면 다음과 resize:none;
같이 스타일을 사용할 수 있습니다 .
<textarea name="text" rows="14" cols="10" wrap="soft" maxlength="40" style="overflow:hidden; resize:none;></textarea>
이렇게하면 입력 텍스트 상자와 똑같이 작동하지만 입력 텍스트를 사용하지 않고 행을 사용하는 “40”문자의 최대 문자 길이와 단어 줄 바꿈이있는 14 개 행과 10 개 열이있는 텍스트 영역을 만들 수 있습니다.
참고 : 입력과 같은 달리 행 텍스트 영역의 작품 <input type="text" name="tbox" size="10"></input>
으로 구성되어 있지 전혀 행이 작동합니다.
답변
내부 값이 단일 행 문자열이지만 사용자에게 단어 줄 바꿈 형식으로 표시되는 텍스트 입력을 생성하려면 또는 다른 요소 에 contenteditable 속성을 사용할 수 있습니다 <div>
.
const el = document.querySelector('div[contenteditable]');
// Get value from element on input events
el.addEventListener('input', () => console.log(el.textContent));
// Set some value
el.textContent = 'Lorem ipsum curae magna venenatis mattis, purus luctus cubilia quisque in et, leo enim aliquam consequat.'
div[contenteditable] {
border: 1px solid black;
width: 200px;
}
<div contenteditable></div>
답변
