기본 콘텐츠로 건너뛰기

Part03 CSS - 03

     Grid

CSS Grid - Flexible Box는 단순한 1차원 레이아웃을 위한 기능이지만 Grid는 2차원의 레이아웃 시스템을 제공, Flex처럼 Container와 Item이라는 두가지 개념이 있음

Grid Container Properties
Grid Item Properties
Grid Containers
            display - Grid Container 정의, 정의된 컨테이너의 자식 요소들은 자동으로 Grid Items로 정의 됨
                            grid                Block 특성의 Grid Container를 정의
                            inline-grid      Inline 특성의 Grid Container를 정의
            grid-template-rows - 명시적 행의 크기, 라인의 이름을 정의, fr(fraction, 공간 비율) 단위를 사용할 수 있음, repeat() 함수를 사용할 수 있음
            grid-template-columns - 명시적 열의 크기, 라인의 이름을 정의, fr(fraction, 공간 비율) 단위를 사용할 수 있음, repeat() 함수를 사용할 수 있음
        .container {
          grid-template-rows: 100px 200px;
          grid-template-columns: 100px 200px;
        }
        /*repeat*/
        .container {
          width: 400px;
          display: grid;
          grid-template-rows: repeat(3, 100px);
          grid-template-columns: repeat(3, 1fr);
        }
        /* 동시에 각 라인의 이름도 정의할 수 있습니다. */
        .container {
          grid-template-rows: [first] 100px [second] 200px [third];
        }
        /* 라인에 중복된 이름을 지정할 수 있습니다. */
        .container {
          grid-template-rows: [row1-start] 100px [row1-end row2-start] 200px [row2-end];
        }
        .container {
          grid-template-columns: repeat(4, 100px 200px 50px);
          /* grid-template-columns: 100px 200px 50px 100px 200px 50px 100px 200px 50px 100px 200px 50px; */
        }
            grid-template-areas - 지정된 그리드 영역 이름(grid-area)을 참조해 그리드 템플릿을 생성(.을 사용하면 빈공간을 표현할 수 있음)  
        .container {
          display: grid;
          grid-template-rows: repeat(3, 100px);
          grid-template-columns: repeat(3, 1fr);
          grid-template-areas:
            "header header header"
            "main main aside"
            "footer footer footer";
        }
        header { grid-area: header; }
        main   { grid-area: main;   }
        aside  { grid-area: aside;  }
        footer { grid-area: footer; }
    
            grid-template - grid-template-rows, grid-template-columns, grid-template-areas의 단축 속성            
        .container {
          display: grid;
          grid-template-rows: repeat(4, 100px);
          grid-template-columns: repeat(3, 1fr);
          grid-template-areas:
            "header header header"
            "main . ."
            "main . aside"
            "footer footer footer";
        }
        .container {
          display: grid;
          grid-template:
            "header header header" 80px
            "main main aside" 350px
            "footer footer footer" 130px
            / 2fr 100px 1fr;
        }
            접두어 grid - grid-3종류는 grid를 사용하지 않지만 간혹 일부버전의 브라우저의 경우는 grid-를 써줘야함
            row-gap(grid-row-gap) - 각 행과 행 사이의 간격(Gutter)을 지정, 정확히는 그리드 선(Grid Line)의 크기를 지정
            column-gap(grid-column-gap) - 각 열과 열사이의 간격을 지정
            gap(grid-gap) - 행과 행, 열과 열 사이의 간격을 지정하는 단축 속성
        .container {
            row-gap: 30px;
            column-gap: 15px;
            /*같은거*/
            gap: 30px 15px;
        }
            grid-auto-rows - 암시적 행의 크기를 정의
            grid-auto-columns - 암시적 열의 크기를 정의
            grid-auto-flow - 배치하지 않은 아이템을 어떤 방식의 '자동 배치 알고리즘'으로 처리할지 정의 함, 배치한 아이템은 grid-area를 사용한 아이템을 의미
            grid - grid-template-xxx과 grid-auto-xxx의 단축 속성
        .container {
          grid: <grid-template>;
          grid: <grid-template-rows> / <grid-template-columns>;
          grid: <grid-template-rows> / <grid-auto-flow> <grid-auto-columns>;
          grid: <grid-auto-flow> <grid-auto-rows> / <grid-template-columns>;
        }
        
        .container {
          grid:
            "header header header" 80px
            "main main aside" 350px
            "footer footer footer" 130px
            / 2fr 100px 1fr;
        }
        .container {
          grid-template:
            "header header header" 80px
            "main main aside" 350px
            "footer footer footer" 130px
            / 2fr 100px 1fr;
        }
        .container {
          grid: 100px 200px / 1fr 2fr;
        }
        .container {
          grid-template-rows: 100px 200px;
          grid-template-columns: 1fr 2fr;
        }
        .container {
          grid: 100px 100px / auto-flow 150px;
        }
        .container {
          grid-template-row: 100px 100px;
          grid-auto-flow: column;
          grid-auto-columns: 150px;
        }
        .container {
          grid: auto-flow dense 150px / 100px 100px;
        }
        .container {
          grid-template-columns: 100px 100px;
          grid-auto-flow: row dense;
          grid-auto-rows: 150px;
        }
            align-content - 그리드 콘텐츠를 수직 정렬하고 콘텐츠의 세로 너비가 그리드 컨테이너보다 작아야함      
            justify-content - 그리드 콘텐츠를 수평 정렬, 그리드 컨텐츠의 가로 너비가 그리드 컨테이너보다 작아야 함
            align-items - 그리드 아이템들을 수직 정렬, 그리드 아이템의 세로 너비가 자신이 속한 그리드 행의 크기보다 작아야함
            justify-items - 그리드 아이템들을 수평 정렬, 그리드 아이템의 가로 너비가 자신이 속한 그리드 열의 크기보다 작아야함

