css盒子模型

一、什么是css盒子模型

CSS 盒模型整体上适用于区块盒子,它定义了盒子的不同部分(外边距、边框、内边距和内容)如何协同工作,以创建一个在页面上可以看到的盒子。行内盒子使用的只是盒模型中定义的部分行为。

为了增加复杂性,有一种标准盒模型和一种替代盒模型。默认情况下,浏览器使用标准盒模型。

 二、css盒子模型的组成

在 CSS 盒子模型中,每个的 HTML 元素都会被当作是一个矩形的盒子,然后对它们进行从上到下,从左到右的布局。

一个盒子通常包括四个区域,从里到外分别是:

  • 内容区域 - 代表盒子的实际内容部分,用来显示文本和图像,它是由 width 宽度和 height 高度来确定的
  • 内间距区域 - 代表盒子与实际内容之间的空白区域,且内边距是透明的,由 padding 属性设置
  • 边框区域 - 代表盒子的边框,是内间距区域和外边距区域的边界,由 border 属性设置
  • 外边距区域 - 代表此盒子的边框与相邻的其他盒子边框之间的距离,且外边距是透明的,由 margin 属性设置


                        

三、盒子的类型:

CSS 中的盒子模型有两种类型,一种是 content-box,内容盒子,一种是 border-box 边框盒子,通过 css 属性 box-sizing 来设置。这两种盒子计算宽高的方式不一样。我们先来看一下 content-box 。
content-box 是 box-sizing 的默认值,也就是说所有的盒子默认都是内容盒子,那么这里 css 属性中的 width 和 height 设置的是它内容区域的宽高,而盒子的宽高需要加上内间距和边框,外边距不算在内。

如果把 box-sizing 的值改成 border-box,那么 width 和 height 属性就是分别设置盒子的最终宽度和高度

四、宽高的计算:

宽度的计算方式是:内容的宽度+左右内间距+左右边框的宽度

高度的计算方式则是:内容的高度+上下内间距+上下边框的宽度

五、背景颜色:


        大家小时候都玩过填色游戏吧,相当于将一个区域用画笔填上一种相同的颜色用来增加显示效果。对应的属性是:background-color 。但是问题来了我颜色要写什么值呢?这里介绍几个常用的颜色写法。

颜色名称:可以使用预定义的颜色名称来表示颜色,例如:background-color: red;表示红色背景。

RGB表示法:RGB表示红、绿、蓝三种颜色的组合值。可以使用十进制或十六进制表示。例如:

十进制表示法:background-color: rgb(255, 0, 0);表示红色背景。
十六进制表示法:background-color: #FF0000;表示红色背景。
RGBA表示法:RGBA在RGB的基础上增加了第四个参数,即alpha通道,用于控制颜色的透明度。取值范围是0到1,其中0表示完全透明,1表示完全不透明。例如:

background-color: rgba(255, 0, 0, 0.5);表示红色半透明背景

六、背景图片:


单一的背景颜色比较单调,我们需要为网页增加一个背景图片,以达到好看的效果
属性名称:background-image:url(具体路径);
大家思考一个问题,如果我的背景图片和给定的盒子大小不一样的时候我们该怎么办?

1.更改盒子大小

2.更改图片大小

这两种方法都是属于固定大小了,我们后续想要更改一些图片的话会比较麻烦,但是css刚好给了我们一些自动填充图片的属性

介绍
background-size是CSS背景属性中的一项,用于设置背景图像的大小。它可以接受多个不同的值,来决定如何调整背景图像的尺寸,以适应元素的大小和形状。

常见的background-size取值包括:

auto:保持背景图像的原始尺寸。
cover:缩放背景图像以完全覆盖容器,可能会被裁剪。
contain:缩放背景图像以适应容器,完整显示图像,可能会有空白部分。
length:指定背景图像的尺寸为一个固定的长度值,可以使用像素、英寸或厘米等单位。
percentage:指定背景图像的尺寸为一个百分比值,相对于背景容器的大小。
background-repeat是CSS背景属性中的一项,用于定义背景图像被如何重复或平铺。

repeat:默认属性值,背景图像会在水平和垂直方向上重复平铺,直到填满整个背景区域。
repeat-x:只在水平方向上重复平铺背景图像。
repeat-y:只在垂直方向上重复平铺背景图像。
no-repeat:只在水平和垂直方向上显示一次背景图像。
space:在水平和垂直方向上重复平铺背景图像,但是最后一行和列不进行重复,在最边缘留出空白。
背景图片一般搭配我标记的两种颜色的属性使用。覆盖和取消平铺

七、内外边距:

1. 内边距(padding)
作用:设置边框与内容区域之间的距离

属性名:padding

常见取值:

取值示例含义
一个值padding: 10px;上右下左都设置为10px
两个值padding: 10px 20px;上下设置为10px、左右设置为20px
三个值padding: 10px 20px 30px;上设置为10px、左右设置为20px、下设置为30px
四个值padding: 10px 20px 30px 40px;上设置为10px、右设置为20px、下设置为30px、左设置为40px
2.外边距(margin)

作用:设置边框以外,盒子与盒子之间的距离

属性名:margin

常见取值:

取值示例含义
一个值margin: 10px;上右下左都设置为10px
两个值margin: 10px 20px;上下设置为10px、左右设置为20px
三个值margin: 10px 20px 30px;上设置为10px、左右设置为20px、下设置为30px
四个值margin: 10px 20px 30px 40px;上设置为10px、右设置为20px、下设置为30px、左设置为40px

八、边框的使用:


1、border可以设置元素的边框。边框有三部分组成:边框宽度(粗细) 边框样式 边框颜色;
边框样式 border-style 可以设置如下值:

属性作用
border-width定义边框粗细,单位是px
border-style边框的样式
border-color边框的颜色

边框样式 border-style 可以设置如下值:

  • none:没有边框即忽略所有边框的宽度(默认值)
  • solid:边框为单实线(最为常用的)
  • dashed:边框为虚线
  • dotted:边框为点线

2、边框的合写分写

边框简写:

 border: 1px solid red;  


边框分开写法:

border-top: 1px solid red;  /* 只设定上边框, 其余同理 */   


3、表格的细线边框
border-collapse 属性控制浏览器绘制表格边框的方式。它控制相邻单元格的边框。

 边框会影响盒子实际大小
边框会额外增加盒子的实际大小。因此我们有两种方案解决:

测量盒子大小的时候,不量边框。
如果测量的时候包含了边框,则需要 width/height 减去边框宽度

九、特殊的盒子-替换元素


css 盒子模型中还有一种特殊的盒子:替换元素。替换元素是说,它们加载的是外部内容,并不会受现有的 CSS 属性的影响。常见的替换元素有 <img> 、 <iframe> 、 <video> 等,这些标签都是用来加载外部文件的,当前 HTML 页面中的 CSS 样式并不会影响它们的内容,比如说 <iframe> 标签加载的子页面,不会受当前页面的 CSS 影响。不过,可以通过 CSS 来控制替换元素在盒子中的位置,比如说用 <img/> 加载一张图片,我们可以限制 <img/> 盒子的宽高,然后利用 object-fit 属性,让图片等比例占满整个盒子,裁掉显示不下的部分,然后通过 object-position 来设置图片在盒子中的位置,可以是靠下或者居中等:

  • 26
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值