브라우저가 화면에 나타나는 요소를 렌더링 할 때, 웹킷(WebKit)이나 게코 (Gecko) 등과 같은 렌더링 엔진 을 사용합니다. 렌더링 엔진이 HTML, CSS, JavaScript로 렌더링할 때 CRP(Critical Rendering Path) 라는 프로세스를 사용하며 아래와 같은 단계들로 이루어진다.
display:none
속성과 같이 화면에서 보이지도 않고 공간을 차지하지 않는 것은 렌더트리로 구축되지 않습니다.<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="style.css" />
<title>테스트</title>
</head>
<body>
<div></div>
<script src="script.js"></script>
</body>
</html>
body {
background-color: red;
}
div {
width: 100px;
height: 100px;
background-color: blue;
}
document.querySelector('div').addEventListener('click', () => {
console.log('Click div');
});
위 로그를 보면 알 수 있는 것처럼 위에서 언급한 CRP가 진행되게 됩니다.