๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐ŸŒต Vue.js

[Vue.js] :hover๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฒ„ํŠผ์— ๋งˆ์šฐ์Šค ์ปค์„œ๋ฅผ ๋Œ€๋ฉด ์ƒ‰๋ฐ˜์ „ ์‹œํ‚ค๊ธฐ.

by ._.sori 2025. 8. 4.

 

 

์ฐธ๊ณ ๋กœ Vue.js์— ๋Œ€ํ•ด์„œ ์ž˜ ๋ชจ๋ฆ…๋‹ˆ๋‹ค.

์•„๋ฌด๊ฑฐ๋‚˜ ๋ง‰ ํ•ด๋ณด๋Š” ์ค‘์ด๊ณ  ์˜ณ์€ ์ •๋ณด์ธ์ง€ ์ €๋„ ๋ชจ๋ฆ…๋‹ˆ๋‹ค!

 

 

 

์ปค์„œ๋ฅผ ๋Œ€๋ฉด ๋ฒ„ํŠผ์˜ ์ƒ‰์ด
๋‹ค๋ฅธ ์ƒ‰์œผ๋กœ ๋ฐ”๋€Œ๋Š” ๊ฒƒ์„
๋งŒ๋“ค์–ด๋ณผ ๊ฒƒ์ด๋‹ค.

 

 

 

 

 

1. ์‹คํ–‰ํ™”๋ฉด

 

 

 

 

 

 


 

 

 

2.  HelloView.vue

๋ฒ„ํŠผ ํด๋ž˜์Šค๋ฅผ ๋จผ์ € ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. 

<template>
  <div class="main-view">
    <button class="btn" > Click </button>
  </div>
</template>

 

์ „์ฒด ํ™”๋ฉด ๊ตฌ์„ฑ์€ ์ด๋ ‡๊ฒŒ ํ–ˆ์Šต๋‹ˆ๋‹ค.

<style scoped> ์˜ ์ฝ”๋“œ

.main-view {
  position: relative;
  width:  100vw;
  height: 100vh;
  background-color: lemonchiffon;
}

 

๋ฒ„ํŠผ์˜ ์œ„์น˜๋Š” ์ค‘์•™์— ์œ„์น˜ํ•˜๋„๋ก ๋ฐฐ์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐฐ๊ฒฝ์ƒ‰์€ ๋ธ”๋ž™, ํ…์ŠคํŠธ ์ปฌ๋Ÿฌ๋Š” ํ•˜์–€์ƒ‰์ž…๋‹ˆ๋‹ค.

<style scoped> ์˜ ์ฝ”๋“œ

.btn{
  position: absolute;
  width: 80px;
  height: 50px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 20px;
  color: white;
  background-color: black;
  cursor:  pointer;
}

 

:hover๋Š” ํ„ฐ์น˜์Šคํฌ๋ฆฐ์ผ ๋•Œ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค. ์™œ๋ƒ๋ฉด :hover๋Š” ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ ธ์„ ๋•Œ๋งŒ ๋ฐ˜์‘ํ•˜๋Š” ์Šคํƒ€์ผ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ฐฐ๊ฒฝ์ƒ‰(background)์€ ์ง„๋ถ„ํ™์ƒ‰์ด๊ณ , ํ…์ŠคํŠธ ์ปฌ๋Ÿฌ(color)๋Š” ๋™์ผํ•˜๊ฒŒ ํ™”์ดํŠธ๋กœ ํ–ˆ๋‹ค. border๋Š” ํ…Œ๋‘๋ฆฌ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š”๋ฐ, ์•„๋ž˜์ฒ˜๋Ÿผ ์„ค์ •์„ ์•ˆํ•ด์ฃผ๋ฉด ํ…Œ๋‘๋ฆฌ๋Š” ๊ฒ€์€์ƒ‰์œผ๋กœ ๋‚˜ํƒ€๋‚œ๋‹ค. 3px๋Š” ์„ ์˜ ๊ตต๊ธฐ์ด๊ณ  solid๋Š” ์„ ์˜ ํ˜•ํƒœ๋กœ ๊ทธ๋ƒฅ ์ผ์ง์„ ์„ ์„ ํƒํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ƒ‰์ƒ ์ฝ”๋“œ๋ฅผ ์ ์–ด์ฃผ๋ฉด ๋œ๋‹ค. pointer๋Š” ๋ฒ„ํŠผ์— ์ปค์„œ๋ฅผ ๋Œ€๋ฉด ๊ฒ€์ง€ ๋ชจ์–‘์˜ ์„ ํƒํ•˜๋Š” ํ˜•ํƒœ๋กœ ๋ฐ”๋€Œ๋„๋ก ํ–ˆ๋‹ค.

 

<style scoped> ์˜ ์ฝ”๋“œ

.btn:hover {
  background-color: #ed3597;
  color: white;
  border: 3px solid #ed3597;
  cursor:pointer;
}