찾다
웹 프론트엔드CSS 튜토리얼CSS 박스 모델의 의미와 원리에 대한 심층적인 이해

많은 프런트엔드 개발자는 CSS가 너무 단순해서 오랫동안 배울 필요가 없다고 생각합니다. 실제로 프런트엔드 개발자가 CSS를 잘 사용하면 효율성과 사용자 경험이 향상됩니다. 최근에는 문제가 발생했을 때 어떻게 해야 하는지 알고 신속하게 올바른 해결책을 처방할 수 있도록 CSS를 심도 있게 학습할 계획입니다. 다음으로 CSS 박스 모델을 주로 소개합니다.

박스 모델이란 무엇입니까?

박스 모델에 대해 말하자면, 프론트 엔드 개발자로서 모두가 이해했다고 믿습니다. mdn 공식 웹사이트의 설명은 여기에 적용됩니다:

문서에서 각 요소는 직사각형 상자로 표시됩니다. 크기, 속성(색상, 배경, 테두리와 같은 측면) 및 이러한 상자의 위치를 ​​결정하는 것이 렌더링 엔진의 목표입니다.

CSS에서는 이러한 직사각형 상자 각각이 표준 상자 모델을 사용하여 설명됩니다. 이 모델은 요소가 차지하는 공간의 내용을 설명합니다. 각 상자에는 여백, 테두리, 패딩 및 내용의 네 가지 면이 있습니다.

공식 언어는 항상 너무 모호하므로 설명을 위해 Chrome 콘솔의 스크린샷을 찍겠습니다.

CSS 박스 모델의 의미와 원리에 대한 심층적인 이해

가장 바깥쪽 주황색은 여백 영역이고, 안쪽 노란색은 테두리 영역(경계 영역), 더 안쪽에 있는 녹색은 패딩 영역이고 가장 안쪽의 녹색은 콘텐츠 영역입니다.

박스 모델의 역할

글쎄, 위 사진만 보면 박스 모델 컨셉에 대해서는 딱히 할 말이 없는 것 같습니다. 상자 모델이 레이아웃에 미치는 영향을 살펴보겠습니다. 예를 들어 요소의 크기를 200px로 설정하려는 경우 다음 코드를 작성하면

<style>
  .box {
    width: 200px;
    height: 100px;
    padding: 20px;
  }
</style>
<div class="box">
  盒子模型
</div>

결과적으로 요소를 검사해 보면 요소의 크기가 240px로 변경된 것을 확인할 수 있습니다. 200px.

CSS 박스 모델의 의미와 원리에 대한 심층적인 이해

이게 왜죠? 기본적으로 너비, 높이 등의 설정은 콘텐츠 영역에 대한 것이므로 설정된 너비: 200px는 콘텐츠 영역의 너비에 왼쪽 및 오른쪽 패딩의 크기를 더한 값이므로 전체 크기가 요소가 더 커집니다. 이는 현실 세계의 중간 상자에 대한 우리의 이해와 다릅니다. 예를 들어 집의 면적을 말할 때 사용 가능한 면적뿐만 아니라 벽, 발코니, 엘리베이터 및 기타 공간의 두께도 포함됩니다.

박스 모델 및 박스 크기 조정

CSS를 실제 세계와 일치시키기 위해 이때 상자 크기 조정이 중요합니다. 박스 크기 조정은 효과 개체의 너비와 높이를 설정하는 데 사용됩니다. 값은 content-box, pading-box, border-box 세 가지가 있습니다. 기본값은 content-box입니다. 어떤 사람들은 왜 여백 상자가 없느냐고 묻습니다. 구체적인 이유는 모르겠습니다. 책 "CSS World"에서 Zhang Xinxu 선생님이 언급한 두 가지 이유를 참고할 수 있습니다.

margin-box 자체는 큰 가치가 없으며

