5가지 연습으로 2021년 CSS 그리드 모델 에이싱 || CSS 2021 🔥

다음은 모든 화면 크기에서 5개의 반응형 레이아웃을 구축하여 2021년에 고효율 CSS 그리드 시스템/모델을 배우기 위한 실용적인 가이드입니다.

여기에서 Figma 디자인을 확인하십시오



목차 --


  • Level-1
  • Level-2
  • Level-3
  • Level-4
  • Level-5
  • Conclusion

  • 유튜브



    이것이 어렵다면 Youtube의 단계별 자습서를 참조하십시오 🔥





    설정 🔥



    Codepen/모든 코드 편집기를 열고 이것을 배치하십시오 👇

    SCSS




    // Defining Break-Points
    
    $bp : (
      mobile  : 480px,
      tablet  : 768px,
      desktop : 1440px,
    );
    
    //Defining our Conditional Media query Mixins.
    //To save Time & Coffee.
    
    @mixin query($screen){
      @each $key,$value in $bp{
    
        //  defining max-width
    
        @if ($screen == $key) {
          @media (max-width : $value){@content};
        }
      }
    }
    
    
    

    다시 .......

    //Changing The Default Settings..
    
    *{
      margin: 0px;
      padding: 0px;
      box-sizing: border-box;
      body{
        font-family: sans-serif;
        font-size:30px;
      }
    }
    
    //Defining settings of all .box- classes with
    //Border color & placing text at Center.
    
    [class ^="box-"]{
      display: grid;
      place-items: center;
    
    //Set any color you wish for testing purposes.
      border : 3px solid red;
    }
    
    

    We're All Set Boys 😆👌


    레벨 1

    A beginner Friendly Level XD


    HTML



    
    <div class="container">
      <div class="box-1">Header</div>
      <div class="box-2">Main</div>
      <div class="box-3">Footer</div>
    </div>
    
    

    SCSS



    .container{
      display: grid;
      height: 100vh;
    
    // The Main Sauce. It means, define --
    // [.box-1 auto] [.box-2 1fr unit] & [.box-3 auto]
    
      grid-template-rows: auto 1fr auto;
    
    //Defining gap between rows.
      grid-gap: 10px;
    }
    
    
    

    레벨 2


    HTML



    <div class="container">
      <div class="box-1">Left</div>
      <div class="box-2">Right</div>
    </div>
    
    

    SCSS


    대형 화면용



    
    .container{
      display: grid;
      height: 100vh;
    
    // Dividing the Width of screen
    // in 12 equal fractions.
    
      grid-template-columns: repeat(12,1fr);
      grid-gap: 10px;
    }
    
    

    그리드 열로 덮을 열 수를 선택하는 데 혼란이 있습니다. 당황할 필요가 없습니다. 1을 추가하기만 하면 됩니다. 이 경우 .box-1이 4개의 열을 포함하기를 원합니다. 그래서 우리는 1/5을 씁니다. 이렇게 👇

    .box-1{
    
    // Cover 4 columns. 
    //So, start = 1 || end = 4+1 = 5;
    // grid-column : start/end; 👈 Short-Hand
    
      grid-column: 1/5;
    }
    
    .box-2{
    
    // Cover remaining columns. 
    //This value 👇 is taken from .box-1 ☝️
    //So, start = 5 || end = 12+1 = 13;
    // grid-column : start/end; 👈 Short-Hand
    
      grid-column: 5/13;
    }
    
    

    모바일 화면용



    // The Media query mixin we defined at start.
    //Took (mobile) 👇 from $bp;
    @include query(mobile){
      .container{
    
    // Defining that, make the column 1 piece/100%;
        grid-template-columns : 100%; //or, write 1fr
    
    //Defining that, make 2 rows, 1fr (fraction) each,
        grid-template-rows : repeat(2,1fr);
      }
    
    // To remove the previously defined values 
      .box-1,.box-2{
    //inherit defines the original value.
        grid-column: inherit;
      }
    
    }
    
    
    

    그리드 템플릿 영역으로 게임을 바꾸자 😎



    Grid-Template-Areas tbh를 사용하면 삶이 훨씬 쉬워집니다. 그것은 우리가 무엇을 하고 있는지 시각적으로 볼 수 있게 해줍니다.

    레벨-3


    HTML



    <div class="container">
      <div class="box-1">A</div>
      <div class="box-2">B</div>
      <div class="box-3">C</div>
    </div>
    
    

    SCSS


    더 큰 화면의 경우



    
    .container{
      display: grid;
      height: 100vh;
    
    // Creating a 12 column X 3 row grid 👇
    
    // Defining that 'a' takes 12 columns & 1 row ||'b' takes 8 columns, 2rows || 'c' takes 4 columns, 2rows,
    // There is a high chance to get lost here,
    // so, divide the areas in 3 columns with blank spaces 👇
    
      grid-template-areas:
        "a a a a    a a a a    a a a a"
        "b b b b    b b b b    c c c c"
        "b b b b    b b b b    c c c c";
      grid-gap: 10px;
    }
    
    .box-1{
      grid-area: a;
    }
    .box-2{
      grid-area: b;
    }
    .box-3{
      grid-area: c;
    }
    
    

    모바일 화면용



    @include query(mobile){
      .container{
      grid-template-areas:
    
        "a a a a    a a a a    a a a a"
        "a a a a    a a a a    a a a a"
    
        "b b b b    b b b b    b b b b"
        "b b b b    b b b b    b b b b"
        "b b b b    b b b b    b b b b"
        "b b b b    b b b b    b b b b"
    
        "c c c c    c c c c    c c c c";
      }
    }
    
    

    레벨-4


    HTML



    <div class="container">
      <div class="box-1">A</div>
      <div class="box-2">B</div>
      <div class="box-3">C</div>
      <div class="box-4">D</div>
      <div class="box-5">E</div>
    </div>
    
    

    SCSS


    더 큰 화면의 경우



    .container{
      display: grid;
      height: 100vh;
      grid-template-areas: 
        "a a a a    a a a a    a a a a"
    
        "b b b b    b b b b    e e e e"
        "b b b b    b b b b    e e e e"
    
        "c c c c    d d d d    e e e e";
    
      grid-gap: 20px;
    }
    
    .box-1{
      grid-area: a;
    }
    .box-2{
      grid-area: b;
    }
    .box-3{
      grid-area: c;
    }
    .box-4{
      grid-area: d;
    }
    .box-5{
      grid-area: e;
    }
    
    

    모바일 화면의 경우:



    @include query(mobile){
      .container{
          grid-template-areas: 
    
        "a a a a    a a a a    a a a a"
    
        "b b b b    b b b b    b b b b"
        "b b b b    b b b b    b b b b"
    
        "c c c c    c c d d    d d d d"
        "e e e e    e e e e    e e e e";
      }
    }
    
    

    이기고 있니? 더위를 식히자 🥵


    레벨-5


    HTML



    <div class="container">
      <div class="box-1">A</div>
      <div class="box-2">B</div>
      <div class="box-3">C</div>
      <div class="box-4">D</div>
      <div class="box-5">E</div>
      <div class="box-6">F</div>
    </div>
    
    

    SCSS


    데스크탑용



    
    .container{
      display: grid;
      height: 100vh;
      grid-gap:10px;
      grid-template-areas: 
        "a a a a   a a a a   a a a a"
        "c c b b   b b b b   b b e e"
        "c c d d   d d d d   d d e e"
        "c c d d   d d d d   d d e e"
        "c c d d   d d d d   d d e e"
        "f f f f   f f f f   f f f f";
    }
    
    .box-1{
      grid-area: a;
    }
    .box-2{
      grid-area: b;
    }
    .box-3{
      grid-area: c;
    }
    .box-4{
      grid-area: d;
    }
    .box-5{
      grid-area: e;
    }
    .box-6{
      grid-area: f;
    }
    
    

    태블릿용



    
    @include query(tablet){
      .container{
          grid-template-areas: 
        "a a a a   a a a a   a a a a"
        "b b b b   b b b b   b b b b "
        "c c d d   d d d d   d d d d"
        "c c d d   d d d d   d d d d"
        "c c d d   d d d d   d d d d"
        "e e f f   f f f f   f f f f";
      }
    }
    
    

    모바일 화면용



    
    @include query(mobile){
      .container{
      grid-template-areas: 
        "a a a a   a a a a   a a a a"
        "b b b b   b b b b   b b b b "
        "d d d d   d d d d   d d d d"
        "d d d d   d d d d   d d d d"
        "d d d d   d d d d   d d d d"
        "c c c c   c c c c   c c c c"
        "e e e e   e e e e   e e e e"
        "f f f f   f f f f   f f f f";
      }
    }
    

    다음 읽기:







    크레딧:



    Inspired from Thu Nghiem Check here

    결론

    Here's your medal 🎖️ for successfully completing CSS Grid Model/System. ❤️



    제안과 비판은 매우 감사합니다 ❤️


  • 유튜브
  • 트위터
  • 인스타그램
  • 좋은 웹페이지 즐겨찾기