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

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

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

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

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

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

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

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

*{
    margin: 0;            
}
body{
    background-color: #E8F5E9;
}
#wrap{
    width:1200px;
    margin: 0 auto;
}
#header{
    width:100%;
    height:100px;
    background-color: #C8E6C9;
}
#nav{
    width:100%;
    height:100px;
    background-color: #A5D6A7;
}
#aside{
    width:25%;
    height:780px;
    background-color: #81C784;
    float:left;
}
#section{
    width:50%;
    height: 780px;
    background-color: #66BB6A;
    float:left;
}
#section2{
    width:25%;
    height: 780px;
    background-color: #4CAF50;
    float:left;
}
#footer{
    width:100%;
    height:100px;
    background-color: #43A047;
    clear:both;
}

@media (max-width: 1300px){
    #wrap {
        width: 96%;
    }
}
@media (max-width: 768px){
    #wrap {
        width:100%;
    }
    #aside{
        width:30%;
        height:630px;
    }
    #section{
        width:70%;
        height:630px;
    }
    #section2{
        width:100%;
        height: 150px; 
    }
}
@media (max-width: 480px){
    #wrap{
        width:100%;
    }
    #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;            
}
body{
    background-color: #E8F5E9;
}
#wrap{
    width:1200px;
    margin: 0 auto;
}
#header{
    width:100%;
    height:100px;
    background-color: #C8E6C9;
}
#nav{
    width:100%;
    height:100px;
    background-color: #A5D6A7;
}
#aside{
    width:25%;
    height:780px;
    background-color: #81C784;
}
#section{
    width:50%;
    height: 780px;
    background-color: #66BB6A;
}
#section2{
    width:25%;
    height: 780px;
    background-color: #4CAF50;
}
#footer{
    width:100%;
    height:100px;
    background-color: #43A047;
}
.contents{
    display:flex;
    flex-wrap: wrap;
}

@media (max-width: 1300px){
    #wrap {
        width: 96%;
    }
    #header, #footer, #nav{
        width:100%;
    }
    #aside{
        width:25%;
    }
    #section{
        width:50%;
    }
    #section2{
        width:25%;
    }
}
@media (max-width: 768px){
    #wrap {
        width:100%;
    }
    #aside{
        width:30%;
        height:630px;
    }
    #section{
        width:70%;
        height:630px;
    }
    #section2{
        width:100%;
        height: 150px; 
    }
}
@media (max-width: 480px){
    #wrap{
        width:100%;
    }
    #aside {
        width:100%;
        height:200px;
    }
    #section {
        width:100%;
        height:430px;
    }
    #section2{
        width:100%;
        height: 150px; 
    }
}

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

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

*{
    margin: 0;            
}
body{
    background-color: #E8F5E9;
}
#wrap{
    width:1200px;
    margin: 0 auto;
    display: grid;
    grid-template-areas: 
        "header header header"
        "nav nav nav"
        "aside section section2"
        "footer footer footer"
    ;
    grid-template-columns: 25% 50% 25%;
    grid-template-rows: 100px 100px 780px 100px;
}
#header{
    grid-area: header;
    background-color: #C8E6C9;
}
#nav{
    grid-area: nav;
    background-color: #A5D6A7;
}
#aside{
    grid-area: aside;
    background-color: #81C784;
}
#section{
    grid-area: section;
    background-color: #66BB6A;
}
#section2{
    grid-area: section2;
    background-color: #4CAF50;
}
#footer{
    grid-area: footer;
    background-color: #43A047;
}

@media (max-width: 1300px){
    #wrap {
        width: 96%;
    }
}
@media (max-width: 768px){
    #wrap {
        width: 100%;
        grid-template-areas: 
        "header header"
        "nav nav"
        "aside section"
        "section2 section2"
        "footer footer"
    ;
    grid-template-columns: 40% 60%;
    grid-template-rows: 100px 100px 630px 150px 100px;
    }
}
@media (max-width: 480px){
    #wrap {
        width: 100%;
        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 layout02_05 by mj0614k (@mj0614k) on CodePen.

728x90

λŒ“κΈ€

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

CSS
κ΄‘κ³  쀀비쀑