POSTCSS-FlexBox로 복잡한 레이아웃을 빌드

Sep 11, 2025
어떻게

FlexBox는 CSS 부실을 줄이는 훌륭한 도구이며 소스 주문 및 정렬과 같은 것들을 다루기 위해 설탕이 내장되어 있습니다. 그러나 컬럼과 거터 크기를 만드는 수학을 수행하는 데 도움이되지 않습니다. 많은 전문가들이 반복적으로 주 : Flexbox가 멋지지만 그리드 시스템이 아닙니다.

우리는 FlexBox를 사용해야하지만 디자인의 '지오 시대'에서 우리를 끌어 당긴 그리드 시스템 뒤에 기본 개념을 버려서는 안됩니다.

  • 컬럼을 무언가에 비례하십시오
  • 디자인 전체에서 일관된 구강대를 사용하십시오

우리는 많은 FlexBox 그리드 시스템 중 하나를 사용할 수 있지만 모든 정직에서는 이들 뒤에있는 스타일은 주로 플로트 기반 그리드와 동일합니다. 저자는 FlexBox 등록 정보 (예 : 같은 클래스와 같은 클래스와 같은 클래스와 같은 클래스와 같은)를 난독 한 일부 도우미 클래스와 함께 컨테이너에 표시하기 만하면됩니다. .Grid-Vertical-Align-Mid. 난독 화이다 정렬 항목 : 센터 짐마자

유일한 차이점은 이제 열이 '굴곡'되어 있습니다. 즉, 우리는 앞서 언급 한 설탕을 얻습니다. 그러나 이것은 여전히 ​​그리드가 직면 한 주요 문제를 해결하지 못합니다. 그리드 시스템은 여전히 ​​CSS 부실의 톤을 출력하고 그리드는 여전히 지루합니다.

  • 25 최고급 웹 사이트 템플릿

그리드의 문제

System bloat: Bootstrap’s generated CSS for the grid alone is 16,435 characters – most of which you’ll never use

시스템 Bloat : BootStrap의 그리드만으로 생성 된 CSS 만 16,435 자입니다. 대부분은 사용하지 않을 것입니다.

그리드 작성자는 일반적으로 일부 임의의 장치 크기에 따라 오프셋, 소스 주문, 정렬 및 크기를 조정할 수있는 CSS의 거대한 CSS를 배포합니다. 그들은 그 손상의 일부를 완화하기 위해 GZIP에 의존하지만, 이것은 모든 것을 얻지 못합니다. 그 여분의 기능이 필요하지 않으면 어떻게해야합니까?

현재 사용중인 프레임 워크가 그리드 믹스를 제공한다고 가정하면 최상의 솔루션은 자신의 열을 배우고 자신의 열을 작성하는 것일 수 있습니다. 이것은 거의 부 풀리지 만 그리드를 분수로 제한하고 다른 프레임 워크간에 많은 이동성을 제공하지 않습니다.

두 번째 문제로. 디자이너는 정신적으로 크기가 똑같이 크기 조합을 기반으로 모든 결정을 내리는 데 정신적으로 잠겨있었습니다. 결과적으로 전체 인터넷은 모바일의 스택으로 함께 흐려지기 시작합니다. 1/12 다른 것의 컬럼 조합은 'Dystopia.

FlexBox가 ​​소개되었습니다 플렉스 - 자라 , 우리는 우리에게 조금 벗어났습니다. 이제 우리는 늘어나는 요소가있는 나머지 공간을 잘 보이고 나머지 공간을 채우는 크기를 설정할 수 있지만 지속적으로 페이지 전체에서 일관되게 줄 수 있습니까? 어떤 종류의 비율을 염두에두고있는 콘텐츠 구역이 있거나 우리는 그냥 날개를 찍는 것입니다.

용을 입력하십시오

이 두 문제 모두에 대한 해결책은 PostCSS-Ant라는 함수로 래핑됩니다. Postcss Plugins는 Webpack, Gulp 또는 단순히 명령 줄과 같은 다양한 빌드 도구와 함께 사용할 수 있습니다. Ant는 수십 개의 마음을 괴롭히는 죄수의 간단한 API가있는 일반적인 CSS (또는 모든 프리 프로세서)로 원활하게 섞는다. 칼슘 방식. 그리드 친화적 인 크기의 플로토를 가져 오는 두 개의 믹스 형 매개 변수가 필요합니다.

예제를 사용하면 다음과 같이하십시오. 폭 : 크기 (1/2) get (1) 보고 Calc (99.99 % * 1/2 - (30px - 30px * 1/2)) ...에 이걸 해제하자.

  • 크기 () 크기의 공백으로 구분 된 목록입니다. 이들은 유효한 CSS 길이의 형태로 고정 된 숫자의 다양한 크기의 조합 일 수 있습니다 ( px. , 여자 이름 , 비율 ); 분수 또는 부동 번호 (남은 숫자, SAN 고정 숫자가 무엇이든 반송); 과 자동으로 키워드 (모든 크기가 왼쪽에 반환, SAN 분수 및 고정 숫자)
  • 당기기() 목록에서 그리드 친화적 인 크기를 가져 오는 1 기반 인덱스입니다. 그래서 크기 (1px 2px 3px) get (2) 돌아올거야 2px.
  • 그만큼 칼슘 수식은 그리드 친화적 인 크기입니다

