본문 바로가기
UI|UX/Layout

LayOut 구조 3

by SyuMay 2022. 7. 27.
728x90

레이아웃03

이번 레이아웃은 사이드메뉴가 하나 컨텐츠가 두개 들어간 구조입니다.
float, flex, grid 를이용하여 구조화를 할수있습니다.
flex 같은경우는 컨텐츠를 묶어서 구조화 합니다.


float를 이용한 레이아웃

CSS 속성(property) float 은 한 요소(element)가 보통 흐름(normal flow)으로부터 빠져 텍스트 및 인라인(inline) 요소가
그 주위를 감싸는 자기 컨테이너의 좌우측을 따라 배치되어야 함을 지정합니다.

 * {
    padding: 0;
    margin: 0;
}
body {
    background-color: #E1F5FE;
}
#wrap {
    width: 1200px;
    margin: 0 auto;
}
#header {
    width: 100%;
    height: 100px;
    background-color: #B3E5FC;
}
#nav {
    width: 100%;
    height: 100px;
    background-color: #81D4FA;
}
#aside {
    float: left;
    width: 30%;
    height: 780px;
    background-color: #4FC3F7;
}
#section_a {
    float: left;
    width: 70%;
    height: 260px;
    background-color: #29B6F6;
}
#section_b {
    float: left;
    width: 70%;
    height: 260px;
    background-color: #03A9F4;
}
#section_c {
    float: left;
    width: 70%;
    height: 260px;
    background-color: #039BE5;
}
#footer {
    width: 100%;
    height: 100px;
    background-color: #0288D1;
    clear: both;
}
@media (max-width: 1220px){
    #wrap {
        width: 96%;
    }
    #section_b {
        width: 35%;
        height: 520PX;
    }
    #section_c {
        width: 35%;
        height: 520px;
    }
}   
@media (max-width: 768px){
    #wrap {
        width: 100%;
    }
    #aside {
        width: 30%;
    }
    #section_a {
        height: 390px;
    }
    #section_b {
        width: 70%;
        height: 390PX;
    }
    #section_c {
        display: none;
    }
}
@media (max-width: 480px){
    #aside {
        width: 100%;
        height: 200px;
    }
    #container {
        width: 100%;
    }
    #section_a {
        width: 100%;
        height: 430px;
    }
    #section_b {
        width: 100%;
        height: 150px;
    }
}

결과


flex를 이용한 레이아웃

flex CSS 속성은 하나의 플렉스 아이템이 자신의 컨테이너가 차지하는 공간에 맞추기 위해 크기를 키우거나 줄이는 방법을 설정하는 속성입니다.
flex는 flex-grow, flex-shrink, flex-basis의 단축 속성입니다.

* {
    padding: 0;
    margin: 0;
}
body {
    background-color: #E1F5FE;
}
#wrap {
    display: flex;
    flex-wrap: wrap;
    width: 1200px;
    margin: 0 auto;
}
#header {
    width: 100%;
    height: 100px;
    background-color: #B3E5FC;
}
#nav {
    width: 100%;
    height: 100px;
    background-color: #81D4FA;
}
#aside {
    width: 30%;
    height: 780px;
    background-color: #4FC3F7;
}
#container {
    width: 70%;
}
#section_a {
    width: 100%;
    height: 260px;
    background-color: #29B6F6;
}
#section_b {
    width: 100%;
    height: 260px;
    background-color: #03A9F4;
}
#section_c {
    width: 100%;
    height: 260px;
    background-color: #039BE5;
}
#footer {
    width: 100%;
    height: 100px;
    background-color: #0288D1;
}
@media (max-width: 1220px){
    #wrap {
        width: 96%;
    }
    #container{
        display: flex;
        flex-wrap: wrap;
    }
    #section_b {
        width: 50%;
        height: 520PX;
    }
    #section_c {
        width: 50%;
        height: 520px;
    }
}   
@media (max-width: 768px){
    #wrap {
        width: 100%;
    }
    #aside {
        width: 30%;
    }
    #section_a {
        height: 390px;
    }
    #section_b {
        width: 100%;
        height: 390PX;
    }
    #section_c {
        display: none;
    } 
}
@media (max-width: 480px){
    #aside {
        width: 100%;
        height: 200px;
    }
    #container {
        width: 100%;
    }
    #section_a {
        width: 100%;
        height: 430px;
    }
    #section_b {
        width: 100%;
        height: 150px;
    } 
}

결과


grid를 이용한 레이아웃

CSS 그리드 레이아웃은 웹페이지를 위한 이차원 레이아웃 시스템입니다.
이 기능을 통해 콘텐츠를 행과 열에 배치할 수 있으며 복잡한 레이아웃을 직접 직관적으로 구축할 수 있는 많은 기능이 있습니다.

* {
    padding: 0;
    margin: 0;
}
body {
    background-color: #E1F5FE;
}
#wrap {
    display: grid;
    width: 1200px;
    margin: 0 auto;

    grid-template-areas: 
        "header header"
        "nav nav"
        "aside section_a"
        "aside section_b"
        "aside section_c"
        "footer footer";
    grid-template-columns: 30% 70%; 
    grid-template-rows: 100px 100px 260px 260px 260px 100px;
}
#header {
    grid-area: header;
    background-color: #B3E5FC;
}
#nav {
    grid-area: nav;
    background-color: #81D4FA;
}
#aside {
    grid-area: aside;
    background-color: #4FC3F7;
}
#section_a {
    grid-area: section_a;
    background-color: #29B6F6;
}
#section_b {
    grid-area: section_b;
    background-color: #03A9F4;
}
#section_c {
    grid-area: section_c;
    background-color: #039BE5;
}
#footer {
    grid-area: footer;
    background-color: #0288D1;
}
@media (max-width: 1220px){
    #wrap {
        width: 96%;
        grid-template-areas: 
            "header header header"
            "nav nav nav"
            "aside section_a section_a"
            "aside section_b section_c"
            "footer footer footer";
        grid-template-columns: 25% 37.5% 37.5%; 
        grid-template-rows: 100px 100px 260px 520px 100px;
    }
}   
@media (max-width: 768px){
    #wrap {
        width: 100%;
        grid-template-areas: 
            "header header"
            "nav nav"
            "aside section_a"
            "aside section_b"
            "footer footer";
        grid-template-columns: 30% 70% 
        grid-template-rows: 100px 100px 390px 390px 100px;
    }
    #section_c {
        display: none;
    }
}
@media (max-width: 480px){
    #wrap {
        grid-template-areas: 
            "header"
            "nav"
            "aside"
            "section_a"
            "section_b"
            "footer";
        grid-template-columns: 100%; 
        grid-template-rows: 100px 100px 200px 430px 150px 100px;
    }
}

결과

728x90
반응형

'UI|UX > Layout' 카테고리의 다른 글

LayOuy 구조 5  (13) 2022.07.27
LayOut 구조 4  (15) 2022.07.27
LayOut 구조 2  (15) 2022.07.27
LayOut 구조 1  (15) 2022.07.25

댓글


자바스크립트 사진

JavaScript

자세히보기