PKSelect
  • Document
  • 프로젝트 개요
  • 프로젝트 준비
    • 개발환경 및 팀구성
    • 워크플로우
    • 사전조사 & 의사결정
      • 사전조사
      • 의사결정
        • 기능적 의사결정
        • 비기능적 의사결정
  • 프로젝트 설계
    • FRONTEND 설계 개요
      • FRONTEND 화면 흐름 및 동작
      • 콘텐츠 구성
        • Mainpage
        • Secondpage
      • 디자인 설계 의사결정
        • 디자인 컨셉 및 기능 정의
        • 컴포넌트 디자인
          • PC version
          • Mobile version
        • 로고결정
    • 시스템 구조 설계 개요
      • 시스템 흐름도 및 구조도
    • API Document
  • issue
    • FrontEnd
      • FrontEnd/Device classification issue
      • FrontEnd/cross browsing issue
    • BackEnd
      • BackEnd/lms_login_pw_issue
      • BackEnd/Circular Imports
    • Memo
  • 프로젝트 개발
    • FrontEnd
      • 페이지 UI
        • Mainpage
        • Loading page
        • SPA
        • Secondpage
          • Calendar
          • Table
            • 데이터 정렬
            • table
            • Button
              • 마감기한 지난 항목 삭제 <-> 확인 button
              • 과목 <-> 강의, 과제, 시험 button
              • 종강 D-day button
          • 피드백 이후 추가된 기능
      • 향후 개발 계획
    • BackEnd
      • Flask
        • PKSelecter/
        • controller/
        • app/
        • tests/
      • Server
        • AWS
        • Nginx + wsgi + Flask
        • (Sercurity) HTTPS
    • Prototype
  • 프로젝트 결과
    • 결과 보고
      • 개요
      • FrontEnd
      • BackEnd
      • PKSelect, Beta Service
      • 베타 서비스 설문조사
        • 서비스 사용성 평가
        • 베타 서비스 피드백
      • Google analytics 적용
      • 중간 발표 질문 정리
      • 최종 결과 보고
        • 피드백 적용 기능
Powered by GitBook
On this page

Was this helpful?

  1. issue
  2. FrontEnd

FrontEnd/Device classification issue

PreviousFrontEndNextFrontEnd/cross browsing issue

Last updated 3 years ago

Was this helpful?

사용자가 웹사이트에 접속을 할때 모바일, 태블릿, pc 등의 화면 크기에 따라 반응하는 반응형 웹을 시도해보고 싶었다. 그래서 우선 모바일로 접속하는지, pc로 접속하는 지를 구분하기 위해 미디어쿼리의 기능 중 @media (hover: hover)을 이용해서 컴포넌트의 배치 및 비율을 다르게 css를 구현했다.

@media (hover: hover){ };

하지만 모바일에서 접속했음에도 불구하고 갤럭시 10, 갤럭시 21, 갤럭시s10 등 갤럭시 유저들에게서 pc에서 설계된 디자인이 구현되는 것을 확인했다.

문제는 @media (hover: hover)에서 pc와 모바일을 제대로 필터링하지 못했다는 점이었다. 사용자가 기본 포인팅 장치를 사용해 특정 요소 위로 hover 할 수 있는 경우 hover:hover이 된다. 이때 기본 포인트 장치의 hover 기능의 가능 여부를 확인하는 것이기 때문에 모바일과 pc를 구분할 때 hover을 이용해서 구분하는 것이 가능하다고 판단을 했었는데 몇 모바일 기종에서 hover의 기능이 가능하다고 필터링이 되었다.

따라서 문제를 해결하기 위해 @media (pointer : fine)을 추가해서 pc와 모바일 구분 기준을 엄격화 시켰다. fine의 경우에는 기기에 마우스와 같이 정확한 포인팅 장치가 포함되어야 하며, 터치스크린 및 모션 감지 센서 같은 coarse와도 구분이 되기 때문에 더 정밀한 구분이 가능하였다.

@media (hover: hover) and (pointer: fine) { };