우리는 이들 사이에 단일 30px 거터가있는 2 열 격자의 각 열에 대한 너비를 얻습니다.

.Grid {
  디스플레이 : 플렉스;
  플렉스 랩 : 랩;
}

.half {
  너비 : 크기 (1/2) get (1); / * alc (99.99 % * 1/2 - (30px - 30px * 1/2)) * /
  마진 오른쪽 : 30px; / * 각 컬럼의 오른쪽에 거터를 놓습니다 * /
}

.half : n 번째 자식 (2N + 2) {/ * 2 번째 요소에서 시작하여 2s로 계산하기 시작합니다 * /
  마진 오른쪽 : 0; / * 모든 행에서 마지막 거터를 제거합니다 * /
} 

이것은 이미 디자이너 가이 크기를 사용할 수있는 힘을 제공하지만 다이빙을 깊게합니다.

크기 (100px 1/2) get (1) 보고 100px. ...에 충분히 간단하지만, 왜 우리는 개미를 사용하여 반환해야합니까? 100px. ~을 빼앗아가는 것 우리는 잠시 후에 그것이 될 것입니다.

크기 (100px 1/2) get (2) 보고 CALC ((99.99 % - (100px + (30px * 1))) * 1/2 - (30px - 30px * 1/2)) ...에 이런 세상에. 개미는 고정 숫자의 총 크기를 찾은 다음 반환합니다. 1/2. n 번째 그리드 친화적 인 방법으로 남아있는 모든 것이 무엇이든간에

우리는 이것들을 사용할 수 있습니다 칼슘 A.와 그리드를 만들 수있는 수식 100px. 열과 두 1/2. 그럼 같은 열 (나는 그것을 생략 할 것이다 .그리드 트리를 저장하는 스타일은 코드에 포함해야합니다.) :

. {
  너비 : 크기 (100px 1/2) get (1); / * 100px를 반환합니다 (나는 그것이 어리석은 것처럼 보이지만 조금 더 오래 곰을 낳는다) * /
  마진 오른쪽 : 30px;
}

.half {
  너비 : 크기 (100px 1/2) get (2); / * alc ((99.99 % - (100px + (30px * 1))) * 1/2 - (30px - 30px * 1/2)) * /
  마진 오른쪽 : 30px;
}

.half : nth-child (3N + 3) {
  마진 오른쪽 : 0;
} 

이제 우리는 이전에 불안정한 크기를 얻을 수 있지만 아직 슈퍼 유연성이 아닙니다. 많은 크기를 다룰 때 많은 글을 필요로 할 수 있습니다.

전 처리기 루핑

Minimal markup: A minimal markup, two-column, nth grid using postcss-ant. Notice how there is no margin-right on the last element in the row

최소 마크 업 : Postcss-Ant를 사용하는 최소한의 마크 업, 2 열, N 번째 그리드. 행의 마지막 요소에 마진이 오른쪽에 있는지 확인하십시오.

전처리 자 및 우체자는 항상 맞춤 구문이 관련 될 때 - 특히 함께 할 수 없습니다. 운 좋게도, 개미의 API는 전복 친화적입니다. 우리는 PACTCSS-SCSS와 같은 POSTCSS-PARSER를 PRECSS 플러그인으로 사용할 수 있지만이 접근 방식은 SASS의 기능이 저하되지 않는 많은 미완성 / 미숙 한 우체용 플러그인을 사용합니다. 나는 최선의 워크 플로가있는 것을 발견했습니다 :

  • Node-Sass와 같은 빠른 전 처리기를 사용하여보기 in.scss. ...에 out.csss.
  • 포스트를 사용하여 시청하십시오 out.csss. ...에 FINAL.CSS.
  • & lt; 링크 & gt; ...에 FINAL.CSS. 당신의 마크 업에서

이렇게하면 모든 젖꼭지 플러그인이있는 모든 Preprocessor 구문을 최상으로 제공합니다.

이제 시원한 물건을 위해. 전처리자는 일반적으로 반복자를 제공하면서 지정된 횟수를 반복 할 수있는 방법이 있습니다.

 @For $ i에서 1까지에서 3 {
  내용 : $ i; // 내용을 반환합니다. 1; 내용 : 2; 내용 : 3;
} 

전 처리기에 대한 조금 지식을 가지고, 당신은 정말로 흥미로운 방식으로 개미를 사용할 수 있습니다 ...

 $ 크기 : 100px 1/2 1/2;
