touchstart
-> touchmove
-> touchend
-> mouseover
-> mousemove
-> mousedown
-> mouseup
-> click
mousedown
-> 다른 요소의 blur
-> focusin
-> mouseup
-> click
https://www.w3.org/TR/mediaqueries-4/ 에서 추가 됨
https://paperblock.tistory.com/164
css에서 :hover를 사용해서 적용하면 마우스 오버했을때와, 모바일에서 터치했을 때 효과가 적용된다.
하지만 모바일에서는 추가적으로 다른 곳을 터치하지 않는 이상 hover 효과가 지속되어 생각한대로 적용되지 않는 문제가 발생한다.
아래 코드를 사용하면 디바이스 pointer로 hover가 가능한 경우에만 스타일을 적용한다.
@media (hover: hover) {
a:hover {
background-color: skyblue;
}
}
반대로 아래 코드를 사용하면 hover가 되지 않는 디바이스에서의 스타일을 따로 줄 수 있다.
@media (hover: none) {
/* styles... */
}
https://developer.mozilla.org/en-US/docs/Web/CSS/@media/pointer
none
: 포인팅 장치가 없음
coarse
: 기본 장치가 터치스크린이나 키넥트처럼 정확도는 높지 않지만 포인팅 가능
fine
: 기본 장치가 마우스나 터치 패드처럼 정확한 포인팅 가능
ex.
@media(hover: hover) and (pointer: fine) {
// 마우스 기기 스타일
}
https://time2hack.com/can-i-use-hover-on-touch-devices/
여러 포인팅 장치 중 적어도 하나가 해당 특성을 만족하면 해당 기능 지원한다고 판단
가능한 모든 장치를 고려하기 위해서라면 any-* 미디어 쿼리 사용
지원범위 : https://caniuse.com/mdn-css_at-rules_media_any-hover
IE 지원 X
https://23life.tistory.com/m/159
a 태그영역 롱클릭 시 모바일 사파리 브라우저에서는 링크 미리보기창이 띄워짐 (브라우저 기본 설정)
https://rrecoder.tistory.com/m/230
인앱 브라우저에서 long press ( long click)를 막는 방법
https://stackoverflow.com/questions/15764311/how-to-disable-long-click-on-webview-in-android
CSS 설정으로 해결 가능
body {
-webkit-touch-callout: none;
}
-webkit-touch-callout
long press 시 표시되는 기본 설명 표시 제어
iOS / Safari에서는 defaut로 기본 설명을 표시하기 때문에 off하려면 비활성화 해야 합니다.
-webkit-user-select
user가 text를 선택할 수 있는지 여부
* { -webkit-tap-highlight-color: rgba(255,255,255,0); } // alpha:0만 의미 있음
// rgba 대신 transparent를 지정하는 방법도 있으나 이건 iOS만 지원?
이미지등 영역에도 적용
a링크 영역까지만 적용
https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-tap-highlight-color
https://doqtqu.tistory.com/355
앵커 영역이 기본으로 가지고 있는 속성 값임
ex.
반대로 다른 태그에서 아래 속성 적용하면 롱클릭 시 하이라이팅 처리 가능
// a태그가 기본적으로 가지는 하이라이팅 효과 제거
-webkit-tap-highlight-color: transparent;
// 안드로이드의 경우
outline:none;
-webkit-tap-highlight-color: rgba(0,0,0,0);
a태그 외 div에서는 css 적용 안됨?
지원 범위 : https://caniuse.com/?search=-webkit-tap-highlight-color
참고 : https://min-ji07.tistory.com/entry/webkit-tap-highlight-color
long press context
https://stackoverflow.com/questions/12304012/preventing-default-context-menu-on-longpress-longclick-in-mobile-safari-ipad
ios safari 설정
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=gkrwja88&logNo=221602098859
유투브
인스타그램
아마존
구글