>  기사  >  웹 프론트엔드  >  CSS3 테두리 크기 조정 속성 자세히 살펴보기

CSS3 테두리 크기 조정 속성 자세히 살펴보기

青灯夜游
青灯夜游앞으로
2020-12-23 10:45:142018검색

CSS3 테두리 크기 조정 속성 자세히 살펴보기

권장: css 비디오 튜토리얼

box-sizing은 요소의 너비와 높이를 계산하는 데 사용되는 기본 CSS 상자 모델을 변경하는 데 사용됩니다. 여기에는 content-box, border-boxinherit의 세 가지 값이 있습니다. 상속은 더 이상 중복되지 않는 상위 요소로부터 상자 크기 조정 표현식 형식을 상속하는 것을 의미합니다. box-sizing用于更改用于计算元素宽度和高度的默认的 CSS 盒子模型。它有content-boxborder-boxinherit三种取值。inherit指的是从父元素继承box-sizing表现形式,不再冗赘。

1. 属性讲解

content-box

默认值,也是css2.1中的盒子模型。在计算widthheight时候,不计算borderpaddingmargin高度、宽度都只是内容高度

border-box

css3新增。 widthheight属性包括内容,内边距和边框,但不包括外边距。

计算公式:

  • width = width = border + padding + 内容宽度

  • height = border + padding + 内容高度

2. 考虑盒子模型的margin

从上面可以知道,即时是border-box也是不计算margin,只是多余计算了borderpadding因为borderpadding都是盒子模型的一部分,但是margin标记的是盒子和盒子的间距。所以,border-box的解释很符合常理。

问题来了,如果有时候一定要设置margin怎么做到自由控制来保证兼容?例如,我们下面要设置一个撑满页面的盒子元素,而且有外边距干扰,怎么做?

实现如下效果图:

CSS3 테두리 크기 조정 속성 자세히 살펴보기

代码:源码下载

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>yuanxin.me</title>
  <style type="text/css">
    *{
      margin: 0;
      padding: 0;
    }
    #app {
      box-sizing: border-box; /* 指定计算方式 */
      margin: 10px; /* 外边距干扰 */
      /* 利用 css3 的 calc */
      width: calc(100vw - 2*10px);
      height: calc(100vh - 2*10px);
    }
  </style>
</head>
<body>
  <div id="app">
  </div>
</body>
</html>

所以,当需要计算外边距(margin),可以配合css3中的四则运算(calc)来使用

3. 使用建议

根据项目中的使用经验和w3c的建议,推荐将box-sizing属性设置为border-box

1. 속성 설명

content-box

기본값도 css2입니다. 1박스 모델입니다. 너비높이를 계산할 때 테두리, 패딩여백은 계산되지 않습니다. 높이와 너비는 콘텐츠 높이일 뿐입니다.

테두리 상자

css3New. 너비높이 속성에는 콘텐츠, 패딩 및 테두리가 포함되지만 여백은 포함되지 않습니다. 계산 공식:

  • 🎜width = 너비 = 테두리 + 패딩 + 콘텐츠 너비🎜
  • 🎜높이 = 테두리 + 패딩 + 콘텐츠 높이🎜

2. 상자 모델의 여백

을 고려하세요. box model🎜From 위에서 알 수 있듯이 border-box라도 margin은 계산되지 않으나 border와 padding은 중복 계산됩니다. 테두리패딩은 모두 상자 모델의 일부이지만 여백은 상자 사이의 간격을 표시하기 때문입니다. 그러므로 border-box에 대한 설명은 매우 상식적입니다. 🎜
🎜질문은 때때로 여백을 설정해야 하는 경우 호환성을 보장하기 위해 자유롭게 제어하는 ​​방법입니다. 예를 들어, 전체 페이지를 채우고 여백으로 인해 방해를 받는 상자 요소를 설정하려면 어떻게 해야 합니까? 🎜🎜🎜다음 렌더링을 달성하세요: 🎜🎜1 .png🎜🎜코드:소스 코드 download 🎜🎜
* {
  margin: 0;
  padding: 0;
}
div {
  box-sizing: border-box;
}
🎜따라서 여백을 계산해야 할 때 CSS3의 4가지 산술 연산(calc)과 함께 사용할 수 있습니다. 🎜

3. 사용 제안

🎜프로젝트 경험과 w3c의 권장 사항을 바탕으로 박스 크기를 설정하는 것이 좋습니다. > 속성을 ​​border-box에 추가합니다. 🎜🎜rrreee🎜더 많은 프로그래밍 관련 지식을 보려면 🎜프로그래밍 소개🎜를 방문하세요! ! 🎜

위 내용은 CSS3 테두리 크기 조정 속성 자세히 살펴보기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제