box Model
개별 컨텐츠 요소를 감싸고 있는 사각 박스 형태.
브라우저 화면에 영역을 차지하면서 , 표시되는 컨텐트 호함하는 전체 영역을 의미한다.
컨텐트(content) - 패딩(padding) - 보더(border) - 마진 (margin) 으로 구성된다.
또한 보더(border)의 바깥에 표시되는 아웃라인 (outline) 을 추가로 구성이 가능하다.
content : 실제 내용이 표시 되는 영역.
유일하게 영역에 대한 너비와 높이 지정이 가능하다.(width / height )
padding : 테두리와 컨텐츠 사이의 안쪽 여백.
border : 테두리.
외각 테두리 라인을 표시하는 영역으로 마진과 패딩사이에 표시된다.
margin : 바깥쪽 여백.
다른 요소와 공간적으로 분리 되며 , 빈 공간인 최 외곽을 의미한다.
margin : 0; 의 의미는 요소간의 비어있는 경계가 없음을 의미한다.
동일 부모요소 내 형제 관계를 갖는 요소간의 경계는 서로를 마주하는 경계가 되겠지만,
부모요소와 자식요소와의 관계를 갖는 마진이란 ,
부모요소의 컨텐트가 시작되는 경계영역으로 부터 안쪽 자식 요소의 박스 영역중 (보더 , 마진 , 컨텐트 )
가장 바깥쪽을 구성하는 영역과의 비어있는 경계를 의미한다.
마진은 유일하게 박스 모델 요소중 음수값이 적용이 가능한데 ,
이는 다른 요소들과의 거리가 가까워져 서로 중첩이 될 수 있음을 의미한다.
outline : 테두리 라인의 바로 외곽에 표시 가능한선.
다른 박스 요소와 달리 영역을 차지하진 않음.
즉 , 마진 영역이 지정된 경우, 아웃라인 두께값을 높일수록 마진 영역을 덮어가며 표시된다.
outline-offset 속성을 추가로 설정하면 ,
아웃라인이 표시되는 시작지점을 설정 가능한데,
음수값일 경우 원래 디폴트 값부터 안쪽으로 당겨져 보더라인 안쪽에 아웃라인이 표시가 가능하다.
Box Model 의 지정.
border-width :
테두리 두께를 의미. 필수 지정요소.
border-style :
테두리 모양을 의미. 필수 지정요소.
border-color:
테두리 색을 의미.
border :
width , style , color 를 한꺼번에 지정이 가능한 속성.
border-radius :
테두리 모서리 끝부분부터 , 기울기가 형성될 거리를 말함.
원을 만들기 위해서는 px 보다는 % 로 좀 더 정확하고 세밀한 원 표현이 가능하다.
각 모서리에 대한 x , y 축의 기울기 설정도 가능하다.
box-sizing
box-sizing : content-box;
width 와 height 의 영역을 컨텐트 영역까지로 지정. (디폴트 값 )
box-sizing : border-box;
width 와 height의 영역을 보더 영역 까지로 지정.
높이는 내부 컨텐트에 의해 자동으로 설정.
부모요소의 너비는 보더를 합친 410을 만들자
.p2box {
padding: 20px;
}
부모 요소에 패딩을 지정함으로서 부모 요소에 할당하려는 너비를 초과.
패딩을 뺀 너비를 부모요소에 재 할당하여 너비 유지.
부모요소의 패딩이 아닌 자식 요소의 패딩을 조절.
이는 부모요소가 아닌 자식 요소에 패딩을 지점함으로써 원하는 레이아웃이 아닌 결과를 초래 할 수 있음.
자식 요소가 하나인 경우엔 문제가 되지 않으나,
자식이 여러개일 경우 모든 자식 요소에게 패딩을 별도로 지정해야하는 문제점 발생 가능.
box-sizing :border-box; 으로 변경함으로서 ,
지정된 부모요소의 width 를 컨텐트 영역이 아닌 보더 영역까지를 포함하여 산출.
'Developer > HTML_CSS' 카테고리의 다른 글
deep 한 margin 의 세계로 , 수직 마진 / 마진의 특성 / 마진을 이용한 수평 수직과 요소 중첩. (0) | 2024.04.28 |
---|---|
CSS, background 를 알아보자. (0) | 2024.04.22 |
CSS, text-decoration 과 font-family (0) | 2024.04.22 |
CSS, 나에게 어려운 수평 수직 ..line-height / text -align / vertical-align / border-collapse (2) | 2024.04.21 |
CSS, 텍스트의 배치 , white -space / indent / spacing (0) | 2024.04.20 |