개요

  • css에서 여백을 주는 것은 marginpadding으로 구분할 수 있습니다.
  • margin바깥쪽 여백, padding안쪽 여백을 지정합니다.
    • padding은 여백만큼 크기가 더 커지게 됩니다.
    • 각 방향마다(상하좌우) 개별 속성을 지정할 수도 있습니다.

그림으로 한번 그려보았는데요.

 

[margin]

 

[padding]

  • padding은 header, container, container-left 모두 동일하게 작용하지만, 최적화를 위해서는 최상위 요소 보다는 직접적으로 padding 효과를 받는 요소에 넣는 것이 좋다고 합니다.

 

[전체]

 

 

예제 코드 - HTML

reset.css를 적용한 후에 진행하였습니다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link rel="stylesheet" href="./style.css">
    <link rel="stylesheet" href="./normalize.css">
</head>
<body>
    <div class="a">a 입니다.</div> 
    <div class="b">b 입니다.</div> 
</body>
</html>

margin과 padding 적용해보기

.a{
    background-color: pink;
    margin: 10px;
    border: 2px solid black;
}

.b{
    background-color: skyblue;
    border: 2px solid black;
    padding: 10px;
}

 

a에는 margin을, b에는 padding을 넣어보았습니다.

margin은 바깥쪽 여백을 잡아주기 때문에 바깥에 흰 여백이 생긴 것을 확인할 수 있습니다.

반대로, padding은 안쪽 여백을 잡아주고 있어 b가 상하좌우로 10px씩 더 커진 것을 볼 수 있네요.


개별 속성 지정해보기

상하좌우로 개별 속성을 지정해보겠습니다.

.a{
    margin-top: 10px; 
    margin-left: 10px; 
    margin-right: 10px; 
    margin-bottom: 10px; 
}

.b{
    padding-top: 10px;
    padding-left: 10px;
    padding-right: 10px;
    padding-bottom: 10px;
}

이렇게 top, left, right, bottom으로 각각의 여백을 설정할 수 있어요.

 

그렇지만 margin, padding 한 속성으로 개별 여백도 지정해볼 수 있습니다.

.a{
	/*       위   오른  아래  왼*/
	margin: 10px 50px 20px 0;
}
   
.b{   
	/*       위   오른  아래  왼*/
	padding: 10px 50px 20px 0;
}

 

이런식으로 설정할 수 있습니다!

결과 값은 그림과 같이 나타나게 됩니다. 

여백 정도에 따라서 예상하셨겠지만, 시계 방향으로 여백이 지정되네요!

 

 

또한, 속성을 2개만 기술한다면 첫 번째 값은 상하, 두 번째 값은 좌우 여백을 지정합니다.

.a{
	/*       상하  좌우  */
	margin: 10px 50px;
}
   
.b{   
	/*       상하   좌우  */
	padding: 10px 50px;
}

 

그렇다면, 가장 먼저 사용해보았던 margin: 10px; 이런식으로 하나만 작성한 것은 상하좌우 모두 10px씩 margin을 주는 것이라고 이해할 수 있습니다.


margin: auto를 이용하여 중앙 정렬하기

margin: auto 속성을 사용하면, 전체 width에서 좌우로 auto 여백을 가지기 때문에 영역 안에서 중앙으로 몰아주는 효과가 있습니다.

 

예제 코드

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link rel="stylesheet" href="./style.css">
    <link rel="stylesheet" href="./normalize.css">
</head>
<body>
    <div class="a">
        <div class="b">중앙으로 정렬해보아요</div>
    </div>
</body>
</html>

 

.a{
    background-color: skyblue;
}

.b{
    width: 980px;
    background-color: pink;
    margin: auto;
}

 

이렇게 하위 태그가 선언되었을 때 하위 태그에 대해서 width를 설정해준 다음, margin: auto 속성을 부여하면 전체 width에 대해 중앙으로 정렬된 것을 볼 수 있습니다.


수직 중앙 정렬하기

번외로 marginpadding을 이용한 수직 중앙 정렬 방법도 실습해보았습니다.

margin: auto를 통해 좌우 중앙 정렬이 가능했는데요. 

여기에 padding을 추가하여 수직 중앙 정렬도 구현해볼 수 있습니다.

.a{
    background-color: skyblue;
    padding: 150px;
}

.b{
    width: 980px;
    background-color: pink;
    margin: auto;
    padding: 20px;
}

 

직전 html 코드에서 css에 padding을 추가해보았습니다.

 

이렇게 수직으로도 정렬된 결과를 확인해볼 수 있습니다.


🍀 추가로 공부해야 할 것
찾아보니 margin, padding에 음양수를 넣는 것이 달랐고, auto, collaspe를 적용할 수 있는게 달랐다.
관련해서 더 알아보자!

'Language Note > CSS' 카테고리의 다른 글

[CSS] reset.css  (2) 2024.01.07

+ Recent posts