๋ฐ˜์‘ํ˜•

๐Ÿ’ก ๋ฏธ๋ฆฝ์ž ํŒ : textarea ํƒœ๊ทธ์— readonly ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์ฝ๊ธฐ๋งŒ ๊ฐ€๋Šฅํ•˜๊ณ  ์“ฐ๊ธฐ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ๋กœ๊ทธ์ธํ•˜์ง€ ์•Š์€ ์œ ์ €๋Š” ๋Œ“๊ธ€์„ ์“ฐ์ง€ ๋ชปํ•˜๊ฒŒํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค. `<textarea readonly></textarea>`

 

์ค„๋ฐ”๊ฟˆ ์ ์šฉํ•˜๊ธฐ


์ค„๋ฐ”๊ฟˆ์ด ํ•˜๋‚˜๋„ ์•ˆ๋๋‹ค.

 

textarea ํƒœ๊ทธ์— ์—”ํ„ฐํ‚ค(๊ฐœํ–‰๋ฌธ์ž)๋ฅผ ๋ˆŒ๋Ÿฌ ์ค„๋ฐ”๊ฟˆ์„ ์ ์šฉํ•ด๋„, ์ž…๋ ฅํ•œ value๋ฅผ p ํƒœ๊ทธ ๋“ฑ์— ์ถœ๋ ฅํ•ด๋ณด๋ฉด ์ค„๋ฐ”๊ฟˆ์ด ํ•˜๋‚˜๋„ ์ ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค. ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ํ…์ŠคํŠธ๋ฅผ ํ‘œ์‹œํ•  ํƒœ๊ทธ์˜ ์Šคํƒ€์ผ์— white-space ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ. white-space๋Š” ๊ณต๋ฐฑ ๋ฌธ์ž๋ฅผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ• ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ์†์„ฑ์ด๋‹ค.

 

white-space: normal — ๊ธฐ๋ณธ๊ฐ’

 

  • ์—ฌ๋Ÿฌ ๊ณต๋ฐฑ : X (1๊ฐœ๋กœ ํ‘œ์‹œ)
  • ๆ”น่กŒ๋ฌธ์ž \n ํ‘œํ˜„ : X
  • Wrap : O

 

white-space: nowrap — normal๊ณผ ๋™์ผํ•˜๋‚˜ wrap์ด ์•ˆ๋จ

 

  • ์—ฌ๋Ÿฌ ๊ณต๋ฐฑ : X (1๊ฐœ๋กœ ํ‘œ์‹œ)
  • ๆ”น่กŒ๋ฌธ์ž \n ํ‘œํ˜„ : X
  • Wrap : X

 

white-space: pre<pre> ํƒœ๊ทธ์ฒ˜๋Ÿผ ๋™์ž‘

`<pre>` ํƒœ๊ทธ์— ์ž…๋ ฅํ•œ ์ค„๋ฐ”๊ฟˆ, ๊ณต๋ฐฑ ๋“ฑ์€ ๊ทธ๋Œ€๋กœ ํ‘œํ˜„๋˜๋ฉฐ, ์‹œ์Šคํ…œ์— ์ง€์ •๋œ ๊ณ ์ •ํญ ๊ธ€๊ผด์„ ์‚ฌ์šฉํ•œ๋‹ค. ๋งŒ์•ฝ `<pre>` ํƒœ๊ทธ ์•ˆ์— ๋‹ค๋ฅธ (์ž์‹)ํƒœ๊ทธ๊ฐ€ ์žˆ๋‹ค๋ฉด ํ•ด๋‹น ์ž์‹ ํƒœ๊ทธ์˜ ์†์„ฑ์€ ๊ทธ๋Œ€๋กœ ์œ ์ง€๋œ๋‹ค(pre ํƒœ๊ทธ ์•ˆ์— h1 ํƒœ๊ทธ๊ฐ€ ์žˆ๋‹ค๋ฉด h1 ์†์„ฑ์„ ๊ทธ๋Œ€๋กœ ๊ฐ€์ง).

 

 

  • ์—ฌ๋Ÿฌ ๊ณต๋ฐฑ : O (๊ตฌํ•˜์ง€... ๋’ท ๋ถ€๋ถ„์ด ์—ฌ๋Ÿฌ ๊ณต๋ฐฑ)
  • ๆ”น่กŒ๋ฌธ์ž \n ํ‘œํ˜„ : O
  • Wrap : X

 

white-space: pre-line — pre์™€ ๋™์ผํ•˜๋‚˜ wrap ๊ฐ€๋Šฅ

 

  • ์—ฌ๋Ÿฌ ๊ณต๋ฐฑ : X (1๊ฐœ๋กœ ํ‘œ์‹œ)
  • ๆ”น่กŒ๋ฌธ์ž \n ํ‘œํ˜„ : O
  • Wrap : O

 

white-space: pre-wrap — pre-line๊ณผ ๋™์ผํ•˜๋‚˜ ์—ฌ๋Ÿฌ ๊ณต๋ฐฑ ํ‘œ์‹œ ๊ฐ€๋Šฅ

 

  • ์—ฌ๋Ÿฌ ๊ณต๋ฐฑ : O
  • ๆ”น่กŒ๋ฌธ์ž \n ํ‘œํ˜„ : O
  • Wrap : O

 

