본문 바로가기
Front-End/CSS

Window : devicePixelRatio

by sharekim 2025. 3. 31.
window 객체 내 devicePixelRatio 속성은 CSS의 1px 이 디스플레이 기기에서 표시되는 비율을 반환한다

 

CSS 의 1px 은 디스플레이 기기에 따라 1px 로 표현될 수도 그 이상으로 표현될 수도 있다.

 

표준 해상도인 96 DPI 에서는 1을 return 하고 Retina 와 같은 고해상도 디스플레이의 경우 2를 반환한다.

디스플레이 기기가 연결되어 있지 않은 경우 1을 반환한다. (관련 링크)

 

window.matchMedia() 함수를 사용해서 아웃풋 기기(디스플레이 기기)의 Ratio 가 변경되었는지 감지하고 대응할 수 있다.

아래는 MDN Example 코드

let remove = null;
const output = document.querySelector("#output");

const updatePixelRatio = () => {
  if (remove != null) {
    remove();
  }
  const mqString = `(resolution: ${window.devicePixelRatio}dppx)`;
  const media = matchMedia(mqString);
  media.addEventListener("change", updatePixelRatio);
  remove = () => {
    media.removeEventListener("change", updatePixelRatio);
  };

  output.textContent = `devicePixelRatio: ${window.devicePixelRatio}`;
};

updatePixelRatio();

 

참고

https://developer.mozilla.org/en-US/docs/Web/API/Window/devicePixelRatio#examples

'Front-End > CSS' 카테고리의 다른 글

scroll-behavior  (0) 2024.07.08
브라우저 기본 CSS 스타일 초기화 : Reset CSS  (0) 2024.07.07
Parallax scrolling : Javascript VS CSS 구현  (0) 2024.07.06
CSS perspective  (0) 2024.07.06