Winnie The Pooh Bear 블로그 만들기 CSS로 레이아웃 쉽게짜보자, 텍스트 제한

배움기록/CSS

블로그 만들기 CSS로 레이아웃 쉽게짜보자, 텍스트 제한

코딩은 처음이라 2023. 5. 11. 21:31

“ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. ”

- Frederick Philips Brooks
Mythical Man-Month 저자
728x90
반응형

블로그 만들기 CSS로 레이아웃 쉽게짜보자, 텍스트 제한

 

 

 

 

블로그 만들기를 하면서

CSS로 레이아웃 틀을 미리 만들어놓고

HTML에서 입력만 해주면 바로 레이아웃이 바뀌도록 작업해줬는데요

정리를 한번 해보겠습니다.

 

 

 

HTML

        <div class="bolg__inner">
            <div class="blog__wrap bmStyle">
                <h2>Javascript Topic</h2>
                <div class="cards__inner col">
                    <div class="card">
                        <figure class="card__img">
                            <source
                            srcset=".../html/assets/img/Frame 12.jpg, ../html/assets/img/Frame 12.jpg 2x, ../html/assets/img/Frame 12.jpg 3x" />
                        <img src="../html/assets/img/Frame 12.jpg" alt="소개이미지">
                        </figure>
                        <div class="card__title"> 
                            <h3>지속적인 학습과 개발</h3>
                            <p>IT 산업은 빠르게 변화하고 발전하고 있습니다. 새로운 기술과 도구들이 출시되는 속도는 더더욱 빨라지고 있기 때문에, 개발자로서 적극적인 학습과 개발이 필수적입니다. </p>
                        </div>
                        <div class="card__info">
                            <a href="#" class="more">더보기</a>
                        </div>
                    </div>
                    <div class="card">
                        <figure class="card__img">
                            <source
                            srcset=".../html/assets/img/Frame 19.jpg, ../html/assets/img/Frame 19.jpg 2x, ../html/assets/img/Frame 19.jpg 3x" />
                        <img src="../html/assets/img/Frame 19.jpg" alt="소개이미지">
                        </figure>
                        <div class="card__title"> 
                            <h3>팀워크와 소통 능력 향상</h3>
                            <p>개발자는 혼자서 일하는 경우가 드뭅니다. 대부분의 경우 팀을 이루어 프로젝트를 수행하게 됩니다. 따라서, 팀원과의 원활한 소통과 협력이 필수적입니다.</p>
                        </div>
                        <div class="card__info">
                            <a href="#" class="more">더보기</a>
                        </div>
                    </div>
                    <div class="card">
                        <figure class="card__img">
                            <source
                            srcset=".../html/assets/img/Frame 17.jpg, ../html/assets/img/Frame 17.jpg 2x, ../html/assets/img/Frame 17.jpg 3x" />
                        <img src="../html/assets/img/Frame 17.jpg" alt="소개이미지">
                        </figure>
                        <div class="card__title"> 
                            <h3>코드 가독성 및 유지보수성 고려</h3>
                            <p>개발자가 작성한 코드는 다른 개발자들이 이해하고 유지보수할 수 있어야 합니다. 따라서, 코드 가독성과 유지보수성을 고려하여 코드를 작성해야 합니다.</p>
                        </div>
                        <div class="card__info">
                            <a href="#" class="more">더보기</a>
                        </div>
                    </div>
                    <div class="card">
                        <figure class="card__img">
                            <source
                            srcset=".../html/assets/img/Frame 15.jpg, ../html/assets/img/Frame 15.jpg 2x, ../html/assets/img/Frame 15.jpg 3x" />
                        <img src="../html/assets/img/Frame 15.jpg" alt="소개이미지">
                        </figure>
                        <div class="card__title"> 
                            <h3>문제 해결 능력</h3>
                            <p>프로젝트를 진행하다 보면 다양한 문제가 발생할 수 있습니다. 개발자는 이러한 문제를 빠르게 파악하고, 효과적인 문제 해결 방안을 찾아내야 합니다.</p>
                        </div>
                        <div class="card__info">
                            <a href="#" class="more">더보기</a>
                        </div>
                    </div>
                </div>
            </div>
            <div class="blog__wrap bmStyle">
                <h2>Javascript Topic</h2>
                <div class="cards__inner col2 line2">
                    <div class="card">
                        <figure class="card__img">
                            <source
                            srcset=".../html/assets/img/Frame 12.jpg, ../html/assets/img/Frame 12.jpg 2x, ../html/assets/img/Frame 12.jpg 3x" />
                        <img src="../html/assets/img/Frame 12.jpg" alt="소개이미지">
                        </figure>
                        <div class="card__title"> 
                            <h3>지속적인 학습과 개발</h3>
                            <p>IT 산업은 빠르게 변화하고 발전하고 있습니다. 새로운 기술과 도구들이 출시되는 속도는 더더욱 빨라지고 있기 때문에, 개발자로서 적극적인 학습과 개발이 필수적입니다. </p>
                        </div>
                        <div class="card__info">
                            <span class="author">jin</span>
                            <span class="date">2023.04.03</span>
                        </div>
                    </div>
                    <div class="card">
                        <figure class="card__img">
                            <source
                            srcset=".../html/assets/img/Frame 19.jpg, ../html/assets/img/Frame 19.jpg 2x, ../html/assets/img/Frame 19.jpg 3x" />
                        <img src="../html/assets/img/Frame 19.jpg" alt="소개이미지">
                        </figure>
                        <div class="card__title"> 
                            <h3>팀워크와 소통 능력 향상</h3>
                            <p>개발자는 혼자서 일하는 경우가 드뭅니다. 대부분의 경우 팀을 이루어 프로젝트를 수행하게 됩니다. 따라서, 팀원과의 원활한 소통과 협력이 필수적입니다.</p>
                        </div>
                        <div class="card__info">
                            <span class="author">jin</span>
                            <span class="date">2023.04.03</span>
                        </div>
                    </div>
                    <div class="card">
                        <figure class="card__img">
                            <source
                            srcset=".../html/assets/img/Frame 17.jpg, ../html/assets/img/Frame 17.jpg 2x, ../html/assets/img/Frame 17.jpg 3x" />
                        <img src="../html/assets/img/Frame 17.jpg" alt="소개이미지">
                        </figure>
                        <div class="card__title"> 
                            <h3>코드 가독성 및 유지보수성 고려</h3>
                            <p>개발자가 작성한 코드는 다른 개발자들이 이해하고 유지보수할 수 있어야 합니다. 따라서, 코드 가독성과 유지보수성을 고려하여 코드를 작성해야 합니다.</p>
                        </div>
                        <div class="card__info">
                            <span class="author">jin</span>
                            <span class="date">2023.04.03</span>
                        </div>
                    </div>
                    <div class="card">
                        <figure class="card__img">
                            <source
                            srcset=".../html/assets/img/Frame 15.jpg, ../html/assets/img/Frame 15.jpg 2x, ../html/assets/img/Frame 15.jpg 3x" />
                        <img src="../html/assets/img/Frame 15.jpg" alt="소개이미지">
                        </figure>
                        <div class="card__title"> 
                            <h3>문제 해결 능력</h3>
                            <p>프로젝트를 진행하다 보면 다양한 문제가 발생할 수 있습니다. 개발자는 이러한 문제를 빠르게 파악하고, 효과적인 문제 해결 방안을 찾아내야 합니다.</p>
                        </div>
                        <div class="card__info">
                            <span class="author">jin</span>
                            <span class="date">2023.04.03</span>
                        </div>
                    </div>
                </div>
            </div>
            <div class="blog__wrap bmStyle">
                <h2>Javascript Topic</h2>
                <div class="cards__inner col3 line3">
                    <div class="card">
                        <figure class="card__img">
                            <source
                            srcset=".../html/assets/img/Frame 12.jpg, ../html/assets/img/Frame 12.jpg 2x, ../html/assets/img/Frame 12.jpg 3x" />
                        <img src="../html/assets/img/Frame 12.jpg" alt="소개이미지">
                        </figure>
                        <div class="card__title"> 
                            <h3>지속적인 학습과 개발</h3>
                            <p>IT 산업은 빠르게 변화하고 발전하고 있습니다. 새로운 기술과 도구들이 출시되는 속도는 더더욱 빨라지고 있기 때문에, 개발자로서 적극적인 학습과 개발이 필수적입니다. </p>
                        </div>
                        <div class="card__info">
                            <span class="author">jin</span>
                            <span class="date">2023.04.03</span>
                        </div>
                    </div>
                    <div class="card">
                        <figure class="card__img">
                            <source
                            srcset=".../html/assets/img/Frame 19.jpg, ../html/assets/img/Frame 19.jpg 2x, ../html/assets/img/Frame 19.jpg 3x" />
                        <img src="../html/assets/img/Frame 19.jpg" alt="소개이미지">
                        </figure>
                        <div class="card__title"> 
                            <h3>팀워크와 소통 능력 향상</h3>
                            <p>개발자는 혼자서 일하는 경우가 드뭅니다. 대부분의 경우 팀을 이루어 프로젝트를 수행하게 됩니다. 따라서, 팀원과의 원활한 소통과 협력이 필수적입니다.</p>
                        </div>
                        <div class="card__info">
                            <span class="author">jin</span>
                            <span class="date">2023.04.03</span>
                        </div>
                    </div>
                    <div class="card">
                        <figure class="card__img">
                            <source
                            srcset=".../html/assets/img/Frame 17.jpg, ../html/assets/img/Frame 17.jpg 2x, ../html/assets/img/Frame 17.jpg 3x" />
                        <img src="../html/assets/img/Frame 17.jpg" alt="소개이미지">
                        </figure>
                        <div class="card__title"> 
                            <h3>코드 가독성 및 유지보수성 고려</h3>
                            <p>개발자가 작성한 코드는 다른 개발자들이 이해하고 유지보수할 수 있어야 합니다. 따라서, 코드 가독성과 유지보수성을 고려하여 코드를 작성해야 합니다.</p>
                        </div>
                        <div class="card__info">
                            <span class="author">jin</span>
                            <span class="date">2023.04.03</span>
                        </div>
                    </div>
                    <div class="card">
                        <figure class="card__img">
                            <source
                            srcset=".../html/assets/img/Frame 15.jpg, ../html/assets/img/Frame 15.jpg 2x, ../html/assets/img/Frame 15.jpg 3x" />
                        <img src="../html/assets/img/Frame 15.jpg" alt="소개이미지">
                        </figure>
                        <div class="card__title"> 
                            <h3>문제 해결 능력</h3>
                            <p>프로젝트를 진행하다 보면 다양한 문제가 발생할 수 있습니다. 개발자는 이러한 문제를 빠르게 파악하고, 효과적인 문제 해결 방안을 찾아내야 합니다.</p>
                        </div>
                        <div class="card__info">
                            <span class="author">jin</span>
                            <span class="date">2023.04.03</span>
                        </div>
                    </div>
                    <div class="card">
                        <figure class="card__img">
                            <source
                            srcset=".../html/assets/img/Frame 15.jpg, ../html/assets/img/Frame 15.jpg 2x, ../html/assets/img/Frame 15.jpg 3x" />
                        <img src="../html/assets/img/Frame 15.jpg" alt="소개이미지">
                        </figure>
                        <div class="card__title"> 
                            <h3>문제 해결 능력</h3>
                            <p>프로젝트를 진행하다 보면 다양한 문제가 발생할 수 있습니다. 개발자는 이러한 문제를 빠르게 파악하고, 효과적인 문제 해결 방안을 찾아내야 합니다.</p>
                        </div>
                        <div class="card__info">
                            <span class="author">jin</span>
                            <span class="date">2023.04.03</span>
                        </div>
                    </div>
                    <div class="card">
                        <figure class="card__img">
                            <source
                            srcset=".../html/assets/img/Frame 15.jpg, ../html/assets/img/Frame 15.jpg 2x, ../html/assets/img/Frame 15.jpg 3x" />
                        <img src="../html/assets/img/Frame 15.jpg" alt="소개이미지">
                        </figure>
                        <div class="card__title"> 
                            <h3>문제 해결 능력</h3>
                            <p>프로젝트를 진행하다 보면 다양한 문제가 발생할 수 있습니다. 개발자는 이러한 문제를 빠르게 파악하고, 효과적인 문제 해결 방안을 찾아내야 합니다.</p>
                        </div>
                        <div class="card__info">
                            <span class="author">jin</span>
                            <span class="date">2023.04.03</span>
                        </div>
                    </div>
                </div>
            </div>
            <div class="blog__wrap">
                <h2>Javascript Topic</h2>
                <div class="cards__inner col6">
                    <div class="card">
                        <figure class="card__img">
                            <source
                            srcset=".../html/assets/img/Frame 12.jpg, ../html/assets/img/Frame 12.jpg 2x, ../html/assets/img/Frame 12.jpg 3x" />
                        <img src="../html/assets/img/Frame 12.jpg" alt="소개이미지">
                        </figure>
                        <div class="card__title"> 
                            <h3>지속적인 학습과 개발</h3>
                            <p>IT 산업은 빠르게 변화하고 발전하고 있습니다. 새로운 기술과 도구들이 출시되는 속도는 더더욱 빨라지고 있기 때문에, 개발자로서 적극적인 학습과 개발이 필수적입니다. </p>
                        </div>
                        <div class="card__info">
                            <a href="#" class="more">더보기</a>
                        </div>
                    </div>
                    <div class="card">
                        <figure class="card__img">
                            <source
                            srcset=".../html/assets/img/Frame 19.jpg, ../html/assets/img/Frame 19.jpg 2x, ../html/assets/img/Frame 19.jpg 3x" />
                        <img src="../html/assets/img/Frame 19.jpg" alt="소개이미지">
                        </figure>
                        <div class="card__title"> 
                            <h3>팀워크와 소통 능력 향상</h3>
                            <p>개발자는 혼자서 일하는 경우가 드뭅니다. 대부분의 경우 팀을 이루어 프로젝트를 수행하게 됩니다. 따라서, 팀원과의 원활한 소통과 협력이 필수적입니다.</p>
                        </div>
                        <div class="card__info">
                            <a href="#" class="more">더보기</a>
                        </div>
                    </div>
                    <div class="card">
                        <figure class="card__img">
                            <source
                            srcset=".../html/assets/img/Frame 17.jpg, ../html/assets/img/Frame 17.jpg 2x, ../html/assets/img/Frame 17.jpg 3x" />
                        <img src="../html/assets/img/Frame 17.jpg" alt="소개이미지">
                        </figure>
                        <div class="card__title"> 
                            <h3>코드 가독성 및 유지보수성 고려</h3>
                            <p>개발자가 작성한 코드는 다른 개발자들이 이해하고 유지보수할 수 있어야 합니다. 따라서, 코드 가독성과 유지보수성을 고려하여 코드를 작성해야 합니다.</p>
                        </div>
                        <div class="card__info">
                            <a href="#" class="more">더보기</a>
                        </div>
                    </div>
                    <div class="card">
                        <figure class="card__img">
                            <source
                            srcset=".../html/assets/img/Frame 15.jpg, ../html/assets/img/Frame 15.jpg 2x, ../html/assets/img/Frame 15.jpg 3x" />
                        <img src="../html/assets/img/Frame 15.jpg" alt="소개이미지">
                        </figure>
                        <div class="card__title"> 
                            <h3>문제 해결 능력</h3>
                            <p>프로젝트를 진행하다 보면 다양한 문제가 발생할 수 있습니다. 개발자는 이러한 문제를 빠르게 파악하고, 효과적인 문제 해결 방안을 찾아내야 합니다.</p>
                        </div>
                        <div class="card__info">
                            <a href="#" class="more">더보기</a>
                        </div>
                    </div>
                    <div class="card">
                        <figure class="card__img">
                            <source
                            srcset=".../html/assets/img/Frame 15.jpg, ../html/assets/img/Frame 15.jpg 2x, ../html/assets/img/Frame 15.jpg 3x" />
                        <img src="../html/assets/img/Frame 15.jpg" alt="소개이미지">
                        </figure>
                        <div class="card__title"> 
                            <h3>문제 해결 능력</h3>
                            <p>프로젝트를 진행하다 보면 다양한 문제가 발생할 수 있습니다. 개발자는 이러한 문제를 빠르게 파악하고, 효과적인 문제 해결 방안을 찾아내야 합니다.</p>
                        </div>
                        <div class="card__info">
                            <a href="#" class="more">더보기</a>
                        </div>
                    </div>
                    <div class="card">
                        <figure class="card__img">
                            <source
                            srcset=".../html/assets/img/Frame 15.jpg, ../html/assets/img/Frame 15.jpg 2x, ../html/assets/img/Frame 15.jpg 3x" />
                        <img src="../html/assets/img/Frame 15.jpg" alt="소개이미지">
                        </figure>
                        <div class="card__title"> 
                            <h3>문제 해결 능력</h3>
                            <p>프로젝트를 진행하다 보면 다양한 문제가 발생할 수 있습니다. 개발자는 이러한 문제를 빠르게 파악하고, 효과적인 문제 해결 방안을 찾아내야 합니다.</p>
                        </div>
                        <div class="card__info">
                            <a href="#" class="more">더보기</a>
                        </div>
                    </div>
                    
                </div>
            </div>
        </div>

