실무에 바로 적용할 수 있는 웹 제작 꿀팁 및 유용한 자료실 공간입니다.
나눔웹이 제공하는 핵심 노하우와 마케팅 인사이트를 자유롭게 활용해 보십시오.

나눔웹 모바일 꿀팁

모바일 hover 색상이 눌린 채 남을 때, @media (hover)로 해결하기

스마트폰에서 버튼이나 카드를 누르고 나면 마우스를 올렸을 때의 hover 색상이 그대로 남아 있는 현상은, hover 스타일을 @media (hover: hover) 안으로 옮기면 깔끔하게 해결됩니다.
PC에서는 기존 효과를 그대로 살리고, 터치 화면에서는 눌린 듯한 상태가 남지 않게 나누는 방법입니다.

💡 왜 손가락으로 눌렀는데 hover가 켜질까요?

터치 기기에는 마우스 커서가 없어서, 브라우저가 기존 사이트와의 호환을 위해 탭한 요소를 hover 상태로 간주합니다. 문제는 이 상태가 다른 곳을 탭하기 전까지 풀리지 않는다는 점입니다. 그래서 메뉴를 누르고 뒤로 돌아오면 그 항목만 색이 바뀐 채로 보이거나, 토글 버튼이 켜진 건지 꺼진 건지 헷갈리는 일이 생깁니다.

1. hover 스타일을 미디어 쿼리 안으로 옮기기

hover: hover는 "주 입력 장치가 마우스처럼 올려 놓을 수 있는가"를 묻는 조건입니다. 여기에 pointer: fine을 함께 걸면 정밀한 포인터가 있는 환경, 즉 일반적인 PC에서만 hover 효과가 적용됩니다. 크롬, 사파리, 파이어폭스, 삼성 인터넷 등 현재 쓰이는 브라우저는 모두 지원합니다.

/* 기존: 모든 기기에 적용 */
.btn:hover { background: #cc2b2b; }

/* 변경: 마우스 환경에서만 */
@media (hover: hover) and (pointer: fine) {
  .btn:hover { background: #cc2b2b; }
}

2. 터치 화면에는 :active로 눌림 반응 주기

hover를 빼면 모바일에서는 눌렀는지 알 수 있는 반응이 사라집니다. 이때는 손가락이 닿아 있는 동안에만 적용되는 :active를 쓰면 됩니다. 손을 떼면 바로 원래대로 돌아오기 때문에 색이 남지 않습니다. 키보드 사용자를 위해 :focus-visible 스타일도 따로 두는 것이 좋습니다.

.btn:active {
  transform: scale(0.98);
  opacity: 0.85;
}
.btn:focus-visible {
  outline: 2px solid #cc2b2b;
  outline-offset: 2px;
}

3. 적용 전에 확인할 점

실제 리뉴얼 작업에서 이 방식으로 바꿀 때 놓치기 쉬운 부분은 아래와 같습니다.

확인 항목이유
hover로만 열리는 메뉴모바일에서 아예 안 열릴 수 있음
터치 노트북, 태블릿주 입력 장치 기준으로 판단됨
CSS 파일 여러 곳의 :hover하나라도 남으면 증상 반복

드롭다운처럼 hover로만 열리던 기능은 클릭으로도 열리게 바꿔 둬야 합니다. 마우스와 터치를 함께 쓰는 기기까지 고려해야 한다면, "어느 입력 장치든 hover가 가능한가"를 보는 any-hover를 쓰는 방법도 있습니다. 변경 후에는 PC 브라우저의 모바일 모드만 믿지 말고 실제 아이폰과 안드로이드 폰에서 한 번씩 눌러 보는 것이 확실합니다.

"효과는 기기에 맞게 나눠야 제대로 보입니다."

나눔웹은 PC에서 보기 좋은 효과가 모바일에서는 오히려 불편을 주지 않는지,
실제 기기로 눌러 보며 확인하고 마무리합니다.


List of Articles
번호 분류 제목 글쓴이
14 모바일 모바일 키보드가 입력창을 가릴 때, visualViewport로 화면 맞추는 법 나눔웹
13 모바일 모바일 브라우저 상단바 색 맞추기, theme-color 메타 태그 쓰는 법 나눔웹
12 모바일 모바일 100vh 잘림, dvh·svh로 주소창 높이까지 맞추는 법 나눔웹
11 모바일 아이폰에서 숫자가 파란 전화 링크로 바뀔 때, format-detection으로 막는 법 나눔웹
10 모바일 모바일 가로 스크롤이 생길 때, 화면 밖으로 튀어나온 요소 찾아 고치는 순서 나눔웹
9 모바일 모바일 viewport 설정법, 화면이 작게 보이거나 확대가 막혔을 때 점검할 것 나눔웹
» 모바일 모바일 hover 색상이 눌린 채 남을 때, @media (hover)로 해결하기 나눔웹
7 모바일 모바일 문의 폼 자동완성이 안 뜬다면? autocomplete 값과 인증번호 자동 입력 나눔웹
6 모바일 앗, 실수로 새로고침! 튕기는 모바일 화면 꽉 잡는 법 (Overscroll) 나눔웹
5 모바일 하단 고정 버튼이 아이폰 '검은 줄'에 겹친다면? (Safe Area 대응법) 나눔웹
4 모바일 모바일 웹을 진짜 '앱(App)'처럼! 이미지 꾹 누를 때 뜨는 팝업 막기 나눔웹
3 모바일 아이폰에서 입력창 누를 때 화면 '자동 확대'되는 현상 막는 법 나눔웹
2 모바일 고객의 이탈을 막는 1초 디테일, '모바일 맞춤형 키보드' 세팅법 나눔웹
1 모바일 모바일 꽉 찬 화면 하단 짤림 현상! '100vh'의 함정과 완벽 해결법 나눔웹
Board Pagination Prev 1 Next
/ 1
rhwlsghkcocndgus XE2.1.39 STAGE1.5.4