> 웹 프론트엔드 > CSS 튜토리얼 > 미디어 쿼리 없이 3열 데스크탑과 1열 모바일로 유동 격자 레이아웃을 만드는 방법은 무엇입니까?

미디어 쿼리 없이 3열 데스크탑과 1열 모바일로 유동 격자 레이아웃을 만드는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-15 05:17:02
원래의
851명이 탐색했습니다.

How to Create a Fluid Grid Layout with 3-Column Desktop and 1-Column Mobile Without Media Queries?

미디어 쿼리 없이 3열 데스크톱 및 1열 모바일 레이아웃 달성

문제:
어떻게 만들 수 있나요? 3열 데스크톱 레이아웃에서 1열 모바일 레이아웃으로 전환하는 유동 그리드 레이아웃 미디어 쿼리에 의존하시나요?

해결책:
CSS는 미디어 쿼리에 의존하지 않고도 동적 레이아웃 조정을 허용합니다. 방법은 다음과 같습니다.

1. 클램프() 및 Flex 활용:
초기 CSS에서는 화면 크기에 따라 반복(3)에서 반복(1)으로 전환하기 위해 Grid-template-columns 속성에 클램프()를 사용했습니다. 그러나,clamp()만으로는 원하는 결과를 얻을 수 없습니다. 대신, 플렉스 항목의 flex-basis 속성 내에서 클램프()를 사용하여 래핑 동작을 생성할 수 있습니다:

.container {
  display: flex;
  flex-wrap: wrap;
}

.item {
  height: 100px;
  border: 2px solid;
  background: red;
  flex-basis: max(0px, (400px - 100vw) * 1000);
  flex-grow: 1;
}
로그인 후 복사

2. 화면 크기에 따라 수식 조정:
이 코드에서 400px은 레이아웃이 3열에서 1열로 전환되어야 하는 화면 크기를 나타냅니다. 원하는 중단점을 기준으로 이 값을 조정할 수 있습니다. 예를 들어 500px로 전환하려면 400px를 500px로 바꾸세요.

3. 계산 설명:
max(0px, (400px - 100vw) * 1000) 공식은 뷰포트 너비가 400px보다 클 때 각 항목의 flex-basis가 0px로 유지되도록 보장합니다. 이렇게 하면 3열 레이아웃으로 나란히 유지됩니다. 그러나 뷰포트 너비가 400px 미만으로 줄어들면 flex-basis가 큰 값이 되어 항목을 별도의 줄에 효과적으로 밀어넣어 1열 레이아웃이 됩니다.

이런 방식으로 클램프()를 활용하면, 미디어 쿼리 없이도 다양한 화면 크기에 적응하는 유연하고 반응성이 뛰어난 레이아웃을 얻을 수 있습니다.

위 내용은 미디어 쿼리 없이 3열 데스크탑과 1열 모바일로 유동 격자 레이아웃을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