[프런트엔드] CSS 박스 모델과 플로팅에 대한 심층적인 이해

I. 소개

페이지의 요소는 모두 상자로 구성되며, 요소의 내용은 상자에 담겨 있습니다. 박스 안쪽부터 바깥쪽까지 content, padding, border, margin이 있으며, 이 속성들도 흔히 사용되는 속성입니다. 개발자 도구를 열고 F12로 페이지의 요소를 선택하면 해당 속성과 속성 값을 명확하게 볼 수 있습니다.
여기에 이미지 설명을 삽입하세요

2. 박스 모델

1. 박스모델의 구성

  • 국경
  • 내용 내용
  • 패딩: 텍스트와 상자 테두리 사이의 거리
  • 여백: 한 상자와 다른 상자 사이의 거리를 제어합니다.
    여기에 이미지 설명을 삽입하세요
    소위 상자 모델 : HTML 페이지의 레이아웃 요소를 콘텐츠의 컨테이너인 직사각형 상자로 간주하는 것입니다.
    CSS 상자 모델은 본질적으로 테두리, 여백, 내부 여백 및 실제 콘텐츠를 포함한 HTML 요소를 캡슐화하는 상자입니다.
    여기에 이미지 설명을 삽입하세요

1.1, 국경 국경

border는 요소의 테두리를 설정할 수 있습니다.

여기에 이미지 설명을 삽입하세요

1.1.1 프레임은 세 부분으로 구성됩니다.

  • 테두리 너비(두께, 단위는 px): border-width
  • 테두리 스타일: 테두리 스타일
  • 테두리 색상: border-color
/* 边框高度 */
border-width: 5px;

/* 边框样式 solid实线 */
border-style: solid;

/* 边框样式 dashed虚线 */
border-style: dashed;

/* 边框样式 dotted点线 */
border-style: dotted;

/* 边框颜色 */
border-color: red;

/* transparent透明色 */
border-color: transparent;

여기에 이미지 설명을 삽입하세요

1.1.2 복합 프레임의 약칭

/* 边框的复合简写 没有顺序*/
border: 5px solid red

1.1.3, 프레임을 별도로 작성

/* 边框分开写*/
border-top: 5px solid red;
border-bottom: 5px solid blue;
border-left: 5px solid pink;
border-right: 5px solid purple;

여기에 이미지 설명을 삽입하세요

1.1.4, 테이블의 얇은 선 테두리

border-collapse 속성은 브라우저가 테이블 테두리를 그리는 방법을 제어합니다. 인접한 셀의 테두리를 제어합니다.

/* 合并相邻的边框 表示相邻边框合并在一起 */
border-collapse: collapse;

여기에 이미지 설명을 삽입하세요

1.2, 내부 여백 패딩

padding 속성은 안쪽 여백, 즉 테두리와 내용 사이의 거리를 설정하는 데 사용되며,
여기에 이미지 설명을 삽입하세요padding 속성(약칭 속성)은 1~4개의 값을 가질 수 있습니다.
여기에 이미지 설명을 삽입하세요

1.3, 여백 외부 여백

margin 속성은 외부 여백, 즉 컨트롤 박스와 박스 사이의 거리를 설정하는 데 사용됩니다.
여기에 이미지 설명을 삽입하세요

1.3.1, 여백은 가로 중앙에 위치

여백을 사용하면 블록 수준 상자를 가로 중앙에 배치할 수 있으며 다음 두 가지 조건이 충족되어야 합니다.

  1. 상자에는 너비(너비)를 지정해야 합니다.
  2. 상자의 왼쪽 및 오른쪽 여백은 자동으로 설정됩니다.
元素/.类{
width: 20px;
margin: 0 auto;
}

위의 방법은 블록 수준 요소를 가로로 중앙에 배치하고, 인라인 요소 또는 인라인 블록 요소의 상위 요소에 text-align: center를 추가하는 것입니다.

1.3.2 마진 병합

블록 요소의 수직 여백을 정의하기 위해 여백을 사용할 때 여백이 병합될 수 있습니다.

1.3.3 중첩된 블록 요소의 수직 여백 축소

두 개의 중첩 관계(부모-자식 관계)가 있는 블록 요소의 경우 상위 요소는 위쪽 여백을 가지며 하위 요소도 위쪽 여백을 갖습니다. 이때 상위 요소는 더 큰 여백 값으로 축소됩니다.

