Um modelo de caixa CSS de leitura

Modelo de caixa CSS

1. O conceito do modelo de caixa

O modelo de caixa, como o nome sugere, é um contêiner no qual podem ser colocados conteúdos, como caixas expresso, xícaras, etc.

Em html, por exemplo: uma tag, tag span, etc. podem ser colocados em um div

Em palavras oficiais: o modelo de caixa CSS é essencialmente uma caixa que encapsula os elementos HTML circundantes, incluindo margens, bordas, preenchimento e conteúdo real. Existem dois modelos de caixa comumente usados:

content-box é um modelo de caixa em conformidade com o padrão w3c e também é o modelo de caixa padrão

Border-box é um modelo de caixa que não está em conformidade com o padrão w3c, também chamado de caixa estranha

2. Propriedades do modelo de caixa

Vamos dar uma olhada em várias propriedades do modelo de caixa:

  • Margem - Limpe a área fora da borda, a margem é transparente.
  • Borda-A borda ao redor da margem interna e fora do conteúdo.
  • Preenchimento - Limpe a área ao redor do conteúdo, o preenchimento é transparente.
  • Conteúdo - O conteúdo da caixa, exibindo texto e imagens.

Agora vamos ver um exemplo:

①Modelo de caixa padrão: tamanho da caixa: caixa de conteúdo;

largura / altura = conteúdo (largura / altura) + borda + preenchimento

No modelo de caixa padrão, largura e altura são a largura e a altura do conteúdo

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>盒模型</title>
		<style type="text/css">
			* {
     
     
				box-sizing: content-box;      //IE盒模型
				/* box-sizing: border-box; */   //怪异盒子
			}

			.wrapper {
     
     
				width: 100px;
				height: 100px;
				border: 10px solid red;
				padding: 50px;
				/* margin: 50px; */
			}

			.item {
     
     
				background-color: red;
				width: 20px;
			}
		</style>
	</head>
	<body>
		<div class="wrapper">
			<div class="item">1</div>
			<div class="item">2</div>
			<div class="item">3</div>
		</div>
	</body>
</html>
<script type="text/javascript">
	(function() {
     
     
        //获取父元素的宽度
		let wrapperWidth = document.querySelector('.wrapper').offsetWidth;
        //获取子元素的宽度
		let itemWidth = document.querySelector('.item').offsetWidth;
		console.log(wrapperWidth,'wrapperWidth')  
        // 220 = (100) + (100) + (20) = ((paddingLeft+paddgingRight)+(content)+(borderLeft+borderRight)
		console.log(itemWidth,'itemWidth')		// 20 = width
	})()
</script>

Insira a descrição da imagem aqui

② Modelo de caixa estranha (modelo de caixa do IE): tamanho da caixa: caixa de borda

largura / altura = largura / altura (conteúdo + borda + preenchimento) + margem

A largura / altura no modelo de caixa estranha é (conteúdo + borda + largura / altura da margem interna) => (conteúdo + borda + preenchimento)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>盒模型</title>
		<style type="text/css">
			* {
     
     
				 /* box-sizing: content-box;  */     //IE盒模型
				 box-sizing: border-box;   //怪异盒子
			}

			.wrapper {
     
     
				width: 100px;
				height: 100px;
				border: 10px solid red;
				padding: 50px;
				/* margin: 50px; */
			}

			.item {
     
     
				background-color: red;
				width: 20px;
			}
		</style>
	</head>
	<body>
		<div class="wrapper">
			<div class="item">1</div>
			<div class="item">2</div>
			<div class="item">3</div>
		</div>
	</body>
</html>
<script type="text/javascript">
	(function() {
     
     
        //获取父元素的宽度
		let wrapperWidth = document.querySelector('.wrapper').offsetWidth;
        //获取子元素的宽度
		let itemWidth = document.querySelector('.item').offsetWidth;
		console.log(wrapperWidth,'wrapperWidth')  // 120 = 100 +20 = (100) + (0) + (20)
        ((paddingLeft+paddgingRight)+(content)+(borderLeft+borderRight)
		console.log(itemWidth,'itemWidth')		// 20 = width
	})()
</script>

Insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/weixin_43937400/article/details/112260674
Recomendado
Clasificación