찾다
웹 프론트엔드CSS 튜토리얼디자인 모형 일치하는 일부 CSS 그리드 전략

디자인 모형 일치하는 일부 CSS 그리드 전략

웹 개발의 세계는 항상 설계-개발 핸드 오프 사이에 차이가있었습니다. 야심 찬 디자이너는 독특하고 아름답게 보이려는 노력의 최종 결과를 원하지만 많은 개발자는 일관되고 신뢰할 수 있으며 견고하고 견고한 (및 코드가 쉽게) 결과에서 더 많은 가치를 찾습니다. 이 역학은 양측 사이에 지속적인 긴장을 초래할 수 있습니다. 양 당사자는 자신의 방식으로 물건을 조종하려고합니다.

이 상황은 어느 정도 피할 수 없지만 새로운 프론트 엔드 기술은 양측을 더 가깝게 만드는 데 중요한 역할을 할 수 있습니다. 그러한 기술 중 하나는 CSS 그리드입니다. 이 게시물은 디자인 레이아웃을 높은 수준의 충실도 (두통없이)에 맞추는 CSS 스타일을 작성하는 데 사용될 수있는 방법을 탐구합니다.

디자이너가 프론트 엔드 개발자에게 지침을 제공하는 일반적인 방법은 디자인 모형입니다 (모형으로는 스케치, XD, 일러스트 레이터, Photoshop 등에 구축 된 결과물에 대해 이야기하고 있습니다). 모든 디자이너는 개발자와 마찬가지로 어느 정도 다르게 작동하지만 많은 사람들은 어떤 종류의 그리드 시스템에 레이아웃의 구조를 기반으로하는 것을 좋아합니다. 일관된 그리드 시스템은 웹 페이지를 코딩하는 방법과 사용자 화면의 크기가 모형과 다른 경우 응답 방법을 통신하는 데 매우 중요합니다. 개발자로서, 나는 잘 생각 된 그리드 시스템을 채택하는 데 어려움을 겪는 디자이너들에게 정말 감사합니다.

12 열 레이아웃은 특히 인기가 있지만 다른 패턴도 일반적입니다. Sketch 및 XD와 같은 소프트웨어는 사전 설정 열 레이아웃을 따르는 페이지를 만들 수 있습니다. 버튼 클릭으로 오버레이를 켜고 끌 수 있습니다.

그리드 시스템이 구현되면 대부분의 설계 요소는 그 안에 정사각형으로 배치되어야합니다. 이 접근법은 모양이 고르게 줄을 서서 더 매력적인 외관을 만듭니다. 예측 가능한 그리드는 시각적으로 매력적 일뿐 만 아니라 개발자에게 스타일을 작성할 때 촬영할 수있는 독특한 대상을 제공합니다.

불행히도,이 기본 패턴은 정확하게 코딩하기가 어려울 수 있습니다. Bootstrap과 같은 프레임 워크는 종종 그리드 레이아웃을 만드는 데 사용되지만 페이지 무게가 추가 및 세밀한 제어 부족과 같은 단점이 있습니다. CSS Grid는 프론트 엔드 완벽 주의자에게 더 나은 솔루션을 제공합니다. 예를 살펴 보겠습니다.

위의 디자인은 그리드에 대한 좋은 응용 프로그램입니다. 여러 요소가 그 안에 위치한 14 열 패턴이 있습니다. 상자의 너비와 오프셋이 다르지만 모두 동일한 그리드를 준수합니다. 이 레이아웃은 Flexbox로 만들어 질 수 있으며 심지어 부유물도 만들 수 있지만 모든 중단 점에서 픽셀-완벽한 결과를 얻기 위해 매우 구체적인 수학이 포함될 수 있습니다. 그리고 직면합시다 : 많은 프론트 엔드 개발자들은 인내심을 가지고 있지 않습니다. 이런 종류의 작업을보다 쉽게 ​​수행하기위한 세 가지 CSS 그리드 레이아웃 전략을 살펴 보겠습니다.

전략 1 : 기본 그리드

균등하게 간격을 둔 12 열 레이아웃을 작성하는 가장 직관적 인 방법은 아마도 이것의 변형 일 것입니다. 여기서 외부 용기는 왼쪽 및 오른쪽 패딩으로 외부 거터 간격을 제어하는 ​​데 사용되며 내부 행 요소는 내용을 최대 너비로 제한하는 데 사용됩니다. 행은 그리드 관련 스타일을받습니다.

 디스플레이 : 그리드;
그리드-템플릿-컬럼 : 반복 (12, 1fr);
그리드 갭 : 20px;

이 규칙은 그리드가 12 개의 열로 구성되며 각각은 하나의 분수 단위 (FR)의 폭을 갖습니다. 열 사이의 20px 간격도 지정됩니다. 열 템플릿 세트를 사용하면 그리드 컬럼 속성을 사용하여 모든 하위 열의 시작 및 끝을 매우 쉽게 설정할 수 있습니다. 예를 들어, 그리드-컬럼 : 3/8 위치 설정 요소는 열 3에서 시작하고 8 열을 가로 질러 5 개의 열을 열을 8 열을 가로 지릅니다.

