Computer >> 컴퓨터 >  >> 프로그래밍 >> CSS

CSS만으로 스마트폰·태블릿·노트북 기기 모양 만드는 방법

CSS를 활용하면 이미지 파일 없이도 스마트폰, 태블릿, 노트북과 같은 실제 기기의 외형을 화면에 그대로 재현할 수 있습니다. 핵심은 border(테두리) 속성인데, 두꺼운 테두리를 기기의 베젤처럼 활용하고 border-radius로 둥근 모서리를 표현하는 방식입니다.

기기 모양 구현 원리

아래 예제에서 사용된 주요 CSS 속성은 다음과 같습니다.

  • border: 16px solid — 좌우 얇은 베젤을 표현합니다.
  • border-top-width: 60px; border-bottom-width: 60px; — 상하 테두리를 두껍게 하여 스마트폰 상단과 하단의 굵은 베젤을 만듭니다.
  • border-radius: 36px; — 기기 특유의 둥근 모서리를 나타냅니다.
  • :after 가상 요소 — 하단 베젤 중앙에 동그란 홈 버튼을 추가해 완성도를 높입니다.

예제 코드

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
    .mobileDevice {
        position: relative;
        width: 360px;
        height: 400px;
        margin: auto;
        border: 16px rgb(7, 80, 35) solid;
        border-top-width: 60px;
        border-bottom-width: 60px;
        border-radius: 36px;
    }
    .mobileDevice:after {
        content: '';
        display: block;
        width: 35px;
        height: 35px;
        position: absolute;
        left: 50%;
        bottom: -65px;
        transform: translate(-50%, -50%);
        background: #333;
        border-radius: 50%;
        border: 2px solid rgb(200, 255, 0);
    }
    .mobileDevice .screen {
        width: 360px;
        height: 400px;
        background: white;
    }
</style>
</head>
<body>
<h1 style="text-align: center;">Device look example </h1>
<div class="mobileDevice">
<div class="screen">
<iframe src="https://wikipedia.org/" style="width:100%;border:none;height:100%" />
</div>
</div>
</body>
</html>

코드 설명

.mobileDevice 클래스가 기기 본체 역할을 하며, 내부의 .screen 영역에는 <iframe>을 넣어 실제 웹페이지가 화면에 출력되도록 했습니다. 이렇게 하면 마치 스마트폰으로 웹사이트를 보고 있는 것 같은 효과를 낼 수 있습니다.

홈 버튼은 .mobileDevice:after 가상 요소로 구현했습니다. position: absolutetransform: translate(-50%, -50%)를 조합해 버튼을 하단 베젤의 정중앙에 배치하고, border-radius: 50%로 원형 모양을 만들었습니다.

실행 결과

위 코드를 실행하면 다음과 같이 스마트폰 형태의 프레임 안에 웹페이지가 표시됩니다.

CSS만으로 스마트폰·태블릿·노트북 기기 모양 만드는 방법

응용 팁

같은 원리로 태블릿이나 노트북 모양도 쉽게 만들 수 있습니다. 태블릿은 전체 크기를 키우고 베젤 두께를 조절하면 되고, 노트북은 화면 부분에 얇은 테두리를 적용한 뒤 하단에 넓은 직사각형 바닥(base)을 추가하면 됩니다. 여기에 그림자(box-shadow)를 더하면 더욱 입체적인 기기 연출이 가능합니다.