찾다
웹 프론트엔드CSS 튜토리얼CSS 성능 최적화 참고 사항

CSS 성능 최적화 참고 사항

Nov 10, 2016 pm 03:45 PM
css3CSS3 애니메이션

모바일 프로젝트에서 인턴을 할 때 애니메이션 효과를 구현했는데, 아이폰과 크롬에서는 디버깅하는데 문제가 없었는데, 1000위안 정도 되는 안드로이드 기기에서 테스트를 해보니 큰 문제가 있었습니다. . 시차가 매우 뚜렷해서 알 수 없었습니다. 피를 토하고 사망했습니다.

이 슬픈 이야기는 이 기사의 서문입니다. 저는 CSS가 사용자 경험에 매우 명백한 영향을 미치고, 약간의 부주의가 큰 함정으로 이어질 수 있다는 것을 진심으로 이해합니다. 다음으로 CSS 성능 최적화에 대해 이야기해 보겠습니다.


로딩 성능

  • 파일 크기 감소, 코드 압축

  • 블로킹 감소 감소 , 동시성 향상을 위해 import

  • 를 사용하지 마세요(이건 잘 이해가 안 되네요)

선택기 성능


전체 성능에 미치는 영향은 미미하지만 표준화, 유지 관리성 및 견고성에 중점을 두는 선택자입니다. 구현 방법에 대한 자세한 내용은 Github에서 공유한 Jon Rohan의 GitHub CSS 성능을 참조하세요. 가장 중요한 관심 대상입니다. 먼저 브라우저의 렌더링 메커니즘을 이해해 보겠습니다.

브라우저 렌더링 메커니즘

브라우저 렌더링 및 웹 페이지 표시 프로세스는 대략 다음 단계로 나뉩니다.


1. HTML 구문 분석( HTML 파서)

2. DOM 트리 구축(DOM Tree)

3. 렌더 트리 구축(렌더 트리)

4. 렌더링 트리 페인트(Painting)

비용이 많이 드는 스타일을 신중하게 선택하세요.

어떤 CSS 속성이 비용이 많이 들까요? 그리기 전에 브라우저가 많은 계산을 수행하도록 요구하는 속성입니다.

CSS 성능 최적화 참고 사항

상자 그림자

경계 반경

  • 투명도

  • 변환

  • CSS 필터(성능 킬러)

  • 과도한 리플로우 방지(Reflow)

  • 리플로우에 대한 간략한 설명: 요소가 변경되면 문서 내용이나 구조, 요소의 위치에 영향을 미칩니다. 이 프로세스를 리플로우라고 합니다.

Reflow 줄이는 방법

1. DOM 스타일을 하나씩 수정하지 말고, 클래스를 미리 정의하고, 그런 다음 DOM className

을 수정합니다. 2. 오프라인 상태가 된 후 DOM을 수정합니다. 예를 들어 먼저 DOM에 display:none(한 번의 리플로우 사용)을 부여한 다음 100번 수정한 다음 표시합니다. CSS 성능 최적화 참고 사항

3. 루프에 DOM 노드의 속성값을 변수로 넣지 마세요

4. 영향 범위가 큰 DOM을 수정하지 마세요

5. 애니메이션 요소에는 절대값 사용 위치 절대/고정

6. 테이블 레이아웃을 사용하지 마세요. 작은 변경으로 인해 전체 테이블이 다시 레이아웃될 수 있습니다

과도한 다시 그리기를 피하세요

요소가 변경되면 페이지의 요소 위치(예: 배경색, 테두리 색상, 가시성)에는 영향을 미치지 않습니다. 브라우저만 적용됩니다. 요소를 다시 그리는 새로운 스타일을 Repaint라고 합니다.

애니메이션 최적화

CSS3 애니메이션은 최적화의 최우선 과제입니다. 위의 두 가지 사항인

리플로우와 리페인트 줄이기

외에도 다음 사항에도 주의해야 합니다. CSS 성능 최적화 참고 사항

GPU 하드웨어 가속 활성화

