다음과 같은 랜딩페이지 제작을 목적으로 한다. 

 

 

해당 페이지는 반으로 영역이 나뉘어져 있으나, 

영역에 마우스를 올릴 경우 이벤트가 활성화 되어

활성화 된 영역이 확대 되며, 활성화 되지 못한 부분은 축소된다.

 

또한 BUY NOW를 누를 경우 버튼의 배경이 Transperent 속성을 잃게 된다. 

 

 

<body>
    <div class="container">
        <div class="split left">
            <h1>PlayStation 5</h1>
            <a href="#" class="btn">Buy Now</a>
        </div>
        <div class="split right">
            <h1>XBox Series X</h1>
            <a href="#" class="btn">Buy Now</a>
        </div>

    </div>


    <script src="script.js"></script>
</body>

뼈대는 매우 간단하다. 

CSS 가 조금 헤비한데 간단하게 살펴보면 다음과 같다. 

 

:root {
    --left-bg-color : rgba(87,84,236,0.7);
    --right-bg-color :  rgba(43,43,43,0.8);
    --left-btn-hover-color : rgba(87,84,236,1);
    --right-btn-hover-color : rgba(28,122,28,1);
    --hover-width : 75%;
    --other-width : 25%;
    --speed : 1000ms;
}

.split.left .btn:hover {
    background-color: var(--left-btn-hover-color);
    border-color: var(--left-btn-hover-color);
}

.split.right .btn:hover {
    background-color: var(--right-btn-hover-color);
    border-color: var(--right-btn-hover-color);
}

.split.left {
    left :0;
    background:url('https://cdn.mos.cms.futurecdn.net/Vh6eSp4siwggK7RUys72nP-1920-80.jpg.webp');
    background-size: cover;
    background-repeat: no-repeat;
}

.split.left::before {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    background: var(--left-bg-color);
}

.split.right {
    right: 0;
    background : url('https://assets-prd.ignimgs.com/2022/07/18/xboxseriesx-1-blogroll-1-1658125596470.jpeg');
    background-repeat: no-repeat;
    background-size: cover;
}

.split.right::before {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    background: var(--right-bg-color);
}

.split.right, .split.left, .split.left::before, .split.right::before {
    transition: all var(--speed) ease-in-out;
}

.hover-left .left {
    width : var(--hover-width);
}

.hover-left .right {
    width : var(--other-width);
}

.hover-right .right {
    width : var(--hover-width);
}

.hover-right .left {
    width : var(--other-width);
}

 

또한 영역크기가 명확한 페이지인 만큼

화면이 작아질 경우 예상치 않은 모양새가 되어버리는 점을

감안하여 미디어쿼리를 통해 max-width를 설정해주었다. 

 

 

@media (max-width: 800px) {
    h1 {
        font-size : 2rem;
        top: 30%
    }
    .btn {
        width: 12rem;
        padding:1.2rem;
    }
}

 

+ Recent posts