λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
WebSite

λ ˆμ΄μ•„μ›ƒ(Layout) μœ ν˜•03

by μ½”νŒŒμΉ΄ 2022. 7. 29.
728x90

λ ˆμ΄μ•„μ›ƒ03

λ ˆμ΄μ•„μ›ƒ(layout)μ΄λž€ νŠΉμ • 곡간에 μ—¬λŸ¬ ꡬ성 μš”μ†Œλ₯Ό 보기 μ’‹κ²Œ 효과적으둜 λ°°μΉ˜ν•˜λŠ” μž‘μ—…μ„ μ˜λ―Έν•©λ‹ˆλ‹€. μ›Ή νŽ˜μ΄μ§€μ˜ λ ˆμ΄μ•„μ›ƒμ€ μ›Ή μ‚¬μ΄νŠΈμ˜ 외관을 κ²°μ •μ§“λŠ” 맀우 μ€‘μš”ν•œ μš”μ†Œμž…λ‹ˆλ‹€. CSS둜 λ ˆμ΄μ•„μ›ƒ μž‘μ—…μ„ ν•˜λŠ” λ°©λ²•μ—λŠ” 3κ°€μ§€κ°€ μžˆμŠ΅λ‹ˆλ‹€. λ‹€μŒμ˜ λ ˆμ΄μ•„μ›ƒμ„ 3κ°€μ§€ λ°©λ²•μœΌλ‘œ μž‘μ—…ν•΄ 보도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€.

float 속성을 μ΄μš©ν•œ λ ˆμ΄μ•„μ›ƒ

'float'λΌλŠ” λ‹¨μ–΄λŠ” μ‚¬μ „μ μœΌλ‘œλŠ”'λœ¨λ‹€'λΌλŠ” 의미λ₯Ό κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€. μ›ΉνŽ˜μ΄μ§€μ—μ„œ 이미지λ₯Ό μ–΄λ–»κ²Œ λ„μ›Œμ„œ ν…μŠ€νŠΈμ™€ ν•¨κ»˜ λ°°μΉ˜ν•  것인지에 λŒ€ν•œ μ†μ„±μž…λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜, floatλ₯Ό μ‚¬μš©ν•˜λ©΄ μ˜μ—­μ΄ κΉ¨μ§€λŠ” 버그가 λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ˜μ—­ 깨짐을 λ°©μ§€ν•˜λŠ” 3κ°€μ§€ 방법은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

1. κΉ¨μ§€λŠ” μ˜μ—­μ— clear:bothλ₯Ό μ„€μ •ν•©λ‹ˆλ‹€.
2. λΆ€λͺ¨ λ°•μŠ€ μ˜μ—­μ— overflow:hidden을 μ„€μ •ν•©λ‹ˆλ‹€.
3. clearfixλ₯Ό μ„€μ •ν•©λ‹ˆλ‹€. κ°€μž₯ μ•ˆμ •μ μΈ λ°©λ²•μž…λ‹ˆλ‹€.

*{
    margin:0;
    padding: 0;
}
body{
    background-color: #E1F5FE;
}
#wrap{
    margin: 0 auto;
    width:1200px;
}
#header{
    height:100px;
    background-color: #B3E5FC;
}
#nav{
    height:100px;
    background-color: #81D4FA;
}
#aside{
    width:30%;
    height:780px;
    background-color: #4FC3F7;
    float:left;
}
#section{
    width:70%;
    height:260px;
    float:left;
    background-color: #29B6F6;
}
#section2{
    width:70%;
    height:260px;
    float:left;
    background-color: #03A9F4;
}
#section3{
    width:70%;
    height:260px;
    float:left;
    background-color: #039BE5;
}
#footer{
    height:100px;
    background-color: #0288D1;   
}

/* clearfix */
.clearfix::before,
.clearfix::after{
    content: '';
    display:block;
    line-height: 0;
}
.clearfix::after{
    clear:both;
}

@media(max-width:1300px){
    #wrap{
        width:96%;
    }
    #section2{
        width:35%;
        height:520px;
    }
    #section3{
        width:35%;
        height:520px;
    }
}
@media(max-width:768px){
    #wrap{
        width:100%;
    }
    #section{
        width:70%;
        height: 390px;
    }
    #section2{
        width:70%;
        height: 390px;
    }
    #section3{
        display:none;
    }
}
@media(max-width:480px){
    #aside{
        width:100%;
        height:200px;
    }
    #section{
        width:100%;
        height:430px;
    }
    #section2{
        width:100%;
        height:150px;
    }
}

flex 속성을 μ΄μš©ν•œ λ ˆμ΄μ•„μ›ƒ

