CSS盒模型

 1.盒模型的概念

盒子模型,顾名思义就是一种容器,里面可以放内容的容器,例如:快递盒、杯子等,

在html中例如:div里面可以放a标签、span标签等

用官方的话来讲就是:CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。常用的盒模型分一下两种:

content-box是符合w3c标准的盒模型,也是默认的盒模型

border-box是不符合w3c标准的盒模型,也称为怪异盒子

 2.盒模型的属性

下面来看一下盒模型的几个属性:

Margin(外边距):清除边框外的区域,外边距是透明的。

Border(边框):围绕在内边距和内容外的边框。

Padding(内边距): 清除内容周围的区域,内边距是透明的。

Content(内容): 盒子的内容,显示文本和图像。

现在来看一下示例:

①标准盒模型 :box-sizing: content-box;

width/height = content(width/height) + border + padding

标准盒模型中 width跟height都是内容content的宽高

<!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>


②怪异盒模型(IE盒模型) :box-sizing: border-box

width/height = width/height (content + border +padding ) +margin

怪异盒模型中的width/height是(内容+边框+内边距的宽度/高度)=> (content + border + padding)

<!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>


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • CSS盒模型 基本概念:标准模型 + IE模型 ==》标准模型和IE模型的区别 ==》CSS如何设置这两种模型 =...
    Ren_YC阅读 1,514评论 0 0
  • 题目:谈谈你对CSS盒模型的理解 基本概念:标准模型+IE模型 标准模型和IE模型的区别 CSS如何设置这两种模型...
    言歌不言歌阅读 4,847评论 2 1
  • 一,盒模型包括哪些属性 答:margin, padding, border, content。 二,text-al...
    kingBirds阅读 3,297评论 0 0
  • 题目:谈谈你对CSS盒模型的认识 一、 基本概念 标准模型+IE模型。盒子模型包括 border、margin、p...
    乌龟小姐v阅读 1,410评论 0 1
  • CSS盒模型是前端的基石,这个问题由浅入深,由易到难,可以依次问出下面几个问题 1.基本概念:标准模型 + IE模...
    zhaur阅读 1,118评论 0 0