Grid Items            
            grid-row - grid-row-start와 grid-row-end의 단축 속성
            grid-column - grid-column-start와 grid-column-end의 단축 속성
        .item:nth-child(1){
          grid-column: 1 / 3;
          /*확장 3만큼*/
          grid-row: 1 / span 3;
        }
            grid-area - grid-row-start, grid-column-start, grid-row-end, grid-column-end의 단축 속성, grid-template-areas가 참조할 영역 이름을 설정(grid-row와 grid-column 개념은 무시됨)
        .item{
          grid-row: 2 / 3;
          grid-column: span 2 / -1;
        }
        .item{
          /*<grid-row-start> / <grid-column-start> / <grid-row-end> / <grid-column-end> */
          grid-area: 2 / span 2 / 3 / -1;
        }

            align-self - 단일 그리드 아이템을 수직 정렬, 그리드 아이템의 세로 너비가 자신이 속한 그리드 행의 크기보다 작아야함

            justify-self - 단일 그리드 아이템을 수평 정렬, 그리드 아이템의 가로 너비가 자신이 속한 그리드 열의 크기보다 작아야 함

            order - 그리드 아이템이 자동배치되는 순서를 변경, 숫자가 작을수록 앞서 배치 됨

            z-index - 속성을 이용해 아이템이 쌓이는 순서를 변경


Grid Functions - 그리드에서 사용하는 함수들

            repeat() - 행/열의 크기 정의를 반복, '반복되는 횟수'와 '행/열의 크기 정의'를 인수로 사용
            minmax - 행/열의 '최소/최대 크기/를 정의, 첫 번째 인수는 '최솟값'이고 두 번째 인수는  '최댓값'임, grid-template-rows, grid-template-columns, grid-auto-rows, grid-auto-columns에서 사용
            fit-content - 행/열의 크기를 그리드 아이템이 포함하는 내용 크기에 맞춤, '내용의 최대 크기'를 인수로 사용

