๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป Dev/Front-End

์ž๋™ ๋ง์ค„์ž„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•: ๊ธ€์ž์ˆ˜, ๋„ˆ๋น„

yesolz 2023. 12. 17. 12:00
728x90

 

์ž๋™ ๋ง์ค„์ž„ ์ฒ˜๋ฆฌ

ํ…์ŠคํŠธ๊ฐ€ ๋„˜์น  ๋•Œ, ์ž๋™์œผ๋กœ ๋ง์ค„์ž„ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ค˜์•ผํ•  ๋•Œ๊ฐ€ ์žˆ๋‹ค.

์ด๋•Œ ํ…์ŠคํŠธ๋ฅผ ์ถ•์•ฝํ•˜๋Š” ๊ธฐ์ค€์œผ๋กœ๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. 

  1. ๊ธ€์ž์ˆ˜์— ๋”ฐ๋ผ ์ถ•์•ฝ
  2. CSS ellipsis

๊ฐ๊ฐ์˜ ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž!

 

๊ธ€์ž์ˆ˜์— ๋”ฐ๋ผ ์ถ•์•ฝ

ํ…์ŠคํŠธ ๊ธ€์ž ์ˆ˜์— ๋”ฐ๋ผ ์กฐ๊ฑด๋ถ€ ๋ Œ๋”๋ง์„ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ž˜๋ฆฐ ํ…์ŠคํŠธ์— ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ฆฌ๋ฉด (hover ํ•˜๋ฉด) ์ „์ฒด ํ…์ŠคํŠธ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก Tooltip์œผ๋กœ ๋„์›Œ์ค„ ์ˆ˜ ์žˆ๋‹ค.

์•„๋ž˜๋Š” name์ด 10์ž๋ฅผ ๋„˜์œผ๋ฉด ์•ž์—์„œ๋ถ€ํ„ฐ 10์ž๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ , ๋’ท ๋ถ€๋ถ„์€ '...'์œผ๋กœ ์ž˜๋ผ์„œ ๋ณด์—ฌ์ฃผ๋Š” ์ฝ”๋“œ ์˜ˆ์‹œ์ด๋‹ค. 

( ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์„ ๋•Œ '-' ๋ฅผ ์ถœ๋ ฅํ•˜๋„๋ก ํ•˜๋Š” ์กฐ๊ฑด๋ถ€ ๋ Œ๋”๋ง๋„ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.)

        cell: ({ row: { original } }) => {
          return original.name ? (
            original.name.length > 10 ? (
              <div>
                <Tooltip text={<span>{original.name.substring(0, 10) + '...'}</span>} toolTipText={original.name} />
              </div>
            ) : (
              <div>{original.name ?? '-'}</div>
            )
          ) : (
            <>-</>
          );
        },

 

 

 

๋„ˆ๋น„์— ๋”ฐ๋ฅธ ์ถ•์•ฝ : CSS ์˜ ellipsis

๋‹ค์Œ์€ ๋„ˆ๋น„์— ๋”ฐ๋ฅธ ์ถ•์•ฝ์ด๋‹ค.

์ƒ์ž ์•ˆ์— ํ…์ŠคํŠธ๋ฅผ ๋„ฃ๋Š”๋ฐ, ๋„˜์น˜๋Š” ํ…์ŠคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•ด์ฃผ๊ณ  ์‹ถ์„ ๋•Œ ์ด ๋ฐฉ๋ฒ•์ด ํšจ๊ณผ์ ์ด๋‹ค. 

 

๊ธ€์ž์ˆ˜๋กœ ์ฒ˜๋ฆฌํ•ด์ฃผ๊ฒŒ ๋˜๋ฉด,

'ํ•œ๊ธ€', '์˜๋ฌธ ์†Œ๋ฌธ์ž', '์˜๋ฌธ ๋Œ€๋ฌธ์ž' ๊ฐ๊ฐ์˜ ๋„ˆ๋น„ ์ฐจ์ด๊ฐ€ ๋งŽ์ด ๋‚˜์„œ

ํ…์ŠคํŠธ์— ๋น„ํ•ด ์ƒ์ž ๊ณต๊ฐ„์ด ์ง€๋‚˜์น˜๊ฒŒ ๋‚จ๊ฑฐ๋‚˜, ํ…์ŠคํŠธ๊ฐ€ ๋„˜์น˜๊ฒŒ ๋˜๋Š” ๋“ฑ์˜ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

๋„ˆ๋น„์— ๋”ฐ๋ฅธ ์ถ•์•ฝ์€ CSS์˜ ellipsis๋ฅผ ์‚ฌ์šฉํ•ด์ฃผ๋ฉด ๋œ๋‹ค. 

<div class="ellipsis-example">
  This is a long text that needs to be truncated with ellipsis.
</div>

 

.ellipsis-example {
  white-space: nowrap;       /* ํ…์ŠคํŠธ๊ฐ€ ํ•œ ์ค„์—๋งŒ ํ‘œ์‹œ๋˜๋„๋ก */
  overflow: hidden;          /* ๋„˜์น˜๋Š” ๋ถ€๋ถ„ ์ˆจ๊ธฐ๊ธฐ */
  text-overflow: ellipsis;   /* ๋„˜์น˜๋Š” ๋ถ€๋ถ„์— ... ํ‘œ์‹œ */
  width: 200px;              
  border: 1px solid #ccc;    
  padding: 5px;              
}

 

white-space ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ…์ŠคํŠธ๊ฐ€ ํ•œ ์ค„์—๋งŒ ํ‘œ์‹œ๋˜๋„๋ก ํ•˜๊ณ ,

overflow ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋„˜์น˜๋Š” ๋ถ€๋ถ„์„ ์ˆจ๊ธฐ๊ณ ,

text-overflow ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋„˜์น˜๋Š” ๋ถ€๋ถ„์— ...์„ ํ‘œ์‹œํ•œ๋‹ค.

 

728x90