๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ธฐ์ˆ ๊ณผ ๊ฐœ๋ฐœ ์ด์•ผ๊ธฐ/html css

[CSS] ํƒ€์ดํ‹€ ๋ ˆ์ด์•„์›ƒ ๋ณ€๊ฒฝ : text-overflow, word-break

 

์ผ๋ถ€๋งŒ ๋ณด์ด๋Š” ๋ ˆ์ด์•„์›ƒ ๋ฌธ์ œ ํ•ด๊ฒฐ, ์ „์ฒด ์ œ๋ชฉ์„ ์‹œ๊ฐ์ ์œผ๋กœ ํ‘œ์‹œํ•˜์—ฌ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ํ–ฅ์ƒ.

์ œ๋ชฉ '...'์œผ๋กœ ์ž˜๋ฆฌ๋Š” ํ˜„์ƒ CSS๋กœ ์ „์ฒด ์ œ๋ชฉ ๋ณด์ด๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•

ํ˜„์žฌ ์‚ฌ์šฉ ์ค‘์ธ ์Šคํ‚จ์€ 077 ๋ฐ˜์‘ํ˜• ์‚ฌ์ด๋“œ ํฌํ† ํ”„๋ ˆ์ž„์ด๋ฉฐ ๋งŒ์กฑ์Šค๋Ÿฝ๊ฒŒ ์ž˜ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋ช‡ ๊ฐ€์ง€ ์Šคํƒ€์ผ์ ์ธ ์ˆ˜์ •์„ ํ†ตํ•ด ๋” ๋‚˜์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๋งŒ๋“ค๊ณ ์ž ํ–ˆ์Šต๋‹ˆ๋‹ค.

 

 

1. ๋ฌธ์ œ ์ •์˜:

 

ํ˜„์žฌ ์‚ฌ์šฉ ์ค‘์ธ ๋ธ”๋กœ๊ทธ ์Šคํ‚จ์ธ 077 ๋ฐ˜์‘ํ˜• ์‚ฌ์ด๋“œ ํฌํ† ํ”„๋ ˆ์ž„์—์„œ, ํฌ์ŠคํŠธ ์ œ๋ชฉ์ด ์ž˜๋ ค ๋‚˜์™€ ์ „์ฒด ์ œ๋ชฉ์ด ๋ณด์ด์ง€ ์•Š๋Š” ๋ ˆ์ด์•„์›ƒ์˜ ๋ถˆํŽธํ•จ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๊ฐœ์„ ํ•˜์—ฌ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ํ–ฅ์ƒํ•˜๊ณ ์ž ํ–ˆ์Šต๋‹ˆ๋‹ค.

 

  • ํฌ์ŠคํŠธ ์ œ๋ชฉ์ด ์ž˜๋ฆฌ๋Š” ๋ฌธ์ œ ('...'์œผ๋กœ ํ‘œ์‹œ๋˜๋Š” ๋ถ€๋ถ„)๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ , ์ „์ฒด ์ œ๋ชฉ์ด ๋‚˜์˜ค๋„๋ก ๋ฐ˜์‘ํ˜•์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ ์ž ํ–ˆ๋‹ค.
  • CSS ์ฝ”๋“œ์—์„œ ํฌ์ŠคํŠธ ์ œ๋ชฉ์ด ์ž˜๋ ค ๋‚˜์˜ค๋Š” ์›์ธ: text-overflow์™€ overflow ์†์„ฑ์„ ์ˆ˜์ •ํ•˜์—ฌ ํ•ด๊ฒฐํ•˜๊ณ ์ž ํ–ˆ๋‹ค.

 

 

2. ์›๋ณธ CSS ์ฝ”๋“œ ๋ถ„์„:

 

 

๊ธฐ์กด CSS ์ฝ”๋“œ์—์„œ๋Š” ํฌ์ŠคํŠธ ์ œ๋ชฉ์ด ์ž˜๋ ค ๋‚˜์˜ค๋Š” ์›์ธ์œผ๋กœ text-overflow ์†์„ฑ๊ณผ overflow:hidden ์†์„ฑ์ด ์ ์šฉ๋˜์–ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ, text-overflow: ellipsis;๋Š” ํ…์ŠคํŠธ๋ฅผ ์ค„์ด๊ณ  "..."์œผ๋กœ ํ‘œ์‹œํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์œผ๋ฉฐ, overflow: hidden;์€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” ๋‚ด์šฉ์„ ์ˆจ๊ธฐ๋Š” ์—ญํ• ์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, -webkit-line-clamp: 1;๋Š” ์›นํ‚ท ๋ธŒ๋ผ์šฐ์ €์—์„œ ํŠน์ • ๋ผ์ธ ์ˆ˜๊นŒ์ง€๋งŒ ํ‘œ์‹œํ•˜๋Š” ์†์„ฑ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

 

 

CSS ์ฝ”๋“œ ์„ค๋ช…

