이것은 여백을 사용하여 플렉스 갭을 에뮬레이트하기 위해 PostCSS를 사용하는 순수 CSS 폴리필입니다.
margin: auto
또는 background
사용할 때는 래퍼 div를 사용해야 합니다.실제 작동 중인 폴리필의 다양한 테스트 사례에 대한 데모 페이지를 확인하세요.
. container {
display : flex;
gap : 40 px ;
}
다음과 같이 됩니다:
/* Output simplified for purpose of example */
. container > * {
--fgp-parent-gap-row : 40 px ;
--fgp-parent-gap-column : 40 px ;
--fgp-margin-top : calc ( var ( --fgp-gap-row ) + var ( --orig-margin-top , 0 px ));
--fgp-margin-left : calc (
var ( --fgp-gap-column ) + var ( --orig-margin-left , 0 px )
);
margin-top : var ( --fgp-margin-top );
margin-left : var ( --fgp-margin-left );
}
. container {
--fgp-gap : var ( --has-fgp , 40 px );
--fgp-gap-row : 40 px ;
--fgp-gap-column : 40 px ;
--fgp-margin-top : calc (
var ( --fgp-parent-gap-row , 0 px ) - var ( --fgp-gap-row ) + var ( --orig-margin-top , 0 px )
);
--fgp-margin-left : calc (
var ( --fgp-parent-gap-column , 0 px ) - var ( --fgp-gap-column ) + var ( --orig-margin-left , 0 px )
);
display : flex;
gap : var ( --fgp-gap , 0 px );
margin-top : var ( --fgp-margin-top , var ( --orig-margin-top ));
margin-left : var ( --fgp-margin-left , var ( --orig-margin-left ));
}
폴리필은 각 하위 요소에 여백을 추가하고 컨테이너에 음수 여백을 적용하여 플렉스 갭을 에뮬레이트합니다.
display: flex
및 gap
동일한 규칙에 사용됩니다(최적화 방법은 옵션 참조).margin: auto
또는 background
사용하는 경우 제외).gap
, row-gap
및 column-gap
지원 Edge, Firefox, Chrome, Safari, Opera( calc()
및 var()
를 지원하는 모든 브라우저) 등 현재의 모든 최신 브라우저를 지원합니다.
프로젝트에 Flex Gap Polyfill을 추가합니다.
npm install flex-gap-polyfill postcss --save-dev
Flex Gap Polyfill을 사용하여 CSS를 처리하세요.
const flexGapPolyfill = require ( "flex-gap-polyfill" ) ;
flexGapPolyfill . process ( YOUR_CSS /*, processOptions, pluginOptions */ ) ;
또는 PostCSS 플러그인으로 사용하세요:
const postcss = require ( "postcss" ) ;
const flexGapPolyfill = require ( "flex-gap-polyfill" ) ;
postcss ( [ flexGapPolyfill ( /* pluginOptions */ ) ] ) . process (
YOUR_CSS /*, processOptions */
) ;
only
유형 : 배열 기본값 : 정의되지 않음
true
폴리필이 display: flex | inline-flex
와 gap
동일한 규칙에 사용됩니다. 추가 규칙과 일치하도록 선택기 배열을 제공합니다. strings
또는 regexes
일 수 있습니다. 폴리필을 수동으로 적용하려면 규칙 내에 /* apply fgp */
포함하세요.
flexGapNotSupported
유형 : 문자열 기본값 : false
JavaScript를 통한 감지가 플렉스 갭을 지원하지 않을 때 사용할 선택기를 수동으로 지정합니다(예: flexGapNotSupported: '.flex-gap-not-supported'
.
webComponents
유형 : 부울 기본값 : false
true
폴리필이 슬롯형 요소도 대상으로 삼는 경우