当前位置: 首页 > news >正文

CSS盒模型全面解析

目录

前言

一、CSS 盒模型的组成

1.1 内容区(content)

1.2 内边距(padding)

1.3 边框(border)

1.4 外边距(margin)

二、 css盒模型

2.1 盒子模型(W3C)

2.2 边框盒子(IE)

三、盒子背景样式

3.1 背景属性

3.2 背景属性缩写

3.3 背景图片和插入图片区别


前言

        在 CSS 布局中,盒模型是核心基石,它决定了网页元素如何占据空间、与其他元素交互。无论是简单的文本排版,还是复杂的响应式布局,掌握盒模型都至关重要。

一、CSS 盒模型的组成

任何 HTML 元素都可以看作一个 “矩形盒子”,从外到内依次由外边距(margin)边框(border)内边距(padding) 和 内容区(content) 组成。这四个部分共同决定了元素的大小、位置及与其他元素的关系。

1.1 内容区(content)

内容区是元素显示文本、图片等内容的区域,由width和height属性控制,默认单位为px,也支持em、%等相对单位。

  • width内容区宽度,块级元素默认占父容器 100% 宽度;

  • height:内容区高度,默认由子元素或内容自动填充(高度为 0 时仅显示内容高度);

辅助属性:

  • max-width:限制元素最大宽度,避免内容过宽导致布局错乱;

  • min-height:限制元素最小高度,确保内容不足时仍有基础占位。

1.2 内边距(padding)

内边距是内容区与边框之间的空间,会继承元素的背景色,且会改变元素的总占用空间(默认盒模型下)。

属性格式

  • 非连写:padding-top/padding-right/padding-bottom/padding-left
  • 连写:padding: 上 右 下 左
连写格式等价展开说明
padding: 10pxpadding: 10px 10px 10px 10px四边均为 10px
padding: 10px 20pxpadding: 10px 20px 10px 20px上下 10px,左右 20px
padding: 10px 20px 30pxpadding: 10px 20px 30px 20px上 10px,左右 20px,下 30px

1.3 边框(border)

边框是内边距与外边距之间的线条,由宽度(border-width)样式(border-style)颜色(border-color) 三要素组成,是盒子可视化的重要部分。

核心属性

  1. 边框样式:决定边框是否显示及形态,常用取值如下:

    • solid:实线(最常用);
    • dashed:虚线;
    • dotted:点线;
    • double:双线;
    • none:无边框(默认)。
  2. 连写格式:

    • 统一四边:border: 宽度 样式 颜色(颜色可省略,默认黑色;宽度可省略,默认细边框;样式不可省略);
    • 单独控制某边:border-top/border-right/border-bottom/border-left
    • 圆角边框:border-radius(取值为px%,实现圆角效果)。

1.4 外边距(margin)

外边距是盒子与其他元素之间的空间,没有背景色,常用于控制元素的位置(如水平居中)和元素间的间距。

属性格式:与padding完全一致(连写规则、非连写属性均相同),但需注意外边距合并现象

关键特性:外边距合并

  • 垂直方向(标准流中):相邻元素的外边距会 “取最大值” 而非叠加。例如:元素 A 下外边距 20px,元素 B 上外边距 30px,两者实际间距为 30px;
  • 水平方向:外边距会正常叠加(元素 A 右外边距 20px,元素 B 左外边距 30px,实际间距 50px)。

常见用法:水平居中通过margin: 0 auto可实现块级元素在父容器中水平居中(0表示上下外边距为 0,auto表示左右外边距自动分配)。


二、 css盒模型

CSS 中有内容盒子边框盒子两种盒模型,核心区别在于widthheight的计算范围不同,可通过box-sizing属性切换。

2.1 盒子模型(W3C)

(默认盒子模型):box-sizing: content-box

内容区的宽
width
内容区的高
height
盒子的宽
width+paddingLeft+paddingRight+borderLeft+borderRight
盒子的高
height+paddingTop+paddingBottom+borderTop+borderBottom
所占屏幕空间的宽
width+paddingLeft+paddingRight+borderLeft+borderRight +marginLeft+marginRight
所占屏幕空间的高
height+paddingTop+paddingBottom+borderTop+borderBottom+marginTop+marginBottom

