이 기사에서는 이전 브라우저를 계속 지원하면서 지금 그리드를 사용하는 방법을 보여줍니다.
2017 년 3 월까지 그리드 레이아웃에 대한 브라우저 지원은 사실상 존재하지 않았습니다. 인터넷 익스플로러와 엣지는 그리드를 지원하는 유일한 브라우저 였지만 그때조차도 -ms-
접두어 만 사용했습니다 . 게다가, 지원은 사실 이전 버전의 스펙이었습니다 (이전 스펙보다 많은 것들이 많이 변경되었습니다).
사실, 파이어 폭스, 크롬, 오페라는 그리드를 지원했지만, 오직 플래그 뒤에서 만 가능했다. ( layout.css.grid.enabled
파이어 폭스에서는,실험적인 웹 플랫폼 기능아래 chrome://flags
) 크롬과 오페라한다.
그러나 2017 년 3 월은 CSS 그리드 레이아웃에 매우 중요한 달이었습니다. 그리드 지원은 적어도 6 개의 주요 브라우저에서 거의 동시에 발표되었습니다. 새로운 기능의 이러한 유형의 동기화 된 롤아웃은 브라우저를 사용하기 전에 거의 발생하지 않았습니다. 나는 그리드 레이아웃이 곧 사라지지 않을 것이라고 우리에게 알려줄 것이라고 생각한다.
Caniuse.com 의 현재 상황에 대한 분석은 다음과 같습니다 .
좋은 소식은 이제 대부분의 주요 브라우저가 그리드를 지원한다는 것입니다.
나쁜 소식은 그리드를 지원하지 않는 브라우저를 사용하는 사람들이 아직도 많이 있다는 것입니다. 따라서 이러한 사용자는 새로운 멋진 그리드 레이아웃을 볼 수 없습니다.
다른 좋은 소식은 결국 그들이 따라 잡을 것이라는 것입니다.
그러나 그때까지는 프로덕션 사이트에서 그리드를 사용하려면 페일 오버를 사용해야하므로 그리드가 아닌 브라우저는 의도 한대로 (또는 가까이서) 웹 사이트를 계속 볼 수 있습니다.
기능 쿼리가있는 그리드 테스트
이전 브라우저를 지원하면서 그리드를 사용하는 가장 좋은 방법은 기능 쿼리를 사용하는 것입니다. 여기서 supports
at-rule을 사용 하여 브라우저가 그리드를 지원하는지 여부를 테스트합니다. 만약 그렇다면, 그리드 레이아웃을 사용하십시오. 그렇지 않으면 브라우저는 오래된 기술 (예 : 수레, 또는 ... 감히 말하면 테이블 ... )을 사용하여 빌드 된 레이아웃을 볼 것 입니다.
supports
규칙은 다음과 같이 작동합니다 :
이 코드는 매우 자명합니다. 나는 단순히 property: value
테스트하고 싶은 선언문을 제공했다 . 브라우저가 지정된 선언을 지원하면 중괄호 사이에서 코드가 실행됩니다. 그렇지 않으면 완전히 건너 뜁니다.
따라서이 작업을 수행 하려면 규칙 앞에 장애 조치 코드를 지정해야합니다 supports
. 이렇게 :
그렇게 하면 이전 코드로 모든 브라우저 를 설정 한 다음 supports
규칙 내에서 표 코드를 실행합니다 .
따라서 브라우저가 그리드를 지원하지 않으면 해당 코드를 건너 뛰고 이전 코드를 계속 사용합니다.
브라우저가 기능 쿼리를 지원하지 않으면 전체 supports
규칙 을 건너 뛰고 따라서 이전 코드가 사용됩니다.
'디자인 > HTML, CSS, JS' 카테고리의 다른 글
CSS 애니메이션 18가지 예제 (5) | 2019.01.02 |
---|---|
CSS Grid로 반응형 레이아웃 만들기 (0) | 2019.01.01 |
CSS 그리드로 어떻게 디자인하나요? (0) | 2019.01.01 |
CSS Grid Examples (1) | 2018.12.24 |
CSS[13] 그리드 인스펙터 사용하기 (0) | 2018.12.22 |
CSS[12] 눈금으로 절대 위치 지정 (0) | 2018.12.22 |
CSS[11] 그리드 항목 계층화 (0) | 2018.12.22 |
CSS[10] 그리드 정렬 (9가지) (0) | 2018.12.21 |
댓글