CSS - 레이어: 웹 디자인에서 깊이를 완성하는 예술

안녕하세요, 야심차운 웹 디자이너 여러분! 오늘 우리는 CSS 레이어의 fascinatig 세상으로 뛰어들어 보겠습니다. webpage를 캔버스라고 생각하고, 레이어는 서로 위에 쌓을 수 있는 다양한 요소들로, 깊이와 차원을 만들어냅니다. 디지털 콜라주를 만드는 것처럼 흥미롭지 않나요? 시작해 보겠습니다!

CSS - Layers

CSS 레이어 - z-index 속성을 사용하다

z-index는 무엇인가요?

z-index 속성은 HTML 요소们的 마법의 엘리베이터입니다. 이는 겹치는 요소들이 어느 요소가 위에 보일지 결정합니다. 고층 빌딩의 웹 디자인에서 요소들에게 층 수를 할당하는 것처럼 생각해 보세요.

간단한 예를 보겠습니다:

<div class="container">
<div class="box red">1</div>
<div class="box blue">2</div>
<div class="box green">3</div>
</div>
.container {
position: relative;
}

.box {
width: 100px;
height: 100px;
position: absolute;
}

.red {
background-color: red;
z-index: 1;
top: 0;
left: 0;
}

.blue {
background-color: blue;
z-index: 2;
top: 30px;
left: 30px;
}

.green {
background-color: green;
z-index: 3;
top: 60px;
left: 60px;
}

이 예제에서 우리는 다른 z-index 값을 가진 세 개의 박스가 있습니다. green 박스(z-index: 3)가 가장 위에 나타나고, 그 뒤로 blue 박스(z-index: 2), 그리고 red 박스(z-index: 1)가 뒤따릅니다.

프로 팁:

z-index는 position 값이 static이 아닌 요소들(예: relative, absolute, fixed)에서만 작동합니다.

CSS 레이어 - 이미지와 텍스트

이제 창의적으로 이미지와 텍스트를 레이어링해 보겠습니다!

<div class="image-container">
<img src="background.jpg" alt="Background" class="background">
<div class="text-overlay">
<h2>Welcome to My Website</h2>
<p>CSS 레이어의 아름다움을 탐구해!</p>
</div>
</div>
.image-container {
position: relative;
width: 500px;
height: 300px;
}

.background {
width: 100%;
height: 100%;
object-fit: cover;
}

.text-overlay {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
text-align: center;
color: white;
background-color: rgba(0, 0, 0, 0.5);
padding: 20px;
border-radius: 10px;
}

이 예제에서 우리는 배경 이미지 위에 텍스트를 오버레이한 있습니다. text-overlay div는 relative 컨테이너 내에서 절대적으로 위치시키되, 이미지 위에 완벽하게 중앙에 배치할 수 있습니다.

재미있는 사실:

이 기술은 자주 웹사이트의 헤로 섹션에서 시각적으로 매력적인 헤더를 만들기 위해 사용됩니다!

CSS 레이어 - z-index 속성을 사용하지 않을 때

때로는 z-index를 사용하지 않아도 레이어를 만들 수 있습니다. HTML 요소们的 순서가 그들의 쌓이는 순서를 결정할 수 있습니다.

<div class="stacked-boxes">
<div class="box bottom">Bottom</div>
<div class="box middle">Middle</div>
<div class="box top">Top</div>
</div>
.stacked-boxes {
position: relative;
height: 200px;
width: 200px;
}

.box {
position: absolute;
width: 100px;
height: 100px;
display: flex;
justify-content: center;
align-items: center;
color: white;
}

.bottom {
background-color: blue;
top: 0;
left: 0;
}

.middle {
background-color: green;
top: 30px;
left: 30px;
}

.top {
background-color: red;
top: 60px;
left: 60px;
}

이 예제에서 요소들은 HTML 내의 순서에 따라 쌓입니다. "top" 박스가 위에 나타나고, 그 뒤로 "middle", 그리고 "bottom"이 뒤따릅니다.

기억하세요:

z-index를 사용하지 않을 때, HTML에서 나중에 나오는 요소들이 앞서 나오는 요소 위에 표시됩니다.

모든 것을 함께 모음

이제 다양한 방법으로 레이어를 만드는 방법을 탐구했으니, 더 복잡한 예제로 우리의 지식을 결합해 보겠습니다:

<div class="scene">
<img src="landscape.jpg" alt="Landscape" class="background">
<div class="cloud cloud1"></div>
<div class="cloud cloud2"></div>
<div class="sun"></div>
<div class="bird bird1"></div>
<div class="bird bird2"></div>
<div class="message">Welcome to our layered world!</div>
</div>
.scene {
position: relative;
width: 800px;
height: 600px;
overflow: hidden;
}

.background {
width: 100%;
height: 100%;
object-fit: cover;
}

.cloud {
position: absolute;
width: 200px;
height: 100px;
background-color: white;
border-radius: 50px;
}

.cloud1 {
top: 50px;
left: 100px;
z-index: 2;
}

.cloud2 {
top: 100px;
right: 150px;
z-index: 2;
}

.sun {
position: absolute;
top: 50px;
right: 50px;
width: 100px;
height: 100px;
background-color: yellow;
border-radius: 50%;
z-index: 1;
}

.bird {
position: absolute;
width: 30px;
height: 20px;
background-color: black;
clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
}

.bird1 {
top: 150px;
left: 300px;
z-index: 3;
}

.bird2 {
top: 200px;
right: 400px;
z-index: 3;
}

.message {
position: absolute;
bottom: 50px;
left: 50%;
transform: translateX(-50%);
background-color: rgba(255, 255, 255, 0.7);
padding: 20px;
border-radius: 10px;
z-index: 4;
}

이 복잡한 장면에서 우리는 z-index와 요소 순서를 결합하여 레이어드 풍경을 만들었습니다. 배경 이미지가 가장 아래에 있고, 태양, 구름, 새들, 그리고 마지막으로 우리의 환영 메시지가 위에 있습니다.

결론

축하합니다! 지금 CSS 레이어의 세상으로 첫 걸음을 뗐습니다. 디자인에서 깊이를 만드는 것은 그림을 그리는 것과 같아요 - 연습과 창의성이 필요합니다. z-index 값과 요소 위치를 다양하게 실험하여 웹사이트에 완벽한 외관을 이루도록 하세요.

이제 우리가 다루었던 방법들의 빠른 참조 표를 제공합니다:

방법 설명 사용 사례
z-index 명시적으로 쌓이는 순서 설정 정밀한 레이어링이 필요할 때
HTML 순서 요소들이 HTML 순서에 따라 쌓임 z-index를 사용하지 않을 때
절대 위치 요소를 정확한 위치에 배치 특정 위치에 오버레이 요소를 배치할 때
투명도 쌓이는 문맥을 영향 줄 수 있음 반투명 오버레이를 만들 때

기억하세요, CSS 레이어를 완벽하게 습득하는 열쇠는 연습입니다. 그러므로 레이어링을 시작하고, 디자인들이 깊이와 차원으로 살아나는 것을 지켜보세요!

Credits: Image by storyset