$ gutter : 30px;
$ 길이 : 길이 ($ 크기);

.Column {
  마진 오른쪽 : $ gutter;

  @for $ i에서 1까지 $ 길이 {
    & amp; : n 번째 자식 (# {$ 길이} n + # {$ i}) {
      너비 : 크기 ($ 크기) get ($ i) 거터 ($ gutter);
    }
  }

  & amp; : n 번째 자식 (# {$ 길이} n + # {$ 길이}) {
    마진 오른쪽 : 0;
  }
} 

이제 우리의 불규칙한 크기의 열은 추가 마크 업없이 새로운 행으로 랩됩니다. 이 코드로 주위를 앞두고 땜납니다. 다양한 크기, 거터 및 새 크기를 추가하며 새 크기를 추가하십시오 (예 : 100px Auto 100px).

이것은 개미가있는 꽤 일반적인 패턴이므로 바닐라 CSS와 함께 작동하는 속성으로 포장했습니다.

. 그리드 {
  생성 - 그리드 : 크기 (100px 1/2 1/2); / * 추가 ​​옵션을 전달할 수 있지만 뽑기 ()는 더 이상 필요하지 않습니다. * /
} 

많은 옵션이 있습니다

Preprocessor loops: ant really begins to show its strength when we combine it with preprocessor loops to create layouts that used to be impossible

전 처리기 루프 : 개미는 전 처리기 루프와 결합하여 불가능한 레이아웃을 만들 때 그 힘을 보여주기 시작합니다.

N 번째 그리드는 전달할 요소의 크기와 수를 알고있을 때 훌륭하지만 때로는 컨테이너를 만들고 무작위로 크기의 요소를 덤프하려는 경우가 있습니다. 이 경우, 부정적인 마진 그리드는 최선의 방법입니다. 간단히 합격 부정적인 마진 개미처럼 :

.Grid {
  마진 : 0 -15px;
}

.Column {
  너비 : 크기 (1/3) get (1) 그리드 (음수 - 여백);
  마진 : 0 15px;
} 

결론

이 예들은 모든 시원한 것들에서 작은 엿볼 수 있습니다. 그것은 몇 가지 선택적 매개 변수와 많은 설명적인 오류 처리가 있지만 개미의 진정한 힘은 당신입니다.

단순히 약간의 데이터를 반환하는 '벙어리'도구는 항상 전원을 개발자의 손에 다시 넣을 때 최상의 도구입니다. 그것이 가장 일하고있는 우편물이었습니다. 네가 흥미가 있다면, corysimmons.github.io/postcsssss. 약간의 얼굴을 녹이는 데모와 달콤한 문서가 있습니다.

이 기사는 원래 Net Magazine의 286 호에 발표되었습니다. 여기 구입하십시오.

관련 기사:

  • 왜 웹 디자인이 UX 전문가가 필요합니까?
  • 크리스마스 2016을위한 10 개의 최고 웹 디자인 책
  • 3 웹 성능 테스트를위한 3 가지 top 도구

어떻게 - 가장 인기있는 기사

혼합 미디어 아트 튜토리얼 : 디지털 아트웍을 수채화시키는 방법

어떻게 Sep 11, 2025

(이미지 크레딧 : 나오미 Vandoren) 독립적 인 예술가로서, 나는 완성 된 그림의 만족만큼 �..


더 나은 3D 세계 환경을 구축하는 10 가지 방법

어떻게 Sep 11, 2025

[이미지 : Albert Valls Punsich] 3D 아티스트로 게임 맨 위에 머물러 있으려면 지금마다 기술을..


Procreate 자습서 : 새로운 도구 탐색

어떻게 Sep 11, 2025

내가 처음 발견되었을 때 나는 디지털 방식으로 페인트 할 수있게 해주는 휴대용 장치를 갖는 아�..


Photoshop에서 강한 포즈를 사용하여 문자를 만듭니다

어떻게 Sep 11, 2025

과장된 남성 문자를 만드는 것은 과장에 관한 모든 것, 모양, 재미, 모션 및 카메라 각도를 한계에..


오일에서 초상화를 칠하십시오

어떻게 Sep 11, 2025

배우기 페인트하는 방법 초상화는 쉽지 않지만, 당신이 당신의 도중에 당신을 도울 수..


확장 가능한 응답 성분 빌드

어떻게 Sep 11, 2025

우리가 유지 보수가 가능하고 확장 가능한 웹 사이트 건물에 대해 이야기 할 때마다 필연적으로 ..


블렌더에서 멋진 Tileable 텍스처 만들기

어떻게 Sep 11, 2025

페이지 1 / 2 : 페이지 1 페이지 1 ..


양식화 된 리얼리즘으로 문자 만들기

어떻게 Sep 11, 2025

튀김 일 런던의 VFX에서의 하루 일자리와 함께 Henning Sanden 및 Morten Jaeger의 사이트가 운영�..


카테고리