Grid Units - 그리드에서 사용하는 주요 단위들

            fr(fractional unit) - 사용 가능한 공간에 대한 비율

            min-content - 그리드 아이템이 조합하는 내용의 최소 크기를 의미(한글일 경우 word-break: keep-all; 써야함)

            max-content - 그리드 아이템이 포함하는 내용의 최대 크기

            auto-fill, auto-fit - 행열의 개수를 그리드 컨테이너 및 행/열 크기에 맞게 자동으로 조정, repeat()함수와 같이 사용하며 행/열과 아이템 개수가 명확할 필요가 없거나 명확하지 않은 경우 유용(반응형 그리드)

            auto-fill과 auto-fit의 차이 - 그리드 컨테이너가 하나의 행/열에 모든 아이템을 수용하고 남는 공간이 있을 때 발생, auto-fill은 남는 공간을 그대로 유지, auto-fit은 남는 공간을 축소






































댓글

이 블로그의 인기 게시물

mac 맥 맥북 Brew 완전 삭제

맥북에서 Brew 초기화 Brew를 써서 h2를 쓰려고 하는데 brew install h2가 안되서 이리 저리 알아보다가 완전 삭제 후 다시 설치 하니까 되서 그 방법을 남겨놈 1. 터미널에 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)" 입력후 y랑 뭐 비번.. 2. /usr/local 폴더에서 Homebrew 폴더 삭제 rm -rf Homebrew/ 권한설정으로 잘.....삭제하고 3. 다시 설치 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" 좀 오래걸리니까 기다려야한다는걸 배움... 출처.... https://discourse.brew.sh/t/error-no-formulae-found-in-taps/8331/9

메이븐으로 라이브러리 인식

 간혹 퍼블릭 jar가 아닌 파일이 있는데 그럴때 쓰면 될듯 <dependency> <groupId> SimpleCryptLib </groupId> <artifactId> SimpleCryptLib </artifactId> <version> 1.1.0 </version> <scope> system </scope> <systemPath> ${basedir}/src/main/webapp/WEB-INF/lib/SimpleCryptLib-1.1.0.jar </systemPath> </dependency> version, scope, systemPath는 꼭 작성해야 한다 groupId, artifactId, version은 암거나 해도 되는거 같음 최근(2021.05.04)스프링 부트    < dependency > < groupId > NiceID </ groupId > < artifactId > NiceID </ artifactId > < version > 1.0 </ version > < scope > system </ scope > < systemPath > ${basedir}/src/main/resources/lib/NiceID.jar </ systemPath > </ dependency > 이걸 추가해주는것도 필요할지도..?? < build > < plugins > < plugin > < groupId > org.springframework.boot </ groupId > < artifactId > spring-bo...

ORA-28000 계정이 잠금되었습니다 계정 잠길때

오라클 계정이 잠길때 해제방법 증상 t he account is locked 오류 발생 원인 Oracle 에서 t he account is locked  에러가 나는 원인은 ● 잘못된 패스워드로 설정횟수만큼 접속 시도시 Lock. ●  30일동안(Default) 해당 계정으로 로그인을 하지 않았을 경우 Lock. 등이 있다. 해결방법 command창에서 * 로컬일경우, sqlplus "/as sysdba"  또는  sqlplus /nolog  conn /as sysdba  * 로컬이 아닐 경우, sqlplus /nolog conn sys/password@<sid> 이름/패스워드@sid로 입력 로 접속 후 SELECT username, account_status, lock_date FROM dba_users; 으로 Lock이 된 사용자를 확인한 후 LOCKED<TIMED> 라고 되있으면, 패스워드 설정횟수 입력 오류로, 아래의 Unlock 명령만, EXPIRED & LOCKED 라고 되있으면, 패스워드 기간만료로, Unlock 후 비밀번호를 지정해줘야 한다. ALTER USER 사용자명 ACCOUNT UNLOCK; 로 Lock된 사용자를 Unl ock 시킨다 방금 말했다시피, 다시 Lock된 사용자 확인했는데,  Open되지 않고 EXPIRED되어 있다면, alter user 사용자명 identified by 바꿀패스워드;  로 패스워드를 변경하거나 또는 SQL*PLUS 를 재시작하여 Lock를 해제한 계정(사용자명/패스워드)로 로그인 하면 패스워드 변경 창이 뜬다. 추가로 패스워드 Lock 횟수 확인하는 방법은 SELECT U....