"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > CSS Grid 및 Flexbox를 사용한 반응형 웹 디자인

CSS Grid 및 Flexbox를 사용한 반응형 웹 디자인

2024-08-07에 게시됨
검색:555

Responsive Web Design with CSS Grid and Flexbox

CSS Grid와 Flexbox를 사용한 반응형 웹 디자인

반응형 웹 디자인은 다양한 종류의 기기와 화면 크기에서 잘 작동하도록 웹 사이트를 개발하는 방법입니다. 다양한 장치에 대해 여러 버전의 사이트를 만드는 대신 반응형 디자인은 유연한 그리드와 레이아웃, 미디어 쿼리 및 유연한 이미지를 사용하여 모든 플랫폼에서 사용자 경험을 향상시킵니다.

반응형 웹 디자인이 중요한 이유는 무엇입니까?

전 세계적으로 점점 더 많은 사람들이 휴대폰과 태블릿을 사용하여 인터넷을 탐색함에 따라 반응형 웹사이트는 더 이상 선택 사항이 아닌 필수 사항이 되었습니다. 반응형 디자인은 소비자가 사용하는 장치에 관계없이 콘텐츠에 원활하게 액세스할 수 있도록 하여 사용성을 향상시킵니다. 또한 컨텐츠가 시각적으로 일관되고 여러 장치에서 쉽게 읽을 수 있도록 하여 사용자 경험을 향상시킵니다. 이를 통해 좌절감을 줄이고 상호 작용을 장려할 수 있습니다. 게다가 반응형 디자인은 미래 지향적인 웹사이트를 제공하여 대대적인 재설계 없이도 새로운 장치에 적응할 수 있게 해줍니다.

오늘은 반응형 웹 디자인의 기본 사항을 살펴보고 특히 Flexbox와 CSS Grid라는 두 가지 강력한 CSS 기술에 중점을 둘 것입니다. 다채로운 상자와 숫자가 있는 간단한 웹사이트를 사용하여 이러한 레이아웃이 다양한 화면 크기에 어떻게 적용되는지 보여드리겠습니다.

반응형 웹 디자인의 간략한 역사

반응형 웹 디자인은 인터넷 초창기부터 많은 변화를 겪었습니다. 화면 크기, 해상도, 방향 등 장치 특성을 기반으로 스타일을 적용하는 미디어 쿼리입니다. Flexbox는 2012년에 출시되었으며 CSS Grid는 2017년에 채택되었습니다. 이러한 혁신을 통해 디자이너는 다양한 장치에서 적응 가능한 레이아웃을 만들어 사용자에게 더 나은 경험을 제공할 수 있었습니다.

CSS 그리드와 Flexbox를 사용하여 반응형 레이아웃 만들기

이제 Flexbox와 CSS Grid가 어떻게 작동하는지 확인할 수 있는 몇 가지 실제 사례를 확인해 보겠습니다.

반응형 그리드 레이아웃: 컬러 그리드

CSS 그리드를 사용하여 간단한 레이아웃을 만들어 보겠습니다.

그리드 레이아웃용 HTML:



    
    
    Color Grid
    


    
1
2
3
4
5
6

HTML:

  • HTML 마크업은 다양한 숫자와 배경색을 갖춘 반응형 컨테이너(그리드 컨테이너)와 다채로운 상자(그리드 항목)를 만듭니다. 뷰포트 메타 태그를 사용하면 레이아웃을 다양한 기기에서 확장할 수 있습니다.

그리드 레이아웃용 CSS:

/* styles.css */
body {
    margin: 0;
    font-family: Arial, sans-serif;
    background: #f0f0f0;
}

.grid-container {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
    gap: 10px;
    padding: 20px;
}

.grid-item {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100px;
    color: #fff;
    font-size: 2em;
    border-radius: 8px;
}

CSS:

  • 그리드 레이아웃용 CSS는 반응성을 높이기 위해 다양한 그리드 속성을 사용합니다. 디스플레이: 그리드; 선언은 그리드 컨테이너로 클래스가 있는 요소를 그리드 컨테이너로 설정하므로 그리드가 제공하는 모든 기능을 활용할 수 있습니다. 그리드 템플릿 열:peat(auto-fit, minmax(100px, 1fr)); 속성은 그리드의 열이 구조화되는 방식을 정의합니다. 사용 가능한 공간을 기준으로 열 수를 자동으로 조정합니다. 각 열의 최소 너비는 100픽셀이고 최대 사용 가능한 공간의 1분할(1fr)입니다. 이 디자인을 사용하면 그리드가 다양한 화면 크기에 적응할 수 있으므로 그리드 항목이 넘치거나 보기 흉한 간격이 생기지 않습니다. 간격: 10px; 속성은 그리드 항목에 일관된 간격을 적용합니다. 마지막으로 그리드 항목 요소를 display: flex; 콘텐츠를 justify-content: center; 및 항목 정렬: 중앙. 이렇게 하면 각 항목이 잘 정리되고 균형이 잡혀집니다.

반응형 웹 디자인의 예: 그리드 레이아웃

이 그리드 레이아웃은 다음을 사용합니다:

  1. 동적 열 수: 그리드는 뷰포트 너비에 맞게 열 수를 자동으로 조정하며 항목은 최소 100px를 차지합니다.
  2. 유연한 크기 조정: 자동 맞춤을 통해 필요할 때 상자를 재배치하고 재배열하여 모든 것을 더욱 정돈된 모습으로 만들 수 있습니다.
  3. 미디어 쿼리: 여기에 실제로 작성되지는 않았지만 그리드 요소가 다양한 화면 크기에서 작동하는 방식은 반응형 그리드 속성을 사용하여 미디어 쿼리의 개념을 보여줍니다.

