Advertisement

盒模型和盒模型属性

阅读量:

声明:本人才疏学浅,文中如有错误或不当之处,请各位指出,共同进步,谢谢!

一、什么是盒模型?

盒模型被视为构建现代Web页面布局的核心机制,在CSS中被广泛采用以实现复杂的排版需求和交互效果。它允许所有HTML元素都被视为具有类似盒子的外形,并占据平面空间。从名称上可以看出,在CSS中盒模型本质上就像一个盒子一样,并用于包裹并组织周围的HTML内容以实现预期的显示效果和空间关系。

盒模型的组成:由内容区域、填充区域、边框区域和外边距区域这四个组成部分构成!

在这里插入图片描述

二、盒子的大小

盒子模型分为两类:一类是标准型的箱线图模型(Standard Box Plot Model),另一类是基于IE特征的异常盒子模型(IE Anomaly Box Model)。为了更好地阐述这两种类型的特点与差异。

1、标准盒模型的大小

我们通过实验来探究标准盒模型的大小,上代码!

复制代码
     <div class="box"></div>
    
    
      
    
    AI写代码
复制代码
    .box{
    	width: 300px;
    	height: 300px;
    	background-color: green;
    	}
    
    
      
      
      
      
      
    
    AI写代码

运行代码就会在页面左上角出现设置好宽高的绿色方块

在这里插入图片描述

对应的盒模型:

在这里插入图片描述

可以看到这个时候方块的大小就是content(内容区)的大小

接下来我们给这个方块加上padding(填充区):

复制代码
    .box{
    	width: 300px;
    	height: 300px;
    	padding: 10px;
    	background-color: green;
    	}
    
    
      
      
      
      
      
      
    
    AI写代码

这个时候通过控制台我们可以看到这个元素变大了一点

在这里插入图片描述

对应的盒模型:

在这里插入图片描述

能够观察到盒子尺寸从3.0英寸扩大至3.2英寸之间,在此过程中我们能推断出padding参数确实会对盒体尺寸产生影响;此时盒体的实际尺寸则等于内容区域与边距之和

接着我们又给盒子加上border(边框):

复制代码
    .box{
    	width: 300px;
    	height: 300px;
    	padding: 10px;
    	border:10px solid black;
    	background-color: green;
    			}
    
    
      
      
      
      
      
      
      
    
    AI写代码

这个时候的盒子我们通过控制台看就变成这个大小了:

在这里插入图片描述

对应的盒模型:

在这里插入图片描述

可以看出宽度和高度分别变为340x340,在这种情况下该盒子整体尺寸即由content(内容区域)、padding(填充区域)及border(边框区域)三部分之和决定

随后为盒子设置外边距(margin), 以便于我们观察设置后盒子外边距的变化情况, 在下方增加一个名为box2的div元素并为其添加相应的样式设置

复制代码
    .box2{
    	width: 50px;
    	height: 50px;
    	background-color: red;
    	}
    
    
      
      
      
      
      
    
    AI写代码

效果图:

在这里插入图片描述

由于div属于块级元素,默认情况下会占据独立行;因此,在新增红色div时,其位置将位于绿色div下方。

接着给绿色的div加上margin我们观察下变化

复制代码
    .box{
    	width: 300px;
    	height: 300px;
    	padding: 10px;
    	border:10px solid black;
    	margin: 10px;
    	background-color: green;
    	}
    
    
      
      
      
      
      
      
      
      
    
    AI写代码
在这里插入图片描述

可以看到绿色盒子和红色盒子产生了10px的空白

对应的盒模型

在这里插入图片描述

绿色方块的宽高:

在这里插入图片描述

可以看到盒子大小并没有因为添加margin变大,还是保持在了340x340。

根据上述实验结果可以看出两个关键点

2、IE怪异盒模型的大小

我们再来看下怪异盒模型的大小,上代码

复制代码
     <input type="submit" class="box" />
    
    
      
    
    AI写代码
复制代码
    .box{
    	width: 300px;
    	height: 300px;
    	padding: 10px;
    	border:10px solid black;
    	margin: 10px;
    	background-color: green;
    	}
    
    
      
      
      
      
      
      
      
      
    
    AI写代码
在这里插入图片描述

对应的盒模型:

在这里插入图片描述

虽然怪异盒模型的大小不受border、padding以及margin的影响而不会被撑大(扩展),而是保持原有尺寸,并且只是centent(内容区)缩小了。

独特的怪异盒模型长度:length(内容区域 + 边框区域 + 填充区域) + margin

三、盒模型的属性

padding(内边距)属性

padding位于边框与内容之间的区域,并且只能为正值而不允许为负值。 padding位于盒子内部,并且在盒子与内容之间。

1)padding的作用和特点:

1、用于调整父级元素与其子级元素间的相对位置关系;
2、用于调节元内容及其内部结构之间的相对位置关系;
3、添加了特定数值后(...),该数值会对容器产生一定的扩展作用;如果希望容器尺寸维持原有数值,则需从容器宽度与高度中扣除所增加的数值;
4、若容器未指定宽度与高度(...),则该容器将自动延伸至其外部边界所限定的空间范围;
5、背景图片的位置设置不会受到容器内填充物的影响;
6、背景颜色将会延伸至填充物所占据的空间范围之内(...

2)padding的用法

1、Padding复合式写法设置多个方向填充

复制代码
    padding: 15px; /* 一个属性值表示四周都填充15px */
    padding: 15px 12px; /* 第一个属性值表示上下填充15px,第二个表示左右填充12px */
    padding: 14px 16px 17px; /* 第一个属性值表示上填充14px,第二个表示左右填充16px,第三个表示下填充17px */
    padding: 12px 15px 16px 17px; /* 第一个属性值是上填充12px,第二个是右填充15px,第三个是下填充16px,第四个是左填充17px */
    
    
      
      
      
      
    
    AI写代码

2、padding设置单一方向

复制代码
    padding-top:(设置上填充)、padding-right:(设置右填充)、padding-bottom:(设置下填充)、padding-left:(设置左填充)
    
    
      
    
    AI写代码

margin(外边距)属性

在元素外围设置 margin 时,默认具有透明背景且无色填充,并不会影响元素尺寸。允许设置正值或负值。

1)margin的作用和特点:

1、调节同级元素的位置关系。
2、margin位于元素外围空白区域。
3、不影响实际尺寸但会占用更多空间;

2)margin的用法

1、margin复合式写法设置多个方向的外边距

复制代码
    margin: 15px; /* 一个属性值表示四周外边距15px */
    margin: 15px 12px; /* 第一个属性值表示上下外边距15px,第二个表示左右外边距12px */
    margin: 14px 16px 17px; /* 第一个属性值表示上外边距14px,第二个表示左右外边距16px,第三个表示下外边距17px */
    margin: 12px 15px 16px 17px; /* 第一个属性值是上外边距12px,第二个是右外边距15px,第三个是下外边距16px,第四个是左外边距17px */
    
    
      
      
      
      
    
    AI写代码

2、margin设置单一方向的外边距

复制代码
    margin-top:(设置上外边距)、margin-right:(设置右外边距)、margin-bottom:(设置下外边距)、margin-left:(设置左外边距)
    
    
      
    
    AI写代码

借助于 margin 实现元素的水平居中对齐效果(例如采用 margin-left: 10px; margin-right: 10px;或 margin: 10px auto;等任意一种方式均可达到该目的)

复制代码
    margin:0 auto; /*设置对象上下间距为0,左右自动*/
    margin-leftauto:auto;
    margin-right:auto;
    
    
      
      
      
    
    AI写代码

border(边框)的属性:

1、边框分为上下左右四个方向:

  • 上边缘采用border-top
  • 下边缘采用border-bottom
  • 左边缘采用border-left
  • 右边缘采用border-right
    可以选择单独设置某一边
1)border的用法

1、border 的复合式写法

复制代码
    border: 3px solid green; /* 表示四周边框宽度为3px、实线、边框颜色为绿色*/
    
    
      
    
    AI写代码

2、border 设置单边的边框样式

复制代码
    border-top:#f0f solid 10px; /*上边框的样式*/                  
    border-right:#00f dotted 20px; /*右边框的样式)*/		                
    border-bottom:#0ff dashed 15px; /*下边框的样式*/
    border-left:#0f0 double 25px;/*左边框的样式*/			                
    
    
      
      
      
      
    
    AI写代码

3、border-width 的复合式写法

复制代码
    border-width:5px 10px 15px 20px; /*border-width的复合式写法*/
    				
    border-top-width:5px;     /*上边框的宽度*/
    border-right-width:10px;  /*右边框的宽度*/
    border-bottom-width:15px; /*下边框的宽度*/
    border-left-width: 20px;  /*左边框的宽度*/
    
    
      
      
      
      
      
      
    
    AI写代码

4、border-style 的复合式写法

复制代码
    border-style:solid dashed dotted double;/*border-style的复合式写法*/
    				
    border-top-style:solid;     /*上边框的线型*/
    border-right-style:dashed;  /*右边框的线型*/
    border-bottom-style:double; /*下边框的线型*/
    border-left-style:dotted;   /*左边框的线型*/
    
    
      
      
      
      
      
      
    
    AI写代码

5、border-color 的复合式写法

复制代码
    border-color:#ff0 #f0f #0ff #0f0;/*border-color的复合式写法*/
    				
    border-top-color:#ff0;    /*上边框的颜色*/
    border-right-color:#f0f;  /*右边框的颜色*/
    border-bottom-color:#0ff; /*下边框的颜色*/
    border-left-color:#0f0;   /*左边框的颜色*/
    
    
      
      
      
      
      
      
    
    AI写代码

全部评论 (0)

还没有任何评论哟~