GPU(그래픽 처리 장치)는 이미지 프로세서입니다. GPU 하드웨어 가속이란 GPU의 그래픽 성능을 적용하여 브라우저의 그래픽 작업 일부를 GPU에 넘겨 완료하는 것을 말합니다. GPU이기 때문입니다. 특별히 설계된 그래픽 처리용으로 설계되어 속도와 에너지 소비 측면에서 더 효율적입니다. GPU 가속은 3D뿐만 아니라 2D에도 적용할 수 있습니다. 여기서
GPU 가속에는 일반적으로 Canvas2D, Layout Compositing, CSS3 전환(transitions) , CSS3 3D 등의 부분이 포함됩니다. , WebGL동영상을 변환합니다.

/*
 * 根据上面的结论
 * 将 2d transform 换成 3d
 * 就可以强制开启 GPU 加速
 * 提高动画性能
 */div {  transform: translate(10px, 10px);}div {  transform: translate3d(10px, 10px, 0);}
하드웨어 가속을 켜면 추가 오버헤드도 발생한다는 점에 유의해야 합니다. CSS 하드웨어 가속의 장점과 단점

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
두 개의 이미지와 API : 제품을 다시 칠하는 데 필요한 모든 것두 개의 이미지와 API : 제품을 다시 칠하는 데 필요한 모든 것Apr 15, 2025 am 11:27 AM

최근에 제품 이미지의 색상을 동적으로 업데이트하는 솔루션을 찾았습니다. 따라서 제품 중 하나만 사용하여 다른 방식으로 색칠 할 수 있습니다.

주간 플랫폼 뉴스 : 제 3 자 코드, 수동 혼합 콘텐츠, 가장 느린 연결이있는 국가의 영향주간 플랫폼 뉴스 : 제 3 자 코드, 수동 혼합 콘텐츠, 가장 느린 연결이있는 국가의 영향Apr 15, 2025 am 11:19 AM

이번 주에 라운드 업, Lighthouse는 타사 스크립트에 빛을 비추고 불안한 자원이 안전한 사이트에서 차단되고 많은 국가 연결 속도가 차단됩니다.

직접 비자 스크립트 기반 분석을 호스팅하는 옵션직접 비자 스크립트 기반 분석을 호스팅하는 옵션Apr 15, 2025 am 11:09 AM

사이트에서 방문자 및 사용 데이터를 추적하는 데 도움이되는 분석 플랫폼이 많이 있습니다. 아마도 널리 사용되는 Google 웹 로그 분석

그것은 모두 헤드에있는 모든 것 : React Helmet과 함께 React 전원 사이트의 문서 헤드 관리그것은 모두 헤드에있는 모든 것 : React Helmet과 함께 React 전원 사이트의 문서 헤드 관리Apr 15, 2025 am 11:01 AM

문서 헤드는 웹 사이트에서 가장 화려한 부분이 아닐 수도 있지만 웹 사이트의 성공에 중요합니다.

JavaScript의 Super () 란 무엇입니까?JavaScript의 Super () 란 무엇입니까?Apr 15, 2025 am 10:59 AM

Super ()?를 호출하는 JavaScript를 볼 때 어떤 일이 발생 하는가. 아동 클래스에서는 Super ()를 사용하여 부모의 생성자와 Super를 호출합니다. 그것의 접근

다양한 유형의 기본 JavaScript 팝업 비교다양한 유형의 기본 JavaScript 팝업 비교Apr 15, 2025 am 10:48 AM

JavaScript에는 사용자 상호 작용을위한 특수 UI를 표시하는 다양한 내장 팝업 API가 있습니다. 뛰어나게:

액세스 가능한 웹 사이트를 구축하기가 어려운 이유는 무엇입니까?액세스 가능한 웹 사이트를 구축하기가 어려운 이유는 무엇입니까?Apr 15, 2025 am 10:45 AM

나는 다른 날에 많은 회사들이 액세스 가능한 웹 사이트를 만드는 데 어려움을 겪고있는 이유에 대해 다른 프론트 엔드 사람들과 대화를 나누고있었습니다. 액세스 가능한 웹 사이트가 왜 그렇게 어려운가

'숨겨진'속성은 눈에 띄게 약합니다'숨겨진'속성은 눈에 띄게 약합니다Apr 15, 2025 am 10:43 AM

당신이해야 할 일을 정확하게 수행하는 HTML 속성이 있습니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기