๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ปWEB FrontEnd/ํ”„๋ ˆ์ž„์›Œํฌ Vue

์ธ๋ผ์ธ ์Šคํƒ€์ผ ๋ฐ”์ธ๋”ฉ

1. ๊ฐ์ฒด ๊ตฌ๋ฌธ

1) v-bind ์ธ๋ผ์ธ ์Šคํƒ€์ผ ๋ฐ”์ธ๋”ฉ ์ด์šฉ

  • v-bind:style ๊ฐ์ฒด ๊ตฌ๋ฌธ์€ ๋งค์šฐ ์ง์„ค์ ์œผ๋กœ, ๊ฑฐ์˜ CSS ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ JavaScript ๊ฐ์ฒด์ด๋‹ค.
  • ์†์„ฑ ์ด๋ฆ„์— camelCase์™€ kebab-case๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
<div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>
data: {
  activeColor: 'red',
  fontSize: 30
}

 

2) ์Šคํƒ€์ผ ๊ฐ์ฒด์— ์ง์ ‘ ๋ฐ”์ธ๋”ฉ ํ•˜์—ฌ ํ…œํ”Œ๋ฆฟ์ด ๋” ๊ฐ„๊ฒฐํ•˜๋„๋ก ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

<div v-bind:style="styleObject"></div>
data: {
  styleObject: {
    color: 'red',
    fontSize: '13px'
  }
}

 

 

2. ๋ฐฐ์—ด ๊ตฌ๋ฌธ

v-bind:style์— ๋Œ€ํ•œ ๋ฐฐ์—ด ๊ตฌ๋ฌธ์„ ์ด์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์Šคํƒ€์ผ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

<div v-bind:style="[baseStyles, overridingStyles]"></div>

 

3. ์ž๋™ ์ ‘๋‘์‚ฌ

v-bind:style์— ๋ธŒ๋ผ์šฐ์ € ๋ฒค๋” ์ ‘๋‘์–ด๊ฐ€ ํ•„์š”ํ•œ CSS ์†์„ฑ (์˜ˆ: transform)์„ ์‚ฌ์šฉํ•˜๋ฉด Vue๋Š” ์ž๋™์œผ๋กœ ํ•ด๋‹น ์ ‘๋‘์–ด๋ฅผ ๊ฐ์ง€ํ•˜์—ฌ ์Šคํƒ€์ผ์„ ์ ์šฉํ•œ๋‹ค.

 

4. ๋‹ค์ค‘ ๊ฐ’ ์ œ๊ณต

2.3๋ฒ„์ „ ๋ถ€ํ„ฐ ์Šคํƒ€์ผ ์†์„ฑ์— ์ ‘๋‘์‚ฌ๊ฐ€ ์žˆ๋Š” ์—ฌ๋Ÿฌ ๊ฐ’์„ ๋ฐฐ์—ด๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค. 

<div v-bind:style="{ display: ['-webkit-box', '-ms-flexbox', 'flex'] }"></div>

๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ง€์›ํ•˜๋Š” ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ๊ฐ’๋งŒ ๋ Œ๋”๋งํ•œ๋‹ค. ์ด ์˜ˆ์ œ์—์„œ๋Š” flexbox์˜ ์ ‘๋‘์–ด๊ฐ€ ๋ถ™์ง€์•Š์€ ๋ฒ„์ „์„ ์ง€์›ํ•˜๋Š” ๋ธŒ๋ผ์šฐ์ €์— ๋Œ€ํ•ด display : flex๋ฅผ ๋ Œ๋”๋งํ•œ๋‹ค.