이전 브라우저에서 테이블을 표시하기위한 flexbox 폴백

user1937021

flexbox를 지원하지 않는 브라우저 만 대상으로 할 수 있도록 아래보다 더 좋은 방법이 있습니까? 나는 이것이 작동 할 수 있다고 생각하지만, 예를 들어 현대 브라우저에도 영향을 미칠 수있는 ie8 및 9에만 일부 스타일이 필요할 것입니다. 별도의 스타일 시트를 모두 만드는 것이 가장 좋을까요?

.flex{
  display:table;
  display:flex;

  .column{
    display:table-cell;
    display: inline-block;
  }
}

감사!

헥사리스

긴 대답은 복잡합니다. 좋은 점은 현재 사용중인 IE10 및 대부분의 구형 브라우저가 flexbox를 지원한다는 것입니다. 그러나 사양과 동작이 완전히 다른 오래된 구문입니다. flexbox 지원 표를 참조하십시오 . 또한 레거시 flexbox 스타일 생성 확인란이 활성화 된 상태 에서이 도구살펴 보거나 사용하여 관련 내용을 파악하는 것이 좋습니다. 사용하기에 상당히 교차 호환 가능한 CSS 구문을 제공합니다.

이전 브라우저와의 상호 호환성에 관심이있는 경우 * display:flex;단독으로 권장하지 않습니다. 이러한 이전 flexbox 접두사를 추가해야합니다. IE8 및 9의 경우 필요한 경우 실제로 IE8 데스크톱 브라우저를 대상으로하는 테이블 폴백을 사용할 수 있습니다. 다음 규칙 세트에 해당됩니다.

.flex-container {
  display: table;        /* IE < 10, Opera *Presto* Desktop (Now dead) */
  display: -webkit-box;  /* Safari 3.1 - 6, Chrome < 21 (2009 Spec), UCBrowser Android */
  display: -moz-box;     /* Firefox 2 - 27 (2009 Spec), UCMini Android */
  display: -ms-flexbox;  /* IE10 (2012 Syntax) */
  display: -webkit-flex; /* Safari 6.1 - 8, Android < 4.4, BB < 10, Chrome 21 - 28 */
  display: flex;         /* Edge 12+, Firefox 28+, Blink, Safari 9+, Opera Mini 8+ */
}

신규 및 기존 flexbox 사양 및 지원 의 주요 기능 차이점 flex-wrap. 따라서 많은 [ "flexbugs"] ( https://github.com/philipwalton/flexbugs ) 와주의해야 할 차이점 외에도 . 당신이 있다는 사실을 숙지 할 수 사용 flex-wrap하면 2,012 브라우저 또는 IE9을 넘어 광범위한 이전 버전과의 호환성을 원하는 경우.

* 대상 사용자가 아시아 또는 아프리카 -webkit-box에있는 경우 현재 새 구문을 지원하지 않는 Android 용 UCBrowser 모델 이 반드시 필요 합니다. (2016 년 현재, UCBrowser는 전 세계 모바일 브라우저 사용량의 10 % 이상, 아시아에서 25 % 이상을 차지합니다.) -moz-box이전 Firefox를 기반으로하는 UCMini에도 필요합니다 (사용 데이터 및 소재는 공개적으로 알려지지 않음).

플렉스 아이템 table-cell또는 table-row폴백을 위해. 특히 flexbox 중첩에서는 까다로워집니다.

그러나 다음과 같은 세 가지 옵션을 사용할 수 있습니다.

1) Modernizr 와 같은 스크립트로 기능 감지를 사용하십시오 . 그리고 Modernizr CSS 문서 스타일을 사용하여 JS 기능 감지를 통해 IE8-9 대체 규칙을 선언하십시오. 이렇게 :

html.no-flexbox .flex-item {
  display: table-cell;
}

2) IE CSS 조건부 스타일 사용 :

