순수한 HTML, CSS를 사용하여 완전히 반응하는 제품 카드를 만드는 방법.

안녕하세요, 오늘은 순수한 HTML과 CSS만 사용하여 완전히 반응하는 제품 페이지를 만드는 방법을 살펴보겠습니다. 우리의 제품 카드에는 놀라운 사용자 경험을 제공하는 멋진 미니멀리즘 애니메이션이 있습니다.

데모를 보거나 코딩 자습서를 원합니다. 아래에서 튜토리얼을 볼 수 있습니다.

비디오 튜토리얼





I appreciate if you can support me by subscribing my youtube channel.



따라서 더 이상 시간을 낭비하지 않고 이를 코딩하는 방법을 살펴보겠습니다.

암호



이 프로젝트에는 index.htmlstyle.css 파일만 있습니다. 그리고 img 폴더에는 3개의 이미지가 포함되어 있으며 here에서 다운로드할 수 있습니다.

이제 코딩을 시작하겠습니다.
기본 HTML5 구조 및 링크style.css 파일을 페이지에 작성하여 시작하십시오. 그런 다음 이와 같은 제품 카드 구조를 만듭니다.

<div class="product">
    <div class="product-img">
        <img src="img/bag.png" alt="">
        <span class="tag">new</span>
    </div>
    <div class="product-listing">

    </div>
</div>



@import url('https://fonts.googleapis.com/css2?family=Dosis:wght@600&family=Roboto:wght@300;400;500;700;900&display=swap');

*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body{
    width: 100%;
    min-height: 100vh;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #966e4f;
    font-family: 'roboto', sans-serif;
}

body::before{
    content: '';
    position: absolute;
    left: 0%;
    transform: translateX(-50%) skewX(-15deg);
    width: 20px;
    height: 100%;
    background: #966e4f;
    border-left: 60px solid #eae3d2;
    border-right: 30px solid #eae3d2;
    opacity: 0;
    animation: slide-in 2s 1.5s forwards 1;
}

@keyframes slide-in{
    100%{
        opacity: 1;
        left: 50%;
    }
}

.product{
    position: relative;
    width: 1000px;
    min-width: 350px;
    min-height: 500px;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
}

.product-img{
    width: 40%;
    height: 500px;
    background: #fff;
    position: relative;
    opacity: 0;
    transform: translateY(-50px);
    animation: fade-in 1s forwards 1;
}

.product-img img{
    width: 100%;
    height: 100%;
    object-fit: contain;
    user-select: none;
}

.tag{
    position: absolute;
    top: 20px;
    left: -10px;
    transform-origin: left;
    opacity: 0;
    transform: rotate(-90deg);
    text-transform: capitalize;
    color: #eae3d2;
    padding: 5px 10px;
    width: 100px;
    font-size: 18px;
    text-align: center;
    background: #292929;
    user-select: none;
    animation: tag .5s 1s forwards 1;
}

@keyframes tag{
    100%{
        opacity: 1;
        transform: rotate(-20deg);
    }
}

.product-listing{
    width: 60%;
    min-height: 500px;
    height: auto;
    background: #292929;
    padding: 40px;
    display: flex;
    justify-content: center;
    color: #eae3d2;
    opacity: 0;
    transform: translateY(50px);
    animation: fade-in 1s forwards 1;
}

@keyframes fade-in{
    100%{
        opacity: 1;
        transform: translateY(0);
    }
}




산출



Great Now는 제품 정보 요소를 만듭니다.

<div class="product-listing">
    <div class="content">
        <h1 class="name">leather bag</h1>
        <p class="info">Lorem ipsum dolor sit amet consectetur adipisicing elit. Doloremque laborum optio natus quibusdam ea nam odit vitae id unde officia.</p>
        <p class="price">$ 299</p>
        <div class="btn-and-rating-box">
            <div class="rating">
                <img src="img/star.png" alt="">
                <img src="img/star.png" alt="">
                <img src="img/star.png" alt="">
                <img src="img/star.png" alt="">
                <img src="img/star stroke.png" alt="">
            </div>
            <button class="btn">buy now</button>
        </div>
    </div>
</div>



.name{
    font-family: 'dosis';
    font-size: 70px;
    text-transform: capitalize;
}

.info{
    font-size: 18px;
    line-height: 30px;
    margin: 50px 0;
}

.price{
    font-size: 70px;
    font-weight: 100;
    margin-bottom: 20px;
}

.btn-and-rating-box{
    width: 100%;
    display: flex;
    justify-content: space-between;
}

.rating{
    width: fit-content;
    display: flex;
    justify-content: center;
    align-items: center;
}

.rating img{
    width: 20px;
    height: 20px;
    margin: 0 2px;
}

.btn{
    background: #eae3d2;
    color: #292929;
    border: none;
    text-transform: capitalize;
    font-size: 16px;
    padding: 10px 20px;
    cursor: pointer;
}

.btn:hover{
    background-color: #eedbaf;
}




산출



제품 카드가 완성되었습니다. 이제 반응형으로 만들어 봅시다.

@media (max-width: 1100px){
    body::before{
        transform: translateX(-50%) skewX(-5deg);
    }
    .product{
        flex-direction: column;
        width: 90%;
        margin: 5vh 0;
    }
    .product-img{
        width: 100%;
        height: 300px;
    }
    .product-listing{
        width: 100%;
        min-height: auto;
    }
    .name,.price{
        font-size: 50px;
    }
    .info{
        font: 16px;
    }
}




산출



그게 다야. 나는 당신이 하나하나 모든 것을 이해하기를 바랍니다. 의심스럽거나 내가 놓친 것이 있으면 의견에 알려주십시오.

유용한 자습서



  • Music Player App
  • Disney+ Clone
  • Youtube API - Youtube Clone
  • TMDB - Netflix Clone
  • Responsive Portfolio with contact form
  • Fully working Blogging website with backend

  • 제 유튜브 채널을 구독해주시면 정말 감사하겠습니다. 멋진 웹 콘텐츠를 만듭니다.

    읽어 주셔서 감사합니다.

    좋은 웹페이지 즐겨찾기