特点:width和height仅对应内容区的宽高,元素总占用空间需叠加padding和border;

2.2 边框盒子(IE)

box-sizing: border-box

内容区的宽
width-paddingLeft-paddingRight-borderLeft-borderRight
内容区的⾼
height-paddingTop-paddingBottom-borderTop-borderBottom
盒子的宽
width
盒子的⾼
height

所占屏幕空间的宽
width+marginLeft+marginRight
所占屏幕空间的高
height+marginTop+marginBottom

边框盒子也称为怪异盒子,其特点为:当我们为⼀个盒子指定width属性的时候,实际上width包含了border和padding的宽度,如果border不变,padding变大,这时候内容会变小。


三、盒子背景样式

3.1 背景属性

属性名作用常用取值
background-color设置背景色十六进制(#fff)、RGB(rgb (255,255,255))、RGBA(带透明度)
background-image设置背景图url("图片路径")(本地 / 网络路径均可)
background-repeat控制背景图平铺方式no-repeat(不平铺)、repeat-x(水平平铺)、repeat-y(垂直平铺)
background-position控制背景图位置方位词(left,center,top,bottom等)、像素(100px 200px)
background-attachment控制背景图是否随滚动条滚动scroll(随滚动)、fixed(固定)

3.2 背景属性缩写

为简化代码,可使用background缩写属性,顺序为:background: 颜色 图片 平铺方式 关联方式 位置(任意属性可省略)。例如:

/* 背景图固定在右上角,不平铺,背景色为浅灰 */
.background-demo {width: 500px;height: 400px;background: #f5f5f5 url("https://example.com/bg.jpg") no-repeat fixed right top;border-radius: 10px;padding: 30px;
}

3.3 背景图片和插入图片区别

背景图(background-image插入图(<img>
语义性装饰性,无语义,搜索引擎不收录内容性,有语义,搜索引擎可收录
占用空间不占用文档流空间占用文档流空间,影响布局
位置控制支持background-position,控制灵活需通过定位(position)控制,较繁琐
适用场景页面背景、按钮图标等装饰元素文章配图、产品图片等核心内容

http://www.dtcms.com/a/419060.html

相关文章:

  • 免费开源cms网站源码网页设计公司网站设计
  • [pytest] autouse 参数:自动使用fixture
  • 上海市建上海市建设安全协会网站wordpress盲注
  • 论文阅读三-第二章(3)
  • 在 Windows 系统上怎么使用rabbitmq相关命令,比如:rabbitmqctl list_queues 命令
  • spire.doc for .net 在word的表格最后增加行及索引超限处理办法
  • 【android 驱动开发十】中断唤醒功能-维持500ms唤醒状态
  • 微信上可以做网站吗广州专业视频制作
  • wordpress还原网站源码易语言 wordpress
  • 深入解析AppCrawler:开源自动遍历测试工具配置指南
  • 24届(华为OD)Java面经
  • 20届-测试面经-华为OD
  • 重庆seo整站优化效果百度竞价推广属于什么广告
  • 朝阳区住房和城乡建设部网站营销模式有几种
  • linux学习笔记(5)计算机基本硬件结构
  • 自定义分页控件,只显示当前页码的前后N页
  • 软件开发和网站建设的区别做车贷的网站
  • PC16550串口中断接收与异常处理程序
  • 自动化脚本提升效率
  • mysql旧版本存储嵌入模型的向量数据
  • 公司网站建设宣传话语申请一个域名可以建设一个网站吗
  • 合川做网站临汾网站建设
  • HGAME 2023 week1]a_cup_of_tea
  • vue 打包element plus组件生成对应css文件的问题
  • 网站 接入微信公众号登陆入口
  • 做网站和做appwordpress category模板
  • Windows---进程状态信息获取的核心接口<Psapi.h>
  • flink状态管理
  • 有成功案例的网站汉口北做网站
  • k8s的kube-prosy