Dragonball Online Goku Hand
본문 바로가기
Layout

레이아웃01

by 별의 코비 2022. 7. 29.
728x90

레이아웃01

이번 레이아웃은 기본적인 구조로, 간단한 레이아웃 구조입니다.

float을 이용한 레이아웃

float이란, 페이지에서 이미지와 텍스트를 인라인으로 어우러지게 할 수 있는 기능입니다.(구버전)
※ float 속성을 적용하면 그 다음 요소에도 float가 적용되어 버그가 생길 수 있습니다. 이럴 때 사용할 수 있는 속성이 "clear" 입니다.

사용 방법
div태그는 block특성을 가지고 있기 때문에 세로로 나타납니다. 이를 가로로 정렬시켜주는 것이 float입니다.

* {
    margin: 0;
    padding: 0;
}
body {
    background-color: #fff3e0;
}
#wrap {
    width: 1200px;
    margin: 0 auto;
}
#header {
    width: 100%;
    height: 100px;
    background-color: #FFE0B2;
}
#nav {
    width: 100%;
    height: 100px;
    background-color: #FFCC80
}
#aside {
    width: 30%;
    height: 780px;
    background-color: #FFB74D;
    float: left;
}
#section {
    width: 70%;
    height: 780px;
    background-color: #FFA726;
    float: left;
}
#footer {
    width: 100%;
    height: 100px;
    background-color: #FF9800;
    clear: both;
}

/* 미디어쿼리 */
@media (max-width:1300px){ /*1280됐을 때 스크롤바 생겨서 약간 오차있기때문에 */
    #wrap {
        width: 96%; /*스크롤바 안생기게 %로*/
    }
}
@media (max-width:768px){ /*위에꺼 변형 없으므로 굳이 다 안 써줘도 됨!*/
    #wrap {
        width: 100%;
    }
}


@media (max-width:480px){ /*wrap은 위에서 0-768px까지니깐 적용되니깐 생략가능, 변한 모양에 대한 값만 써주면 됨*/
    #aside {
    width: 100%;
    height: 300px; /*height는 퍼센트로 쓸 수 없음!*/
    }
    #section {
    width: 100%;
    height: 480px;
    }  

}

결과

flex을 이용한 레이아웃

flex란, 유연성을 뜻하며 레이아웃 배치 전용 기능으로 고안되었습니다. (신버전)
flex 아이템들은 가로 방향으로 배치되고 inline 요소들 처럼 아이템들의 width만큼을 차지하게 됩니다.

사용 방법
display: flex; 아이템들을 더 이상 한 줄에 담을 여유 공간이 없을 때 아이템 줄바꿈을 어떻게 할지 결정하는 속성 : flex-wrap flex-wrap: wrap;

* {
    margin: 0;
    padding: 0;
}
body {
    background-color: #fff3e0;
}
#wrap {
    width: 1200px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
}
#header {
    width: 100%;
    height: 100px;
    background-color: #FFE0B2;
}
#nav {
    width: 100%;
    height: 100px;
    background-color: #FFCC80
}
#aside {
    width: 30%;
    height: 780px;
    background-color: #FFB74D;

}
#section {
    width: 70%;
    height: 780px;
    background-color: #FFA726;

}
#footer {
    width: 100%;
    height: 100px;
    background-color: #FF9800;

}

/* 미디어쿼리 */
@media (max-width:1300px){
    #wrap {
        width: 96%;
    }
}
@media (max-width:768px){
    #wrap {
        width: 100%;
    }
}
@media (max-width:480px){
    #aside {
    width: 100%;
    height: 300px;
    }
    #section {
    width: 100%;
    height: 480px;
    }  

}

결과

grid을 이용한 레이아웃

grid는 2차원(행과 열)의 레이아웃 시스템을 제공합니다. 위의 방법들과는 달리, 더 복잡한 레이아웃을 만들기 위해서는 grid방법을 사용하는 것이 편리합니다.

사용 방법
display: grid; table처럼 행과 열을 나눠준 후에 area를 정해주면 됩니다.

* {
    margin: 0;
    padding: 0;
}
body {
    background-color: #fff3e0;
}
#wrap {
    width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-areas: /*테이블 구조 짜준다고 생각하면 됨*/
        "header header"
        "nav nav"
        "aside section"
        "footer footer"
    ;
    grid-template-columns: 30% 70%; /*  반응형은 % */
    grid-template-rows: 100px 100px 780px 100px; /* table의 첫번째칸 두번째칸 등의 height값을 정해줌*/
}

#header {
    background-color: #FFE0B2;
    grid-area: header; /*테이블 짠거에 이름 붙여주는 것임*/
}
#nav {
    background-color: #FFCC80;
    grid-area: nav;
}
#aside {
    background-color: #FFB74D;
    grid-area: aside;
}
#section {
    background-color: #FFA726;
    grid-area: section;
}
#footer {
    background-color: #FF9800;
    grid-area: footer;
}
/* 미디어쿼리 */
@media (max-width:1300px){
    #wrap {
        width: 96%;
    }
}
@media (max-width:768px){
    #wrap {
        width: 100%;
    }
}
@media (max-width:480px){
    #wrap {
        grid-template-areas: 
            "header"
            "nav"
            "aside" 
            "section"
            "footer"
        ;
        grid-template-columns: 100%;
        grid-template-rows: 100px 100px 300px 480px 100px; 
    }
}
    

결과

'Layout' 카테고리의 다른 글

레이아웃05  (5) 2022.08.03
레이아웃04  (5) 2022.08.03
레이아웃03  (5) 2022.08.03
레이아웃02  (5) 2022.08.03

댓글