ํ…์ŠคํŠธ ๋„˜์น  ๋•Œ ์ƒ๋žต ๋ถ€ํ˜ธ ํ‘œ์‹œ


ํŠน์ • ์š”์†Œ ์•ˆ์— ์žˆ๋Š” ํ…์ŠคํŠธ๊ฐ€ ๊ธธ์–ด์งˆ ๋•Œ ... ์ƒ๋žต ๋ถ€ํ˜ธ๋กœ ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•. text-overflow ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. text-overflow ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์•„๋ž˜ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•ด์•ผ ํ•œ๋‹ค.

 

  1. display ์†์„ฑ์ด block ํ˜น์€ inline-block์ผ ๋•Œ (p ํƒœ๊ทธ๋Š” ๊ธฐ๋ณธ๊ฐ’ block ์ƒํ•˜ margin์€ 1em)
  2. ํ…์ŠคํŠธ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ์š”์†Œ์˜ width height ๋ช…์‹œ
  3. overflow: hidden์œผ๋กœ ๋„˜์น˜๋Š” ์˜์—ญ ๊ฐ์ถ”๊ธฐ
  4. white-space: nowrap์„ ์‚ฌ์šฉํ•ด ํ…์ŠคํŠธ๊ฐ€ ๋‹ค์Œ์ค„๋กœ ๋„˜์–ด๊ฐ€๋Š” ๊ฒƒ ๋ฐฉ์ง€(ํ•œ ์ค„๋งŒ ํ‘œ์‹œํ•  ๋•Œ)

 

ํ•œ ์ค„ ์ผ๋•Œ (์ œ๋ชฉ์— ์œ ์šฉํ•จ)

pํƒœ๊ทธ ์Šคํƒ€์ผ ์†์„ฑ ์˜ˆ์‹œ

/* ํฌ๊ธฐ๊ฐ€ ์ •ํ•ด์ ธ ์žˆ๋Š” div ํƒœ๊ทธ ์•ˆ์— ์žˆ๋Š” pํƒœ๊ทธ๋ผ๋ฉด width, height๋ฅผ 100%๋กœ ํ•ด๋„ ๋ฌด๋ฐฉ */
width: 300px;
height: 100px;
overflow: hidden;
text-overflow: ellipsis; /* ์ง€์ •ํ•œ ๋„ˆ๋น„ ์ดˆ๊ณผํ•˜๋ฉด ... ์ƒ๋žต๋ถ€ํ˜ธ ํ‘œ์‹œ */
white-space: nowrap;

 

 

๋‘ ์ค„ ์ด์ƒ์ผ ๋•Œ (ํŠธ์œ„ํ„ฐ ๊ฐ™์€ ์ œํ•œ๋œ ๋ณธ๋ฌธ์— ์œ ์šฉ)

display ์†์„ฑ์„ -webkit-box๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด -webkit-line-clamp ์†์„ฑ์„ ํ†ตํ•ด ํ•ด๋‹น ์š”์†Œ์˜ ์ฝ˜ํ…์ธ  ์ค„(line) ์ˆ˜๋ฅผ ์ œํ•œํ•  ์ˆ˜ ์žˆ๋‹ค. 5๋ฅผ ์คฌ๋‹ค๋ฉด 5์ค„๊นŒ์ง€๋งŒ ํ‘œ์‹œ๋จ. ์ด๋•Œ -webkit-box-orient ์†์„ฑ์„ vertical๋กœ ์ค˜์•ผํ•œ๋‹ค.

 

ํ…์ŠคํŠธ๊ฐ€ ๊ธธ์–ด์ง„๋‹ค๋ฉด ์ค„๋ฐ”๊ฟˆ์ด ๋˜์•ผํ•˜๋ฏ€๋กœ white-space ์†์„ฑ์„ pre-line ๋“ฑ์œผ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค. ์ƒ๋žต ๋ถ€ํ˜ธ ํšจ๊ณผ๋ฅผ ํ™•์‹คํ•˜๊ฒŒ ์ฃผ๊ธฐ ์œ„ํ•ด line-height ์†์„ฑ์„ ์‚ฌ์šฉํ•ด ์ค„ ๋†’์ด๋ฅผ ์ ์ ˆํžˆ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

width: 300px;
height: 100px;
line-height: 21px;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 5;
-webkit-box-orient: vertical;
text-overflow: ellipsis;
white-space: pre-line;

 

 

์ฝ”๋“œํŽœ ์‹ค์Šต


See the Pen textarea ๊ฐœํ–‰๋ฌธ์ž ํ‘œ์‹œ / ์ƒ๋žต ๊ธฐํ˜ธ ํ‘œ์‹œ by ColorFilter (@colorfilter) on CodePen.

 

 

๋ ˆํผ๋Ÿฐ์Šค


 


๊ธ€ ์ˆ˜์ •์‚ฌํ•ญ์€ ๋…ธ์…˜ ํŽ˜์ด์ง€์— ๊ฐ€์žฅ ๋น ๋ฅด๊ฒŒ ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค. ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”
๋ฐ˜์‘ํ˜•