HTML코드는 이렇습니다.

 

blog__wrap안에 card__inner 안에 card안에 card__img, card__title, card__info이렇게 구조를 잡아주고

한줄에 이미지가 몇개 나오게 할건지 글씨는 몇줄로 할건지를 CSS로 잡아주고 

 

전체 틀인 card__inner에 css명만 넣어주면 구조를 편리하게 마음데로 바꿀 수 있습니다.

 

나중에 다른곳에서 작업할때도 css명만 넣어주면 되니 엄청 편리하겠죠?

 

CSS

.cards__inner {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

.cards__inner>.card {
    width: 24%;
}

.cards__inner.col2>.card {
    width: 49%;
}

.cards__inner.col3>.card {
    width: 32.3333%;
}

.cards__inner.col4>.card {
    width: 24%;
}

.cards__inner.col6>.card {
    width: 15.6666%;
}

이미지 레이아웃 부분입니다.

 

col명에 숫자만 붙여서 이미지가 몇개 나오게 할건지 정해주고

width값을 이미지 숫자에 맞게 지정해줬습니다.

 

 

글자 줄 제한 지정

.cards__inner.line3 .card__title p {
    -webkit-line-clamp: 3;
}

.cards__inner.line2 .card__title p {
    -webkit-line-clamp: 2;
}

블로그의 게시글 글의 줄 수는 다 다양하니까 맞춰주지 않는다면 레이아웃이 엉망이되겠죠?

 

그럴때 쓰는 CSS입니다.

 

-webkit-line-clamp: 3을 해주면 한번에 최대 3줄까지만 출력되어

전체 레이아웃을 맞출수가 있습니다.

이런식으로 위와 마찬가지로 line이라는 이름으로 지정해주고

 

HTML에서 3줄로 나오게 하고싶다면 line3을 2줄로 나오게하고싶다면 line2만 붙여주면 됩니다.

 

 

반응형