CSS - 인라인 블록: 초보자를 위한 종합 가이드
안녕하세요, 야심찬 웹 개발자 여러분! 오늘 우리는 CSS 인라인 블록의 fascinatioin 세계로 점프할 것입니다. 여러분의 친절한 이웃 컴퓨터 교사로서, 저는 이 개념을 단계별로 안내해드리고, 많은 예제를 통해 명확하게 이해할 수 있도록 도와드리겠습니다. 그러니 좋아하는 음료를 한 잔 챙기고 편안하게 자리를 잡아, 이 흥미로운 여정을 함께 떠나 보겠습니다!
인라인 블록이란?
구체적인 내용에 들어가기 전에, 인라인 블록이 무엇인지 이해해 보겠습니다. 책장에 책을 정리하는 것을 상상해 보세요. 일부 책은 서서히 áll기(인라인 요소처럼)하고, 다른 책은 평放在기(블록 요소처럼) 싶을 수 있습니다. 하지만 어떤 책을 서서히 áll기면서 특정 공간을 차지하게 하고 싶다면 어떨까요? 그게 바로 인라인 블록이 등장하는 점입니다!
display: inline-block
CSS 속성은 인라인과 블록 요소의 기능을 결합합니다. 이 속성은 요소들이 인라인 요소처럼 옆에 배치되지만, 블록 요소처럼 너비와 높이 속성을 존중합니다.
간단한 예제를 보겠습니다:
<style>
.inline-block-element {
display: inline-block;
width: 100px;
height: 100px;
margin: 10px;
background-color: #3498db;
}
</style>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
이 예제에서, 우리는 inline-block-element
클래스를 가진 세 개의 div
요소를 만들었습니다. 이 요소들은 옆에 배치되지만(인라인), 너비와 높이를 설정할 수 있습니다(블록).
CSS 인라인 블록 - 다른 행동
인라인 블록의 멋진 점 중 하나는 내용에 따라 다르게 행동하는 점입니다. 예제를 통해 이를 탐구해 보겠습니다:
<style>
.container {
font-size: 0; /* 이는 인라인 블록 요소 사이의 공간을 제거합니다 */
}
.box {
display: inline-block;
width: 100px;
height: 100px;
margin: 10px;
font-size: 16px; /* 내용의 폰트 크기를 재설정합니다 */
vertical-align: top; /* 상단에 정렬합니다 */
}
.box1 { background-color: #e74c3c; }
.box2 { background-color: #2ecc71; height: 150px; }
.box3 { background-color: #f39c12; }
</style>
<div class="container">
<div class="box box1">Box 1</div>
<div class="box box2">Box 2</div>
<div class="box box3">Box 3</div>
</div>
이 예제에서, 우리는 다른 높이를 가진 세 개의 상자를 만들었습니다. vertical-align: top
덕분에 모든 상자가 상단에 정렬됩니다. 이 속성을 다양하게 실험해 보세요!
CSS 인라인 블록 - 네비게이션 링크
인라인 블록의 일반적인 사용 사례 중 하나는 네비게이션 메뉴를 만드는 것입니다. 간단한 네비게이션 바를 만들어 보겠습니다:
<style>
nav {
background-color: #34495e;
padding: 10px;
}
nav a {
display: inline-block;
color: white;
text-decoration: none;
padding: 10px 20px;
margin-right: 5px;
background-color: #2c3e50;
}
nav a:hover {
background-color: #1abc9c;
}
</style>
<nav>
<a href="#">Home</a>
<a href="#">About</a>
<a href="#">Services</a>
<a href="#">Contact</a>
</nav>
이렇게 하면 클릭 가능한 링크를 가진 슬림한 네비게이션 바를 만들 수 있습니다. inline-block
속성을 사용하면 패딩과 마진을 설정할 수 있어 인라인 요소에서는 불가능합니다.
CSS 인라인 블록 - 버튼 그룹
인라인 블록은 버튼 그룹을 만드는 데 적합합니다. 이렇게 할 수 있습니다:
<style>
.btn-group {
font-size: 0; /* 버튼 사이의 공간을 제거합니다 */
}
.btn {
display: inline-block;
padding: 10px 20px;
font-size: 16px;
background-color: #3498db;
color: white;
border: none;
cursor: pointer;
}
.btn:hover {
background-color: #2980b9;
}
.btn:first-child {
border-radius: 5px 0 0 5px;
}
.btn:last-child {
border-radius: 0 5px 5px 0;
}
</style>
<div class="btn-group">
<button class="btn">Left</button>
<button class="btn">Middle</button>
<button class="btn">Right</button>
</div>
이렇게 하면 버튼들이 원활하게 연결된 좋은 버튼 그룹을 만들 수 있습니다.
CSS 인라인 블록 - 이미지와 텍스트
인라인 블록은 이미지와 텍스트를 정렬하는 데 매우 유용합니다. 어떻게 하는지 보겠습니다:
<style>
.image-text {
margin-bottom: 20px;
}
.image-text img {
display: inline-block;
vertical-align: middle;
margin-right: 10px;
}
.image-text p {
display: inline-block;
vertical-align: middle;
width: calc(100% - 110px); /* 이미지 너비에 따라 조정 */
}
</style>
<div class="image-text">
<img src="https://via.placeholder.com/100" alt="Placeholder">
<p>이미지 옆에 나타나는 텍스트입니다. 인라인 블록 속성을 사용하면 이미지와 텍스트를 수직으로 정렬할 수 있습니다.</p>
</div>
이렇게 하면 이미지와 텍스트가 나란히 정렬된 좋은 레이아웃을 만들 수 있습니다.
CSS 인라인 블록 - 진행 바
마지막으로, 인라인 블록을 사용하여 진행 바를 만들어 보겠습니다:
<style>
.progress-container {
width: 300px;
background-color: #f3f3f3;
margin-bottom: 10px;
}
.progress-bar {
display: inline-block;
height: 20px;
background-color: #4caf50;
text-align: center;
line-height: 20px;
color: white;
}
</style>
<div class="progress-container">
<div class="progress-bar" style="width: 70%;">70%</div>
</div>
<div class="progress-container">
<div class="progress-bar" style="width: 40%;">40%</div>
</div>
이렇게 하면 간단한 진행 바와 퍼센트 표시를 만들 수 있습니다.
결론
이렇게 우리는 다양한 용도로 사용할 수 있는 inline-block
속성과 그 응용 사례를 탐구했습니다. 네비게이션 메뉴에서 진행 바까지, 이 속성은 요소를 레이아웃하는 데 유연한 방법을 제공합니다.
CSS를 마스터하려면 연습이 중요합니다. 따라서 이 예제들을 실험하고 자신만의 독특한 디자인을 만들어 보세요. 행복한 코딩을 기원합니다!
방법 | 설명 |
---|---|
display: inline-block |
인라인과 블록 요소의 기능을 결합합니다 |
vertical-align |
인라인 블록 요소를 수직으로 정렬합니다 |
width 과 height
|
인라인 블록 요소에 적용할 수 있습니다 |
margin 과 padding
|
모든 방향으로 적용할 수 있습니다 |
폰트 크기 트릭 | 부모 요소의 font-size 를 0으로 설정하면 인라인 블록 자식 요소 사이의 간격을 제거합니다 |
Credits: Image by storyset