본문 바로가기

CSS

[css] margin, padding

* margin / padding / box-sizing 구조

 

1. margin

: 요소 밖의 영역 

 

* margin 명령어 ( margin-topmargin-rightmargin-bottommargin-left )

-> 시계 방향이 기본

 

* 속기법

 

margin : 위, 오른쪽, 아래, 왼쪽 ; -> 기본형
margin : 위, 오른쪽, 아래 ; 왼쪽 -> 오른쪽 값 적용
margin : 위, 오른쪽 ; 아래 -> 위쪽 값 적용 왼쪽 -> 오른쪽 값 적용
margin : 위 ; 상하좌우 모두 동일값

 

* margin : auto; 값 활용

 

# 박스 가운데 정렬 3가지 방법

 

(1)

<style>
margin-left: auto;
margin-right: auto;
</style>

-> 좌/우 일정하게 맞춤 처리

결과이미지

 

(2)

<style>
margin : auto;
</style>

결과이미지

 

(3)

<style>
margin : 0 auto;
</style>

 

결과이미지

 

2. padding / box-sizing

: 요소의 안쪽 영역  

-> box-sizing에 영향을 줌

 

* box-sizing

★ box-sizing : border-box 
 -> 너비/높이 안에 패딩, 보더를 포함 (너비 사이즈 밖으로 나가지 않음)

 

- box-sizing: border-box는 width / height에 padding / border 값이 적용될 때만 사용

 

예시 1)

- width / height에 padding 혹은  border 값이 적용

<style>
 .box1 {
            background-color: orange;
            width: 500px;
            padding: 50px;
            margin: 50px;
            box-sizing: border-box;
        }
</style>

 

결과값

예시2)

width / height에 padding 혹은 border 값이 적용 X

<style>
 .box2 {
            background-color: tomato;
            margin:30px;
            padding: 30px;
            box-sizing: border-box;
</style>

 

결과값

 

* padding 명령어 ( padding-top, padding-right, padding-bottom, padding-left )

-> 시계 방향이 기본

 

* 속기법

 

padding : 위, 오른쪽, 아래, 왼쪽 ; -> 기본형
padding  : 위, 오른쪽, 아래 ; 왼쪽 -> 오른쪽 값 적용
padding  : 위, 오른쪽 ; 아래 -> 위쪽 값 적용 왼쪽 -> 오른쪽 값 적용
padding  : 위 ; 상하좌우 모두 동일값

 

 

 

 

# 요소에 따른 margin/padding 특징

<style>


1. 블럭요소


div , h1~h6, p, ul, li, dl, dd, ol, dt
dt 안에는 인라인만 넣을 수 있음
1) 너비는 부모의 크기만큼 (100%) : 한줄
2) 너비/높이 지정 가능
3) margin/ padding 설정 가능

2. 인라인 요소


a , span , b , i , em, strong

1) 컨텐츠 크기만큼인식 ( 내용만큼 )
2) 옆으로 나열
3) 너비/높이 지정 X
4) margin/padding 좌우만 (위,아래 불가능)

-> 위, 아래 늘어나긴 하지만 다른 컨텐츠 밀어내지는 못함

 

ex)

 <style>
        h2 {
             background-color: pink; 
            width: 500px;
            height: 150px;
            margin: 30px;
            padding: 20px;

        }
        p { 
            background-color: skyblue;
        }
        strong { 
            background-color: orange;
            width: 200px;
            height: 100px;
            margin: 30px;
            padding: 30px;
            /* 위, 아래 늘어나긴 하지만 다른 컨텐츠 밀어내지는 못함 */
        }
        em { 
            background-color: lime;
        }
    </style>
    
    <body>
    
    <h2>제목2 입니다.</h2>
    <p>문단입니다.</p>
    <strong>강강조</strong>
    <em>약강조</em>
    <p>문단입니다.</p>
    
    </body>

결과이미지



3. 인라인 블럭


 img, button, input 등
1) 자신의 크기만큼 인식 (inline 처럼)
2) 옆으로 나열
3) 블럭처럼 너비,높이,패딩,마진.. 처리가능
4) 옆사이 공백 (읽어만 보기)
해결 : 부모에 font-size:0
 자신의 요소에 font-size지정

 

 

'CSS' 카테고리의 다른 글

[css] 단위  (0) 2024.02.16
[css] 다중클래스  (0) 2024.02.16
[css] text, border, font  (1) 2024.02.16
[css] 선택자 우선순위  (0) 2024.02.15
[css] css 문법, 선택자  (1) 2024.02.14