여기에 이미지 설명을 삽입하세요

1.3.3.1.해결책
  1. 상위 요소에 대해 위쪽 테두리를 정의할 수 있습니다.
/* 设置边框为1px 实线 透明色 */
border: 1px solid transparent
  1. 상위 요소의 상단 패딩을 정의할 수 있습니다.
/* 设置内边距为1px */
padding: 1px
  1. 오버플로를 추가할 수 있습니다: 상위 요소에 숨겨짐

1.3.4 내부 및 외부 여백 지우기

* {
	//清除内边距
	padding: 0

	//清除外边距
	margin: 0
}

참고 : 호환성을 고려하여 인라인 요소의 경우 왼쪽 및 오른쪽 내부 및 외부 여백만 설정하고 위쪽 및 아래쪽 내부 및 외부 여백은 설정하지 마십시오. 그러나 블록 수준 및 인라인 블록 요소로 변환하면 문제가 해결됩니다.

2. 둥근 테두리

border-radius 속성은 요소 외부 테두리의 둥근 모서리를 설정하는 데 사용됩니다.

border-radius: 长度px/%;

여기에 이미지 설명을 삽입하세요

3. 박스 섀도우

box-shadow 속성은 상자에 그림자를 추가합니다.

box-shadow: h-shadow v-shadow blur spread color inset
box-shadow: 10px 10px 10px 10px rgba(0,0,0,0.3);

여기에 이미지 설명을 삽입하세요
참고 :
1. 기본값은 외부 그림자(아웃셋)이지만 이 단어는 쓸 수 없습니다. 그렇지 않으면 그림자가 유효하지 않습니다. 2. 상자 그림자는
공간을 차지하지 않으며 다른 상자의 배열에 영향을 주지 않습니다.
3. 합성 글쓰기는 반드시 이루어져야 하며, 글쓰기만으로는 효과가 없습니다.

4. 텍스트 그림자

text-shadow 속성은 텍스트에 그림자를 추가합니다.

text-shadow: h-shadow v-shadow blur color
text-shadow: 3px 3px 2px rgba(0,0,0,0.3);

여기에 이미지 설명을 삽입하세요

세 번째, CSS 플로팅

1. 플로팅

  1. 요소의 수평 방향은 부동입니다. 이는 요소가 왼쪽 및 오른쪽으로만 이동할 수 있고 위아래로 이동할 수 없음을 의미합니다.
  2. 부동 요소는 바깥쪽 가장자리가 포함 상자나 다른 부동 상자의 테두리에 닿을 때까지 최대한 왼쪽이나 오른쪽으로 이동합니다.
  3. 부동 요소 뒤의 요소가 해당 요소를 둘러쌉니다.
  4. 부동 요소 앞의 요소는 영향을 받지 않습니다.

1.1.표준 스트림(일반 스트림/문서 스트림)

여기에 이미지 설명을 삽입하세요

1.2 플로팅 특성

  1. 표준적인 일반적인 흐름의 제어에서 벗어나(부동) 지정된 위치로 이동(이동)하는 것을 오프라벨(off-label) 이라고 합니다.
  2. 떠다니는 상자는 더 이상 원래 위치를 유지하지 않습니다.

2. 클리어 플로팅

여기에 이미지 설명을 삽입하세요
여기에 이미지 설명을 삽입하세요

4. 요약

이 글의 소개를 통해 독자들은 CSS 박스 모델과 플로팅에 대해 더 깊이 이해할 수 있게 되었습니다. 이 두 가지 개념을 익히면 독자는 페이지 레이아웃과 디자인을 보다 유연하게 수행하고 웹 페이지의 사용자 경험과 유지 관리성을 향상시킬 수 있습니다. 동시에 박스 모델과 플로팅의 호환성 문제와 솔루션을 이해함으로써 독자는 다양한 브라우저의 차이점을 더 잘 처리하고 개발 효율성을 높일 수 있습니다. 이 기사가 독자들이 프런트엔드 개발에서 CSS 박스 모델과 플로팅 기술을 더 잘 사용하는 데 도움이 되기를 바랍니다.

추천

출처blog.csdn.net/weixin_45490023/article/details/132420699