렝무식

💚 display: inline-block 속성을 이용한 레이아웃 예제 본문

웹퍼블리싱 수업정리/html + css + js

💚 display: inline-block 속성을 이용한 레이아웃 예제

렝9 2024. 3. 30. 16:21

display 속성은 해당 요소를 어떻게 보여줄 것인지에 대해 결정할 수 있는 css 속성입니다.

 

보통 관련있는 것들을 나열할 때, <ul>과 <li> 태그를 이용합니다.

ul li 태그는 본래 순서가 없는 요소의 리스트를 작성할 때  사용하는 태그지만, 실제로 그러한 용도로는 잘 쓰지 않는 것이 대부분입니다.

그런데 ul li 태그는 블록 요소이기 때문에 가로로 나열되지 않고, 보통 아래로 나열됩니다.

우리가 원하는 레이아웃을을 만들기 위해서는 가로로 나열이 되어야 하는데, 이때 사용할 수 있는 방법 중 하나가 바로 display: inline-block으로 속성을 변경해주는 방법입니다.

 

block 요소의 특징은 다음과 같습니다.

  1. 줄 바꿈 발생
  2. 너비(width)의 기본 값이 100%
  3. 높이(height)의 기본 값은 0
  4. 너비 높이로 면적을 줄 수 있음

따라서 너비 기본값이 100% 이므로 한 줄에 여러 개를 배치할 수 없는 것입니다.

 

inline 요소의 특징은 다음과 같습니다.

  1. 줄 바꿈이 발생하지 않음
  2. 너비와 높이를 지정할 수 없음
  3. 기본 여백이 존재

여기서 주목해야할 점은 너비와 높이를 지정할 수 없다는 점인데요.

우리는 너비와 높이가 존재하는 요소들을 가로로 배치하고 싶은데 말이죠.

그럴 때 사용할 수 있는 속성이 바로 inline-block 요소가 됩니다.

inline 속성과 비슷하지만, 하나 다른 점이 있습니다.

그것은 바로 너비와 높이를 지정해줄 수 있다는 점입니다.

 

이러한 inline-block의 특성을 이용해서~

 

 

이런 모양을 한 번 만들어 볼게요.

위에 텍스트들은 중요하지 않고, 저 네모네모들을 중심으로 봅니다!

 

✅ HTML 코드

<body>
	<div id="wrap">
		<h2><span>01.</span> 입학지원서 작성</h2>
		<p>1.26.(금) ~ 2. 16.(금) 22시 모집마감</p>
		<ul>
			<li></li>
			<li></li>
			<li></li>
			<li></li>
		</ul>
	</div>
</body>

 

ul과 li 태그로 레이아웃을 구성했습니다 .

 

✅ CSS

* {margin: 0; padding: 0;}

#wrap {width: 800px; height: 400px; margin: 0 auto; padding: 30px; background: rgba(59,105,197,1.00);}
/*-------------------------------------------------------------------------------------*/
#wrap h2 {margin-bottom: 10px; font-size: 30px; font-weight: 600; letter-spacing: -1px;}
#wrap h2 span {font-size: 22px; color: darkblue;}
#wrap p {margin-bottom: 20px; font-size: 45px; font-weight: 600; color: #fff; letter-spacing: -1px;}
/*-------------------------------------------------------------------------------------*/
#wrap ul {text-align: center;}
#wrap ul li {display: inline-block; width: 380px; height: 70px; margin: 7px; border-radius: 7px; background: #fff;}

 

 

inline-block 속성을 이용하면 가운데 정렬이 편리합니다.

왜냐하면 상위부모에 text-align : center 속성을 써주면 가운데 정렬이 되기 때문이죠

text-align 속성은 텍스트 뿐만 아니라 하위의 인라인 요소들을 가운데 정렬하고 싶을 때 사용할 수 있습니다. ㅎㅎ

 

그리고 우리가 나열하기를 원하는 li 요소에 display: inline-block 속성을 적용해주면 됩니다.

margin 속성으로 간격을 맞춰주면 끝!

 

 

 


 

 

사실 이런 레이아웃은 grid 속성을 이용하는 게 훨씬 편리합니다만..

아직 소외된 브라우저에서 실행되지 않는 명령어들이 몇 있습니다.

display grid나 flex도 이러한 명령어들 중 하나이기 때문에 inline-block 이나 float를 이용하여 배치하는 법도 알아두는 게 좋겠지용

 

 

안뇽

Comments