안녕하세요, 멋진 분들입니다! 내 블로그에 다시 오신 것을 환영합니다. ? 오늘 우리는 CSS 박스 모델에 대해 자세히 알아보고 각 요소의 크기가 어떻게 결정되는지, 그리고 이 지식을 사용하여 정확하고 현대적이며 깔끔한 디자인을 만드는 방법을 설명합니다(실제 사례는 이 기사 마지막 부분에 있음).
CSS 상자 모델은 웹 디자인의 기본으로, 각 HTML 요소가 웹 페이지에서 공간을 차지하는 방식을 지정합니다.
박스 모델 구성 요소의 세부 분석
콘텐츠 : 텍스트, 이미지 및 기타 요소가 있는 상자의 실제 콘텐츠입니다. 크기는 너비와 높이 속성으로 정의됩니다.
패딩 : 콘텐츠 주변, 테두리 내 공간입니다. 별도의 스타일이 지정되지 않는 한 패딩은 투명합니다.
Border : 패딩과 콘텐츠를 둘러쌉니다. 너비, 스타일(예: 실선, 점선) 및 색상으로 스타일을 지정할 수 있습니다.
여백 : 테두리 바깥쪽 공간입니다. 또한 투명하며 요소 사이의 간격에 영향을 줍니다.
박스 모델의 실제 사례:
.example { width: 200px; /* Content width */ height: 100px; padding: 10px; /* Adds 20px to both width and height */ border: 5px solid #000; /* Adds 10px to both width and height */ margin: 20px; /* Does not contribute to the element's dimensions but affects layout */ }
총 너비 계산 : 200px(내용) 20px(패딩) 10px(테두리) = 230px
총 높이 계산 : 100px 20px 10px = 130px
일반적인 오해
너비/높이는 콘텐츠에만 영향을 미칩니다. : 많은 사람들은 너비나 높이 설정이 전체 크기를 정의한다고 가정하지만 이는 콘텐츠 영역일 뿐입니다.
상자 크기 조정 : 상자 크기 조정 없음: 테두리 상자, 패딩 또는 테두리를 추가하면 설정된 너비/높이를 넘어서 요소가 늘어납니다.
상자 모델 시각화: 위 치수의 상자가 있다고 상상해 보세요. 시각적 분석은 다음과 같습니다.
.box { background-color: #f0f0f0; width: 300px; height: 150px; padding: 20px; border: 10px solid #000; margin: 30px; }
콘텐츠 영역 : 300x150px (회색 영역)
패딩 : 주위에 20px를 추가하여 크기를 340x190px로 늘립니다.
테두리 : 패딩을 둘러싸서 최종 상자 크기를 360x210px로 만듭니다.
여백 : 테두리 주위에 공간을 생성하지만 요소의 크기에 직접적으로 포함되지는 않습니다.
Box-Sizing 속성 : box-sizing: border-box를 사용하면 지정된 너비/높이에 패딩과 테두리가 포함되어 디자인이 간소화됩니다.
* { box-sizing: border-box;}
이 선언은 모든 요소에 적용되므로 크기 계산이 더욱 직관적이 됩니다.
백분율 값 : 패딩이나 여백과 함께 사용되는 경우 백분율은 포함 요소의 너비를 기준으로 계산됩니다.
자동 여백 : 여백 설정: 자동으로 요소를 가로(또는 Flexbox를 사용하는 경우 세로) 중앙에 배치할 수 있습니다.
플로트 : 플로트가 있는 요소는 여백이 축소되거나 겹치는 예기치 않은 동작으로 이어질 수 있습니다.
Flexbox 및 Grid : 이러한 최신 레이아웃 방법은 여백을 다르게 처리합니다. 예를 들어 블록 수준 요소와 마찬가지로 플렉스 컨테이너나 그리드 셀에서는 여백이 축소되지 않습니다.
겹치는 요소 : Z-색인과 위치 지정을 이해하면 요소가 겹칠 때 깊이를 관리하는 데 도움이 됩니다.
일관성을 위한 설계 : 프로젝트 전반에 걸쳐 일관된 상자 크기를 사용하여 크기 계산 오류를 방지합니다.
반응형 디자인 : 여백과 여백의 크기가 어떻게 조정되는지 기억하세요. 패딩의 백분율 값은 다양한 화면 크기에서 비율을 유지하는 데 도움이 될 수 있습니다.
디버깅 : 요소가 예상보다 크거나 작게 나타나는 경우 패딩, 테두리 및 여백 설정을 확인하세요.
윤곽선 사용 : 테두리와 달리 윤곽선은 요소의 크기에 영향을 주지 않으므로 특정 UI 디자인에 유용할 수 있습니다.
1.반응형 카드 레이아웃 / 코드펜에서 코드를 확인해주세요.
설명:
Box-Sizing : box-sizing 설정: border-box; 패딩이 총 너비와 높이에 추가되지 않도록 하여 반응형 디자인을 단순화합니다.
카드 레이아웃 : .card 클래스는 고정된 너비, 둥근 모서리, 깊이에 대한 그림자가 있는 컨테이너를 정의합니다.
카드 이미지 : 높이로 설정된 크기의 이미지에 대한 자리 표시자 역할을 합니다.
카드 콘텐츠 : 여기서 패딩은 테두리와 콘텐츠의 간격을 두는 데 사용됩니다. 여기에서 상자 모델이 실제로 작동하는 모습을 볼 수 있습니다. 패딩은 카드 내부의 클릭 가능한 영역을 늘리지만 카드가 선언한 너비에 추가되지는 않습니다.
여백 : .card-title 및 .card-text에서 카드 내의 요소 공간을 확보하기 위해 미묘하게 사용됩니다.
버튼 : CSS 전환을 보여주는 호버 효과를 사용하여 일반적인 클릭 유도 문구처럼 보이도록 스타일이 지정되었습니다.
2.간단한 블로그 포스팅 목록 / 코드펜에서 코드를 확인해주세요.
이 예시에 대한 설명이 필요하면 알려주세요! 댓글을 통해 기꺼이 도움을 드리겠습니다!
CSS 상자 모델은 이론상 단순하지만 웹 레이아웃을 디자인하고 디버그하는 방법에 영향을 미치는 복잡한 계층을 가지고 있습니다. 이 개념을 이해하고 숙달하면 깔끔하고 예측 가능하며 반응이 빠른 디자인을 만들 수 있는 능력이 더욱 향상됩니다.
? 안녕하세요. 저는 Eleftheria, 커뮤니티 관리자, 개발자, 대중 연설가, 콘텐츠 제작자
입니다.? 이 기사가 마음에 드셨다면 공유해 보세요.
? 모든 링크 | X | 링크드인
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3