이 예제에서 CSS 그리드가 제공하는 내용에서 이미 많은 가치를 볼 수 있지만이 접근법은 몇 가지 제한 사항이 있습니다. 한 가지 문제는 그리드 갭 속성을 지원하지 않는 Internet Explorer입니다. 또 다른 문제는이 12 열 접근법이 갭이 시작될 때 간격 또는 종료 열에서 열을 시작하는 능력을 제공하지 않는다는 것입니다. 이를 위해서는 다른 시스템이 필요합니다.

전략 2 :보다 유연한 그리드

그리드 갭은 IE에 대한 것이 아니지만, 그리드 템플릿 자체의 일부로 공간을 포함시킴으로써 갭의 모양을 재현 할 수 있습니다. 그리드-템플릿-컬럼에 사용할 수있는 반복 함수는 단일 열 폭을 인수 로서만 수용 할뿐만 아니라 임의 길이의 반복 패턴을 허용합니다. 이를 위해, 열-갭의 패턴을 11 번 반복 할 수 있고, 최종 열을 삽입하여 12 열 / 11 내부 갭 레이아웃을 완료 할 수있다.

 그리드-템플릿-컬럼 : 반복 (11, 1fr 20px) 1fr;

이것은 IE 문제를 해결하고 열을 시작하여 열이나 간격 모두에서 종료 할 수 있습니다. 이전 방법에 비해 잘 개선되었지만 여전히 성장할 여지가 있습니다. 예를 들어, 열이 화면의 바깥 쪽 가장자리에 스패닝되고 다른 측면이 그리드 시스템 내에 맞는 경우 어떻게해야합니까? 예는 다음과 같습니다.

이 레이아웃에서 카드 (왼쪽 열)는 그리드 내에서 시작하여 종료됩니다. 기본 이미지 (오른쪽 열)는 그리드 내에서도 시작되지만 그리드를 넘어 화면 가장자리까지 확장됩니다. 이를 위해 CSS를 작성하는 것은 도전이 될 수 있습니다. 한 가지 방법은 이미지를 절대적으로 배치하고 오른쪽 가장자리에 고정하는 것이지만, 이는 문서 흐름에서 벗어나는 단점과 함께 제공됩니다 (이미지가 카드보다 키가 큰 경우 문제가 될 수 있음). 또 다른 아이디어는 Floats 또는 Flexbox를 사용하여 문서 흐름을 유지하는 것이지만, 이는 너비를 얻고 간격을 바로 얻기 위해 까다로운 일회성 계산을 수반합니다. 더 나은 방법을 살펴 보겠습니다.

전략 3 : 훨씬 더 유연한 그리드

이 기술은 마지막 개정판에서 소개 된 아이디어를 바탕으로합니다. 이제 거터 크기와 행 너비를 정의하는 다른 요소 내에 그리드가 존재하는 대신 그리드의 패턴과 해당 공간을 통합하고 있습니다. 홈통, 열 및 갭은 모두 템플릿에 통합되므로 자식 요소는 그리드-열 속성을 사용하여 그리드에 쉽고 정확하게 배치 될 수 있습니다.

 $ row width : 1140px;
$ 거터 : 30px;
갭 : 20px;
$ break : $ row-width 2 * $ gutter;
$ col-width-post-break : ($ row-width-11 * $ 갭) / 12;
  
.Container {
  디스플레이 : 그리드;
  그리드 - 템플릿 - 컬럼 : $ 거터 반복 (11, calc ((100% -2 * #{$ gut
  @Media 화면 및 (min-width : #{$ break}) {
    그리드-템플릿-컬럼 : calc (0.5 * (100%- #{$ row-width})) 반복 (11, #{$ col-width- post-break} #{$ gap}) #{$ col-width-post-break} calc (0.5 * (100%- #{$ low-width});
  }
}

예, 이것을 제대로 얻으려면 일부 수학이 필요합니다. 행의 최대 너비 전후에 템플릿을 다르게 설정하는 것이 중요합니다. 변수를 정의하면 계산을 훨씬 더 관리하기 쉽게 만들 수 있기 때문에 SCSS를 사용하기로 결정했습니다 (다른 개발자에게는 더 읽기 쉬운 언급이 아닙니다). 12 부 패턴으로 시작한 것은 11 개의 내부 갭을 통합하여 23 부 패턴으로 증가했으며 이제 왼쪽과 오른쪽 거터를 차지하는 25 개 조각입니다.

이 접근법의 한 가지 멋진 점은 패턴이 설정되면 그리드를 준수하는 모든 레이아웃의 기초로 사용될 수 있다는 것입니다. 더욱이, 그것은 고품질 모형으로 전달 될 수있는 디자인을 정확하게 구현하는 간단한 방법으로 사용됩니다. 그것은 개발자와 디자이너 모두를 행복하게 만드는 것입니다!

몇 가지 경고가 있습니다…

이러한 기술은 전통적으로 어색한 스타일 문제를 해결하는 데 사용될 수 있지만은 총알이 아닙니다. 대신, 올바른 응용 프로그램에 사용되는 대체 도구로 생각해야합니다.

두 번째 및 세 번째 레이아웃 패턴이 적합하지 않은 상황 중 하나는 자동 배치가 필요한 레이아웃입니다. 다른 하나는 CSS 그리드로 잘 작동하지 않는 브라우저를 지원 해야하는 생산 환경입니다.

위 내용은 디자인 모형 일치하는 일부 CSS 그리드 전략의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 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尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

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

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

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