<!--[if lte IE 9]>
    <link rel="stylesheet" type="text/css" href="ie-8-9-fallbacks.css" />
<![endif]-->

또는

3) JS가 아닌 다른 방법은 CSS 해킹을 사용하는 것입니다 . 다른 브라우저에서는 무시되고 IE8-9에서만 구문 분석되고 적용되는 표시 값을 사용합니다.

함께 : a)

.flex-item {
  display: block;
  display: table-cell\0/; /*IE8-10 */
}

및 / 또는 : b)

@media \0screen\,screen\9 { /* IE6-10 and exclude FF2 */
  .flex-item { display: table-cell; }
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

폴백을 위해 브라우저에서 강제로 링크 열기

분류에서Dev

이전 IE에 대한 Addeventlistener 폴백

분류에서Dev

Javascript 정렬 콜백이 모든 브라우저에서 작동하지 않음

분류에서Dev

ydn indexeddb Android 기본 브라우저에서 데이터베이스 테이블을 볼 수 없음

분류에서Dev

와이드 브라우저에서 6 행을 달성 한 다음 Flexbox를 사용하여 모바일 너비에서 2 열, 3 행 달성

분류에서Dev

H2 데이터베이스가 브라우저에 테이블을 표시하지 않는 이유

분류에서Dev

브라우저에서 WCF 라이브러리 기능 사용

분류에서Dev

웹 페이지는 크기가 커진 글꼴을 표시하는 Android 브라우저를 제외한 모든 브라우저에서 잘 작동합니다.

분류에서Dev

브라우저 창이 아닌 Flexbox div에서 스크롤바 렌더링

분류에서Dev

중첩 된 Flexbox 컨테이너의 너비에 대한 다른 브라우저 동작

분류에서Dev

웹 브라우저에서 페이지를 표시하기 전에 호출 방법

분류에서Dev

퓨전 테이블-JavaScript를 사용하여 브라우저에서 API 호출-잡히지 않은 typeError

분류에서Dev

브라우저에 데이터 테이블을 표시하는 PHP로 XML의 문자열 처리?

분류에서Dev

전경으로 이동하지 않고 인형 브라우저를 백그라운드에서 실행하는 방법은 무엇입니까?

분류에서Dev

브라우저에서 실행될 때보기를위한 html 코드를 표시하는 spring-boot 애플리케이션

분류에서Dev

웹 사이트 표시 문제-모든 브라우저에서

분류에서Dev

브라우저에서 Laravel을 제공하는 Docker 컨테이너

분류에서Dev

기술 문의-서버에서 브라우저로 이미지 HTML 전송

분류에서Dev

클릭 X 브라우저 닫기와 jquery / javascript에서 뒤로 또는 이전 브라우저 버튼을 구별하십시오.

분류에서Dev

Docker / nginx [windows10]-링크 된 폴더의 페이지를 변경하고 브라우저에서 직접 변경 사항을 표시합니다.

분류에서Dev

셀레늄 웹 드라이버 크로스 브라우저 테스트에서 다른 브라우저를 열기 전에 Firefox 브라우저 호출을 중지하는 방법

분류에서Dev

NA가 발생하는 기간을 표시하기 위해 각 변수에 대한 테이블 구성

분류에서Dev

한 Chromium 기반 브라우저에서 다른 브라우저로 모든 확장을 내보내거나 백업 / 마이그레이션하려면 어떻게해야합니까?

분류에서Dev

서블릿의 HTML 양식이 브라우저에 표시됩니다.

분류에서Dev

이전 버전의 Nautilus에서 기본적으로 브라우저 모드를 시작하는 방법

분류에서Dev

Windows 버전의 브라우저에서 글꼴이 작동하지 않음

분류에서Dev

새 웹 사이트 버전을 게시 한 후 IE 11 / Windows Phone 브라우저에서 "이 페이지를 표시 할 수 없습니다."라고 말하면 다른 브라우저가 작동합니다.

분류에서Dev

HTML5 Geolocation이 Safari 브라우저에서 위치를 묻는 메시지를 표시하지 않음

분류에서Dev

asp.net을 사용하는 보고서 뷰어의 브라우저 너비에 따라 SSRS에서 테이블 너비 변경

Related 관련 기사

  1. 1

    폴백을 위해 브라우저에서 강제로 링크 열기

  2. 2

    이전 IE에 대한 Addeventlistener 폴백

  3. 3

    Javascript 정렬 콜백이 모든 브라우저에서 작동하지 않음

  4. 4

    ydn indexeddb Android 기본 브라우저에서 데이터베이스 테이블을 볼 수 없음

  5. 5

    와이드 브라우저에서 6 행을 달성 한 다음 Flexbox를 사용하여 모바일 너비에서 2 열, 3 행 달성

  6. 6

    H2 데이터베이스가 브라우저에 테이블을 표시하지 않는 이유

  7. 7

    브라우저에서 WCF 라이브러리 기능 사용

  8. 8

    웹 페이지는 크기가 커진 글꼴을 표시하는 Android 브라우저를 제외한 모든 브라우저에서 잘 작동합니다.

  9. 9

    브라우저 창이 아닌 Flexbox div에서 스크롤바 렌더링

  10. 10

    중첩 된 Flexbox 컨테이너의 너비에 대한 다른 브라우저 동작

  11. 11

    웹 브라우저에서 페이지를 표시하기 전에 호출 방법

  12. 12

    퓨전 테이블-JavaScript를 사용하여 브라우저에서 API 호출-잡히지 않은 typeError

  13. 13

    브라우저에 데이터 테이블을 표시하는 PHP로 XML의 문자열 처리?

  14. 14

    전경으로 이동하지 않고 인형 브라우저를 백그라운드에서 실행하는 방법은 무엇입니까?

  15. 15

    브라우저에서 실행될 때보기를위한 html 코드를 표시하는 spring-boot 애플리케이션

  16. 16

    웹 사이트 표시 문제-모든 브라우저에서

  17. 17

    브라우저에서 Laravel을 제공하는 Docker 컨테이너

  18. 18

    기술 문의-서버에서 브라우저로 이미지 HTML 전송

  19. 19

    클릭 X 브라우저 닫기와 jquery / javascript에서 뒤로 또는 이전 브라우저 버튼을 구별하십시오.

  20. 20

    Docker / nginx [windows10]-링크 된 폴더의 페이지를 변경하고 브라우저에서 직접 변경 사항을 표시합니다.

  21. 21

    셀레늄 웹 드라이버 크로스 브라우저 테스트에서 다른 브라우저를 열기 전에 Firefox 브라우저 호출을 중지하는 방법

  22. 22

    NA가 발생하는 기간을 표시하기 위해 각 변수에 대한 테이블 구성

  23. 23

    한 Chromium 기반 브라우저에서 다른 브라우저로 모든 확장을 내보내거나 백업 / 마이그레이션하려면 어떻게해야합니까?

  24. 24

    서블릿의 HTML 양식이 브라우저에 표시됩니다.

  25. 25

    이전 버전의 Nautilus에서 기본적으로 브라우저 모드를 시작하는 방법

  26. 26

    Windows 버전의 브라우저에서 글꼴이 작동하지 않음

  27. 27

    새 웹 사이트 버전을 게시 한 후 IE 11 / Windows Phone 브라우저에서 "이 페이지를 표시 할 수 없습니다."라고 말하면 다른 브라우저가 작동합니다.

  28. 28

    HTML5 Geolocation이 Safari 브라우저에서 위치를 묻는 메시지를 표시하지 않음

  29. 29

    asp.net을 사용하는 보고서 뷰어의 브라우저 너비에 따라 SSRS에서 테이블 너비 변경

뜨겁다태그

보관