text-overflow: ellipsis; ํ…์ŠคํŠธ๊ฐ€ ๋ถ€๋ชจ ์š”์†Œ๋ฅผ ๋„˜์–ด๊ฐˆ ๊ฒฝ์šฐ, ํ…์ŠคํŠธ๋ฅผ ์ค„์ด๊ณ  "..."์œผ๋กœ ํ‘œ์‹œํ•˜๋Š” ์†์„ฑ.
overflow: hidden; ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” ๋‚ด์šฉ์„ ์ˆจ๊ธฐ๋Š” ์†์„ฑ. ๋ถ€๋ชจ ์š”์†Œ์— ๋„˜์น˜๋Š” ์ž์‹ ์š”์†Œ๋ฅผ ๊ฐ์ถœ ๋•Œ ์‚ฌ์šฉ.
webkit-line-clamp: 1; ์›นํ‚ท ๋ธŒ๋ผ์šฐ์ €์—์„œ๋งŒ ๋™์ž‘ํ•˜๋Š” ์†์„ฑ์œผ๋กœ, ํŠน์ • ๋ผ์ธ ์ˆ˜๊นŒ์ง€๋งŒ ํ‘œ์‹œํ•˜๋ฉฐ ๋‚˜๋จธ์ง€๋Š” ์ƒ๋žต. ์ฃผ๋กœ ๋‹ค์ค‘ ๋ผ์ธ ํ…์ŠคํŠธ์˜ ๊ธธ์ด๋ฅผ ์ œํ•œํ•  ๋•Œ ์‚ฌ์šฉ.

 

 

 

 

3. ํ•ด๊ฒฐ๊ณผ์ •: text-overflow ์ œ๊ฑฐ ๋ฐ word-break: keep-all ์ถ”๊ฐ€

 

  • text-overflow: ellipsis;์™€ overflow: hidden;๋ฅผ ๋Œ€์ฒดํ•˜๊ธฐ ์œ„ํ•ด word-break: keep-all; ์†์„ฑ์„ ๋„์ž…ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋กœ์จ ํ…์ŠคํŠธ๋Š” ๋‹จ์–ด ์‚ฌ์ด์—์„œ๋งŒ ์ค„ ๋ฐ”๊ฟˆ์„ ํ—ˆ์šฉํ•˜๊ฒŒ ๋˜์–ด ์ „์ฒด ์ œ๋ชฉ์ด ๋‚˜์˜ค๋„๋ก ๋ณด์ด๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ธ€์”จ๊ฐ€ ๊ฒน์น˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํƒ€์ดํ‹€์˜ padding-bottom์„ ์ถ”๊ฐ€ ํ–ˆ์Šต๋‹ˆ๋‹ค.

CSS ์ฝ”๋“œ ์„ค๋ช…

word-break: keep-all; ๋‹จ์–ด ์‚ฌ์ด์—์„œ๋งŒ ์ค„ ๋ฐ”๊ฟˆ์„ ํ—ˆ์šฉํ•˜๋Š” ์†์„ฑ. ๋‹จ์–ด๊ฐ€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋„˜์–ด๊ฐˆ ๋•Œ ์ „์ฒด ๋‹จ์–ด๋ฅผ ๋‹ค์Œ ์ค„๋กœ ์ด๋™์‹œํ‚ด.
๋ณ€๊ฒฝ ์ „ ์ค‘๊ฐ„ ๊ณผ์ • ๋ณ€๊ฒฝ ํ›„
1. ํ…์ŠคํŠธ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ๋ฌธ์ œ ํ•ด๊ฒฐ:

- text-overflow: ellipsis;๋กœ ๋ฐœ์ƒํ•œ ์ œ๋ชฉ์˜ '...'์œผ๋กœ ์ธํ•œ ์ž˜๋ฆผ ๋ฌธ์ œ ๊ฐœ์„ .

2. ํ…์ŠคํŠธ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ์ œ๊ฑฐ ๋ฐ ๋ ˆ์ด์•„์›ƒ ์ตœ์ ํ™”:

- text-overflow ์†์„ฑ ์ œ๊ฑฐํ•˜๊ณ  word-break: keep-all; ์ถ”๊ฐ€ํ•˜์—ฌ ๊ฐ€๋…์„ฑ ํ–ฅ์ƒ.
์ œ๋ชฉ๊ณผ ๋‚ด์šฉ ์‚ฌ์ด์˜ ๊ฒน์นจ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด padding-bottom ์ถ”๊ฐ€. ํ•ด๋‹น ์ฝ”๋“œ ๋ณ€๊ฒฝ ํ›„ ์ œ๋ชฉ ์ž˜๋ฆผ ๋ฐ ๋‚ด์šฉ ๊ฒน์นจ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐ ๋ ˆ์ด์•„์›ƒ์ด ๊น”๋”ํ•ด์ง

 

 

 

 

4. ์ตœ์ข… CSS ์ฝ”๋“œ:

์›๋ณธ ์ตœ์ข… CSS ์ฝ”๋“œ
.post-item .title {
          display: block;
          display:-webkit-box;
           -webkit-line-clamp: 1;
          text-overflow: ellipsis;
          -webkit-box-orient:vertical;
          overflow:hidden;
          max-height: 1.4em;
          font-size: 1.125em;
          font-weight: bold;
          color: #000;
          line-height: 1.4;
           margin-bottom: 10px;
}
.post-item .title {
          display: block;
          display:-webkit-box;
          word-break: keep-all;
          max-height: 1.4em;
          font-size: 1.125em;
          font-weight: bold;
          color: #000;
          line-height: 1.4;
          margin-bottom: 10px;
          padding-bottom: 25px;
}

 

