"Basic to Brilliance" 강좌 열 번째 강의에 오신 것을 환영합니다. 이번 강의에서는 고급 CSS 그리드 기술에 대해 좀 더 자세히 살펴보겠습니다. 이러한 기술을 사용하면 훨씬 더 복잡하고 반응이 빠른 레이아웃을 만들 수 있습니다. 이 강의가 끝나면 그리드 영역, 그리드 자동 배치 작업을 수행하고 CSS 그리드를 Flexbox와 같은 다른 레이아웃 시스템과 결합할 수 있게 됩니다.
그리드 영역을 사용하면 그리드 섹션에 이름을 할당할 수 있으므로 레이아웃을 더 쉽게 관리하고 시각화할 수 있습니다.
HTML:
<div class="grid-container"> <header class="header">Header</header> <aside class="sidebar">Sidebar</aside> <main class="content">Main Content</main> <footer class="footer">Footer</footer> </div>
CSS:
.grid-container { display: grid; grid-template-areas: "header header" "sidebar content" "footer footer"; grid-template-columns: 200px 1fr; grid-template-rows: auto 1fr auto; } .header { grid-area: header; } .sidebar { grid-area: sidebar; } .content { grid-area: content; } .footer { grid-area: footer; }
이 예에서는:
CSS 그리드에는 명시적으로 배치되지 않은 그리드 항목을 자동으로 배치하는 자동 배치 기능이 있습니다. Grid-auto-flow를 사용하여 작동 방식을 제어할 수 있습니다.
값:
예:
.grid-container { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-flow: row dense; /* Auto-places items and packs them densely */ }
이 경우 그리드 항목은 행별로 배치되고 작은 항목이 간격을 채웁니다.
minmax() 함수를 사용하면 그리드 트랙이 사용할 수 있는 최소 및 최대 크기를 지정하는 등 그리드 트랙의 범위를 정의할 수 있습니다.
.grid-container { display: grid; grid-template-columns: repeat(3, minmax(150px, 1fr)); }
이 예에서는:
자동 채우기와 자동 맞춤은 모두 동적 그리드를 생성하는 데 사용되지만 작동 방식은 약간 다릅니다.
자동 맞춤: 사용 가능한 공간에 맞게 열을 줄이거나 늘립니다.
예: 자동 맞춤과 자동 채우기 비교
.grid-container { display: grid; grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); /* Auto-fill */ } .grid-container-fit { display: grid; grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); /* Auto-fit */ }
두 옵션 모두 사용 가능한 공간에 따라 열 수를 자동으로 조정하지만 자동 맞춤은 빈 열을 축소합니다.
CSS Grid는 전체 레이아웃을 구성하는 데 적합하지만 Flexbox는 개별 항목 내에서 정렬을 제어하는 데 적합합니다. 두 가지를 결합하여 레이아웃의 다양한 부분을 처리할 수 있습니다.
HTML:
<div class="grid-container"> <div class="header">Header</div> <div class="content"> <div class="flexbox-item">Item 1</div> <div class="flexbox-item">Item 2</div> </div> <div class="footer">Footer</div> </div>
CSS:
.grid-container { display: grid; grid-template-columns: 1fr; grid-template-rows: auto 1fr auto; } .content { display: flex; justify-content: space-around; align-items: center; } .flexbox-item { padding: 20px; background-color: #ddd; }
이 예에서는:
그리드는 명시적으로(그리드 템플릿 열 및 그리드 템플릿 행 사용) 또는 암시적으로(새 트랙이 자동으로 생성되는 경우) 정의할 수 있습니다.
암시적 그리드: 그리드는 추가 항목을 수용하기 위해 행이나 열을 자동으로 생성합니다.
예:
.grid-container { display: grid; grid-template-columns: 100px 100px; grid-auto-rows: 50px; /* Implicitly adds rows */ }
이 경우 정의된 열에 맞는 것보다 더 많은 항목이 추가되면 그리드가 자동으로 새 행을 생성합니다.
CSS 그리드를 사용하여 헤더, 기본 콘텐츠 영역, 사이드바, 바닥글이 포함된 반응형 전체 페이지 레이아웃을 만들어 보겠습니다.
HTML:
<div class="grid-container"> <header class="header">Header</header> <nav class="sidebar">Sidebar</nav> <main class="main-content">Main Content</main> <footer class="footer">Footer</footer> </div>
CSS:
.grid-container { display: grid; grid-template-areas: "header header" "sidebar main" "footer footer"; grid-template-columns: 200px 1fr; grid-template-rows: auto 1fr auto; height: 100vh; /* Full height layout */ } .header { grid-area: header; background-color: #333; color: white; padding: 20px; text-align: center; } .sidebar { grid-area: sidebar; background-color: #f4f4f4; padding: 20px; } .main-content { grid-area: main; padding: 20px; } .footer { grid-area: footer; background-color: #333; color: white; padding: 10px; text-align: center; }
이 예에서는:
Seterusnya: Dalam kuliah seterusnya, kita akan meneroka Penedudukan CSS dan cara meletakkan elemen menggunakan sifat seperti mutlak, relatif dan tetap. Bersedia untuk meningkatkan kawalan reka letak anda dengan lebih jauh lagi!
Ridoy Hasan
위 내용은 고급 CSS 그리드 기술의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!