211001_CSS(4) _box-model
박스 모델이란?
content: 콘텐츠가 표시되는 영역 width, height(진짜 내용을 담고 있는 핵심 박스)
padding: 콘텐츠와 테두리(border)사이의 여백 (공백 영역)
border : padding 과 margin 사이의 테두디 기본값음 0px 이지만 보더 영역이 있다
margin: 가장 바깥 쪽 레이어로 콘텐츠와 패딩, 박스 옆에 또 다른 박스 등 여러개의 박스가 있다면 서로 멀어지게 해줄수 있는 영역이다
크기
width, height
- 둘 다 기본값 auto
- 둘 다 상속은 사용되지않음
- 🚨 HTML 요소가 인라인 애들은 width , height 애들이 먹지 않는 다는 것을 명심하자
.block{
width:300px;
height: 100px;
}
min-height,min-width,max-height,max-width
-width 와 height 와 마찬가지로 상속 사용 안되고 사용법도 비슷하다
.block{
width : 50%
min-width: 300px
}
이렇게 주게 된다면 화면을 계속 줄여 나가도 계속 300px을 유지
min,max (표준성)이 부족하므로 반응형 사이트로는 얘네를 이용하자
margin
- 가장 바깥 쪽에 여백을 만들 수 있는 애라고 이해하자
- margin도 단축 속성으로 한 줄에 작성이 가능 (top,right,bottom,left) 시계 방향 ⏱⌚
- 얘도 상속은 사용되지 않는다
/ 네 면 모두 적용 /
margin: 1em;
margin: -3px;
/ 세로방향 | 가로방향 /
margin: 5% auto;
/ 위 | 가로방향 | 아래 /
margin: 1em auto 2em;
/ 위 | 오른쪽 | 아래 | 왼쪽 /
margin: 2px 1em 0 auto;
/ 전역 값 /
margin: inherit;
margin: initial;
margin: unset;
🎈margin : 50% 이런식으로 작성하게되면 이 %지는 부모의 width 값의 50% 가 기준이된다 주의가 필요하다 🎈
마진 상쇄 (margin collapsing)
-
마진 상쇄 , 마진 겹침 , 마진 중복 등등으로 불리운다
-
여러 블록 요소(탑, 바텀에만 생긴다는 것을 의미) 들이 위/아래 margin이 경우에 따라 가장큰 크기를 가진 margin으로 결합(상쇄) 되는 현상
1.일어나는 현상
-
인접형제 : 두 형제 요소 위/아래 발생
2.부모- 자식요소 간
- 부모 블록에 border , padding , inline content 가 없어서 부모와 자식의 margin-top이 만나는 경우
- 부모 블록에 border, padding , inline content가 없고
부모-자식을 분리할 height 값이 지정되지 않아 부모와 자식의 margin-bottom 만나는 경우
- 빈 블록 (내부에 컨텐츠가 없어서 생기는 경우)
- border , padding , cotent가 없고 height 또한 존재하지 않으면 , 해당 블록의 margin-top과 margin-bottom이 상쇄된다
여백 (padding)
-
마진처럼 숏 핸드 속성을 가지고 있음
-
단축 속성으로 한 줄에 작성이 가능 (top,right,bottom,left) 시계 방향 ⏱⌚
-
패딩은 패딩 상쇄 같은거 없음 동일하게 동작함
/ 네 면 모두 적용 /
padding: 1em;
/ 세로방향 | 가로방향 /
padding: 5% 10%;
/ 위 | 가로방향 | 아래 /
padding: 1em 2em 2em;
/ 위 | 오른쪽 | 아래 | 왼쪽 /
padding: 5px 1em 0 2em;
/ 전역 값 /
padding: inherit;
padding: initial;
padding: unset;
🎈padding도 50% 이런식으로 작성하게되면 이 %지는 부모의 width 값의 50% 가 기준이된다 주의가 필요하다 🎈
border
- 얘도 숏 핸드 속성 시계 방향인것은 동일하다
/ 스타일 /
border: solid;
/ 너비 | 스타일 /
border: 2px dotted;
/ 스타일 | 색 /
border: outset #f33;
/ 너비 | 스타일 | 색 /
border: medium dashed green;
/ 전역 값 /
border: inherit;
border: initial;
border: unset;
- border -style
-테두리의 스타일을 바꿀 수 있다 - border-width
- 테두리의 두께를 설정한다
- border -color
- 말 그대로 테두리의 색상을 설정한다
👿color 나 width 아무리 작성하여도 border-style : none 이면 적용이 되지않는다는 점을 주의하자 (필수값은 아님)
outline
보기에는 border 와 비슷해 보이지만 border 는 박스모델에 해당되지만 outline 영역을 차지하고 있지 않고 그냥 모양만 내준다고 생각하자
border - radius
도형을 만들어주는 거라고 생각하면 쉽다
테두리 영역을 둥글게 만들어주는 역할을 한다
marjin , padding 처럼 4가지 값이 한번에 입력 가능 꼭지점이 왼위-왼오-아래 왼 -아래 오른 쪽
box-sizing
- 너비와 높이를 계산하는 방법을 지정한다
사용할 수 있는 값
- context-box :기본값 , 실제 길이가 달라진다
width 와 height의 값을 content 영역에만 적용이 되는 것이다
- border-box :
빨간색 부분으로 표시된 곳 까지 요소의 크기를 측정해 준다
-요소의 크기는 너비 = 테두리 + 안쪽 여백 + 컨첸츠 너비, 높이 = 테두리 + 안쪽여백 + 콘텐츠 높이로 계산
모든 요소를 border-box로 설정하겠다는 설정
* {
box-sizing : border-box ;
}
Author And Source
이 문제에 관하여(211001_CSS(4) _box-model), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@akk0504/CSS4-박스-모델저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)