๋ณ€๊ฒฝ ์‚ฌํ•ญ ๋ฐ ์„ค๋ช…:

  1. text-overflow ์†์„ฑ ์ˆ˜์ •:
    • ๋ณ€๊ฒฝ ์ „: text-overflow: ellipsis;
    • ๋ณ€๊ฒฝ ํ›„: word-break: keep-all;
    • ์„ค๋ช…: text-overflow: ellipsis;๋Š” ํ…์ŠคํŠธ๊ฐ€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋„˜์–ด๊ฐˆ ๋•Œ "..."๋กœ ํ‘œ์‹œ๋˜๋Š”๋ฐ, ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด word-break: keep-all;๋กœ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๋‹จ์–ด ์‚ฌ์ด์—์„œ๋งŒ ์ค„ ๋ฐ”๊ฟˆ์„ ํ—ˆ์šฉํ•˜์—ฌ ์ „์ฒด ์ œ๋ชฉ์ด ๋‚˜์˜ค๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  2. overflow ์†์„ฑ ์‚ญ์ œ ๋ฐ padding-bottom ์ถ”๊ฐ€:
    • ๋ณ€๊ฒฝ ์ „: overflow: hidden;
    • ๋ณ€๊ฒฝ ํ›„: padding-bottom: 25px;
    • ์„ค๋ช…: overflow: hidden;์€ ํ…์ŠคํŠธ๊ฐ€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฒ—์–ด๋‚  ๊ฒฝ์šฐ ์ˆจ๊ธฐ๋Š” ์†์„ฑ์ด์—ˆ๋Š”๋ฐ, ์ด๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋Œ€์‹  padding-bottom: 25px;๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํ…์ŠคํŠธ๊ฐ€ ํ•˜๋‹จ์— ์—ฌ๋ฐฑ์„ ๊ฐ–๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ…์ŠคํŠธ๊ฐ€ ๋‹ค๋ฅธ ์š”์†Œ์™€ ๊ฒน์น˜์ง€ ์•Š๋„๋ก ๋ณด๋‹ค ๊น”๋”ํ•œ ๋””์ž์ธ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
  3. -webkit-line-clamp ์†์„ฑ ์ œ๊ฑฐ:
    • ๋ณ€๊ฒฝ ์ „: -webkit-line-clamp: 1;
    • ๋ณ€๊ฒฝ ํ›„: ์ œ๊ฑฐ
    • ์„ค๋ช…: -webkit-line-clamp๋Š” ํŠน์ • ๋ผ์ธ ์ˆ˜๊นŒ์ง€๋งŒ ํ‘œ์‹œํ•˜๋Š”๋ฐ, ์ด๋ฅผ ์ œ๊ฑฐํ•จ์œผ๋กœ์จ ์›ํ•˜๋Š” ๋งŒํผ์˜ ๋†’์ด๋ฅผ ๊ฐ–๊ฒŒ ํ–ˆ์Šต๋‹ˆ๋‹ค.

 

 

5. ๊ฒฐ๊ณผ:

 

ํ•ด๋‹น ๋ณ€๊ฒฝ์„ ํ†ตํ•ด ํฌ์ŠคํŠธ ์ œ๋ชฉ์ด ๋” ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํ‘œํ˜„๋˜๊ณ , ์ „์ฒด ๋‚ด์šฉ์ด ์ž˜ ๋ณด์ด๋„๋ก ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•จ์œผ๋กœ์จ ๊ฐ€๋…์„ฑ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

 

 

6. ์ฐธ๊ณ  ์ž๋ฃŒ:

 

- devwoodie. [๊ฐœ๋ฐœํ•˜์ž(DevHaja)]. (2022, June 23). [CSS] '...' ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ• (text-overflow: ellipsis). Tistory. https://devwoodie.tistory.com/19

- ๋‚˜์˜ ์‹œ์ . [ ํ–‰๋ณตํ•˜๊ธฐ ]. (2010, April 29). [CSS] ํ…์ŠคํŠธ ์ค„๋ฐ”๊ฟˆ ์ฒ˜๋ฆฌ word-break, white-space. Tistory. https://htglss.tistory.com/31

- Gyu. [TechGyu]. (2016 September 14). [CSS] ์—ฌ๋ฐฑ๊ด€๋ จ์†์„ฑ (margin, padding, border). Naver Blog. https://m.blog.naver.com/bgpoilkj/220812247716

- ์–ด์ฉŒ๋‹ค๊ฐœ๋ฐœ. [์•Œ์“ธ๊ฐœ์žก]. (2019 January 30). ํ…Œ์ด๋ธ”์—์„œ ๊ธ€์ž์ˆ˜ ๋งŽ์œผ๋ฉด ... ์œผ๋กœ ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•. Tistory.

https://devmango.tistory.com/29