마진 사양이 충돌합니다. 여백 지정에는 "여백의 배경은 항상 투명합니다"라고 되어 있기 때문에 여백 상자가 있는 경우 배경은 어떻게 되나요?

마진박스가 없는 이유는 간단히 언급하겠습니다. 관심 있는 친구들은 직접 확인해 보세요.

모범 사례

일부 전문가들은 레이아웃 편의를 위해 모든 요소를 ​​상자 크기로 설정할 것을 제안합니다: border-box

낮은 버전의 브라우저를 고려하지 않는 경우 다음 코드를 사용할 수 있습니다:

*,
*:before,
*:after { 
  box-sizing: border-box;
}

나중에 일부 전문가들은 다음과 같이 상속 방법을 제안했습니다.

html {
  box-sizing: border-box;
}

*,
*::before,
*::after {
  box-sizing: inherit;
}

이 방법이 모범 사례라고 합니다. 전문가가 권장하는 방법이므로 앞으로는 두 번째 방법을 사용할 수 있습니다. 메소드의 코드 조각은 Reset.css에 있습니다.

위 내용은 CSS 박스 모델의 의미와 원리에 대한 심층적인 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
利用CSS怎么创建渐变色边框?5种方法分享利用CSS怎么创建渐变色边框?5种方法分享Oct 13, 2021 am 10:19 AM

利用CSS怎么创建渐变色边框?下面本篇文章给大家分享CSS实现渐变色边框的5种方法,希望对大家有所帮助!

css ul标签怎么去掉圆点css ul标签怎么去掉圆点Apr 25, 2022 pm 05:55 PM

在css中,可用list-style-type属性来去掉ul的圆点标记,语法为“ul{list-style-type:none}”;list-style-type属性可设置列表项标记的类型,当值为“none”可不定义标记,也可去除已有标记。

css与xml的区别是什么css与xml的区别是什么Apr 24, 2022 am 11:21 AM

区别是:css是层叠样式表单,是将样式信息与网页内容分离的一种标记语言,主要用来设计网页的样式,还可以对网页各元素进行格式化;xml是可扩展标记语言,是一种数据存储语言,用于使用简单的标记描述数据,将文档分成许多部件并对这些部件加以标识。

css3怎么实现鼠标隐藏效果css3怎么实现鼠标隐藏效果Apr 27, 2022 pm 05:20 PM

在css中,可以利用cursor属性实现鼠标隐藏效果,该属性用于定义鼠标指针放在一个元素边界范围内时所用的光标形状,当属性值设置为none时,就可以实现鼠标隐藏效果,语法为“元素{cursor:none}”。

css怎么实现英文小写转为大写css怎么实现英文小写转为大写Apr 25, 2022 pm 06:35 PM

转换方法:1、给英文元素添加“text-transform: uppercase;”样式,可将所有的英文字母都变成大写;2、给英文元素添加“text-transform:capitalize;”样式,可将英文文本中每个单词的首字母变为大写。

rtl在css是什么意思rtl在css是什么意思Apr 24, 2022 am 11:07 AM

在css中,rtl是“right-to-left”的缩写,是从右往左的意思,指的是内联内容从右往左依次排布,是direction属性的一个属性值;该属性规定了文本的方向和书写方向,语法为“元素{direction:rtl}”。

css怎么设置i不是斜体css怎么设置i不是斜体Apr 20, 2022 am 10:36 AM

在css中,可以利用“font-style”属性设置i元素不是斜体样式,该属性用于指定文本的字体样式,当属性值设置为“normal”时,会显示元素的标准字体样式,语法为“i元素{font-style:normal}”。

怎么设置rotate在css3的旋转中心点怎么设置rotate在css3的旋转中心点Apr 24, 2022 am 10:50 AM

在css3中,可以用“transform-origin”属性设置rotate的旋转中心点,该属性可更改转换元素的位置,第一个参数设置x轴的旋转位置,第二个参数设置y轴旋转位置,语法为“transform-origin:x轴位置 y轴位置”。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경