'flex' 속성은 'flexible'의 μ€„μž„λ§λ‘œ, μœ λ™μ μΈ λ ˆμ΄μ•„μ›ƒμ„ μ†μ‰½κ²Œ λ§Œλ“€ 수 μžˆλ‹€λŠ” 의미λ₯Ό κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€. container와 item듀이 λΆ€λͺ¨μ™€ μžμ‹ 관계일 λ•Œ, container에 display:flex; ν˜Ήμ€ display:inline-flex;속성을 쀌으둜써 flexbox λ ˆμ΄μ•„μ›ƒμ„ μ μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

*{
    margin:0;
    padding: 0;
}
body{
    background-color: #E1F5FE;
}
#wrap{
    margin: 0 auto;
    width:1200px;
}
#header{
    height:100px;
    background-color: #B3E5FC;
}
#nav{
    height:100px;
    background-color: #81D4FA;
}
#main{
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    height: 780px;
}
#aside{
    width:30%;
    height:780px;
    background-color: #4FC3F7;
}
#section{
    width:70%;
    height:260px;
    background-color: #29B6F6;
}
#section2-1{
    width:100%;
    height:260px;
    background-color: #03A9F4;
}
#section2-2{
    width:100%;
    height:260px;
    background-color: #039BE5;
}
#footer{
    height:100px;
    background-color: #0288D1;   
}

@media(max-width: 1300px){
    #wrap{
        width:96%;
    }
    #section2{
        display: flex;
    }
    #section2-1{
        width:50%;
        height:520px;
    }
    #section2-2{
        width:50%;
        height:520px;
    }
}
@media(max-width: 768px){
    #wrap{
        width:100%;
    }
    #section{
        width:70%;
        height: 390px;
    }
    #section2-1{
        width:100%;
        height:390px;
    }
    #section2-2{
        display:none;
    }
}
@media(max-width: 480px){
    #aside{
        width:100%;
        height: 200px;
    }
    #section{
        width:100%;
        height: 430px;
    }
    #section2-1{
        width:100%;
        height:150px;
    }
}

grid 속성을 μ΄μš©ν•œ λ ˆμ΄μ•„μ›ƒ

'grid'λŠ” νŽ˜μ΄μ§€λ₯Ό μ—¬λŸ¬ μ£Όμš” μ˜μ—­μœΌλ‘œ λ‚˜λˆ„κ±°λ‚˜, 크기와 μœ„μΉ˜ 및 λ¬Έμ„œ 계측 ꡬ쑰의 κ΄€μ μ—μ„œ HTML κΈ°λ³Έ μš”μ†Œλ‘œ μž‘μ„±λœ 콘트둀 κ°„μ˜ 관계λ₯Ό μ •μ˜ν•˜λŠ” 데에 μœ μš©ν•˜κ²Œ μ‚¬μš©λ©λ‹ˆλ‹€. grid λ ˆμ΄μ•„μ›ƒμ€ tableκ³Ό λ§ˆμ°¬κ°€μ§€λ‘œ μ„Έλ‘œ μ—΄κ³Ό κ°€λ‘œ 행을 κΈ°μ€€μœΌλ‘œ μš”μ†Œλ₯Ό μ •λ ¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

*{
    margin:0;
}
body{
    background-color: rgb(252, 233, 233);
}
#wrap{
    width:1200px;
    margin: 0 auto;
    display: grid;
    grid-template-areas: 
        "header header"
        "nav nav"
        "aside section"
        "aside section2"
        "aside section3"
        "footer footer";
    grid-template-columns: 25% 75%;
    grid-template-rows: 100px 100px 260px 260px 260px 100px;
}
#header{
    background-color: #B3E5FC;
    grid-area: header;
}
#nav{
    background-color: #81D4FA;
    grid-area: nav;
}
#aside{
    background-color: #4FC3F7;
    grid-area: aside;
}
#section{
    background-color: #29B6F6;
    grid-area: section;
}
#section2{
    background-color: #03A9F4;
    grid-area: section2;
}
#section3{
    background-color: #039BE5;
    grid-area: section3;
}
#footer{
    background-color: #0288D1;
    grid-area: footer;
}

@media (max-width: 1300px){
    #wrap {
        width: 96%;
        grid-template-areas: 
            "header header header"
            "nav nav nav"
            "aside section section"
            "aside section2 section3"
            "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"
            "aside section2"
            "footer footer"
        ;
        grid-template-columns: 33.3333% 66.6666%;
        grid-template-rows: 100px 100px 390px 390px 100px;
    }
    #section3{
        display:none;
    }
}
@media (max-width: 480px){
    #wrap {
        grid-template-areas: 
            "header"
            "nav"
            "aside"
            "section"
            "section2"
            "footer"
        ;
        grid-template-columns: 100%;
        grid-template-rows: 100px 100px 200px 430px 150px 100px;
    }
}

κ²°κ³Ό

See the Pen layout03_05 by mj0614k (@mj0614k) on CodePen.

728x90

λŒ“κΈ€

κ°μ‚¬ν•©λ‹ˆλ‹€. πŸ¦™

CSS
κ΄‘κ³  쀀비쀑