반응형 Flexbox 레이아웃: 색상 행

다음으로 Flexbox를 사용하여 간단한 색상 상자 행을 만들어 보겠습니다.

Flexbox 레이아웃용 HTML:



    
    
    Color Row
    


    
1
2
3
4

HTML:

  • 그리드 예제와 유사하게 여기의 HTML은 색상이 지정된 숫자를 표시하는 플렉스 항목 상자가 있는 플렉스 컨테이너를 만듭니다.

Flexbox 레이아웃용 CSS:

/* styles.css */
body {
    margin: 0;
    font-family: Arial, sans-serif;
    background: #f5f5f5;
}

.flex-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    padding: 20px;
    gap: 10px;
}

.flex-item {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100px;
    width: 100px;
    color: #fff;
    font-size: 2em;
    border-radius: 8px;
}

CSS:
여기서 CSS는 Flexbox 속성을 사용하여 다양한 화면 크기에 적응하는 반응형 레이아웃을 만듭니다. 디스플레이: 플렉스; .flex-container에서는 하위 요소 또는 (플렉스 항목) Flexbox 기능을 제공합니다. 플렉스 랩: 랩; 속성을 사용하면 컨테이너 너비를 초과하는 경우 항목이 여러 줄로 흐를 수 있습니다. 정당화 콘텐츠: 센터; 속성은 주축을 따라 플렉스 항목을 중앙에 배치하므로 항목 수에 관계없이 균형 잡힌 레이아웃이 유지됩니다. 간격: 10px; 속성은 항목 사이에 균일한 간격을 도입하여 전반적인 구성을 개선합니다. 각 .flex-item은 display: flex;를 사용하는 플렉스 컨테이너이기도 합니다. justify-content: center를 사용하여 수직 및 수평 모두 가운데에 맞춰진 내부 콘텐츠를 추가로 정렬할 수 있습니다. 및 정렬 항목: 중앙;. 높이의 고정 크기: 100px; 너비: 100px; 균일성을 제공하는 동시에 이러한 속성의 조합은 다양한 장치의 요구 사항에 적응하면서 레이아웃을 보기 좋게 만듭니다.

반응형 웹 디자인의 예: Flexbox 레이아웃

이 Flexbox 레이아웃은 다양한 반응형 디자인 특성을 보여줍니다.

  1. 플렉스 랩핑: 플렉스 랩: 랩; 속성은 상자가 행에 맞지 않을 때 상자를 다음 줄로 이동시켜 다양한 뷰포트 너비에 맞게 조정합니다.
  2. 가운데 항목: 화면 크기에 관계없이 항목이 중앙에 유지되어 전체적인 표현이 향상됩니다.
  3. 고정 크기: 상자는 특정 크기를 갖지만 사용 가능한 공간에 따라 포장되고 재조정되므로 반응형 레이아웃이 가능합니다.

CSS 그리드와 Flexbox 비교

CSS의 레이아웃 디자인과 관련하여 Grid와 Flexbox는 모두 훌륭한 선택이지만 서로 다른 용도로 사용됩니다. CSS 그리드는 행과 열로 구성된 복잡한 그리드 구조를 생성할 수 있는 2차원 레이아웃 시스템으로, 웹 애플리케이션이나 대시보드와 같이 두 차원에 대한 정밀한 제어가 필요한 레이아웃에 이상적입니다. 반면 Flexbox는 단일 축을 따라 공간을 수평 또는 수직으로 분배하는 데 가장 적합한 1차원 레이아웃 모델로, 단순한 레이아웃이나 버튼이나 탐색 메뉴와 같은 작은 구성 요소에 적합합니다. 요소가 두 축에 걸쳐 정렬되어야 하는 포괄적이고 구조화된 레이아웃을 위해 Grid를 선택할 수 있지만 Flexbox는 콘텐츠 크기에 반응해야 하는 적응형 유동 레이아웃을 위한 선택이 될 것입니다. 결국 선택은 프로젝트의 특정 요구 사항에 따라 달라집니다. 종종 두 가지를 함께 보완적으로 사용하면 최상의 결과를 얻을 수 있습니다.

결론

CSS Grid와 Flexbox를 사용하면 모든 기기에서 멋지게 보이는 적응형 레이아웃을 만들 수 있습니다. 이러한 예는 동적 설계를 구현하는 것이 얼마나 간단한지 보여줍니다.

이제 당신 차례입니다! 이러한 기술을 실험하고, 색상과 레이아웃 설정을 수정하고, 재미있고 반응이 빠른 디자인을 만드는 것이 얼마나 간단한지 확인하세요.
``
소스:
https://www.w3schools.com/css/css3_flexbox.asp
https://www.w3schools.com/css/css_grid.asp
https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout
https://kinsta.com/blog/active-web-design/#4-flexbox-layout
https://css-tricks.com/snippets/css/a-guide-to-flexbox/
https://css-tricks.com/snippets/css/complete-guide-grid/
https://blog.logrocket.com/css-flexbox-vs-css-grid/#:~:text=주요 레이아웃 스타일의 경우 행 작업 시 도움이 됩니다.

릴리스 선언문 이 글은 https://dev.to/wendyver/Response-web-design-with-css-grid-and-flexbox-2gio?1에서 복제됩니다.1 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다. 그것
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3