CSS

# Hover 구조 도식화

coco030030 2025. 4. 27. 18:09

Hover 구조 도식화

<div class="card tab1">    ← 카드 하나 (탭1 소속)

    (카드 배경 + 상품 이미지)

    <div class="sub_box1"> ← 카드 위를 덮는 박스 (버튼, 텍스트)
        버튼1
        버튼2
    </div>
</div>

관계 구조

  • .card.tab1

    • position: relative (기준 잡음)

    • overflow: hidden (sub_box1 삐져나오는 거 방지)

      ⬇ (자식)

  • .sub_box1

    • position: absolute (카드 덮음)
    • top: 0, left: 0, width: 100%, height: 100%
    • transform: translateY(120%) (처음에 아래에 숨겨둠)

동작 흐름

[ 평소 상태 ]
- .card.tab1 는 보인다.
- .sub_box1 은 translateY(120%)로 밑으로 내려가 숨어있다.


[ .tab1 에 마우스 hover 하면 ]
- .sub_box1 에 transform: translateY(0%) 적용 → 올라온다
- 동시에 opacity: 0.5 적용 → 반투명해진다

핵심

부모(.tab1) hover → 자식(.sub_box1) 올라오기 + 흐려지기

숨은 놈(sub_box1)한테 직접 hover 거는 거 아님. 부모(.tab1) 기준으로 hover 감지.


요약:

  • .tab1 = hover 감지
  • .sub_box1 = absolute 덮개
  • hover하면 sub_box1에 transform + opacity 먹이기

도식화 (그림 버전)

┌──────────────────────────────┐   ← .card.tab1 (부모, position: relative)
│                               │
│   ┌──────────────────────┐   │   
│   │                      │   │   
│   │    (카드 기본 내용)    │   │   
│   │  상품 이미지/배경 등   │   │   
│   │                      │   │   
│   └──────────────────────┘   │   

│   ┌──────────────────────┐   │   ← .sub_box1 (자식, position: absolute)
│   │                      │   │   
│   │   버튼1   버튼2       │   │   (처음엔 translateY(120%)로 밑에 숨어있음)
│   │                      │   │   
│   └──────────────────────┘   │   

└──────────────────────────────┘

흐름

단계 설명
평소 .sub_box1은 카드 안에 있지만 transform: translateY(120%)로 밑으로 숨겨져 있다
.tab1에 hover .sub_box1transform: translateY(0%)로 올라오고, opacity: 0.5가 적용된다
결과 카드 위에 반투명 레이어가 덮이고, 버튼 두 개가 보인다

[평소] 
카드 ▷ 보임
sub_box1 ▷ 숨겨져 있음

[hover]
카드 ▷ hover 감지
sub_box1 ▷ 위로 슬라이드 + 흐려짐