CSS基础——盒子模型

news2025/4/8 6:18:42

目录

简介

盒子模型组成

内容区

内边距

边框

border-width

border-color

border-style

border

外边距

负值

auto

简写属性

垂直外边距的重叠

浏览器默认设置

内联元素的盒子


简介

在网页中,一切都是可以看作为“盒子”。

在css处理网页的时候,我们认为每一个元素都是包含在一个看不见的盒子里面

盒子模型组成

由里到外盒子模型依次包含:

内容区(content)

内边距(padding)

边框(border)

外边距(margin)

如下图所示,可以很形象的让我们理解各个部分:

内容区

内容区具体指的是盒子中放置内容的那么一块区域,也就是元素中的文本内容,子元素都是存在于内容区之内的。

假如我们没有为元素去设置内边距还有边框,则内容区大小 默认和盒子大小是一致的。

通过width来设置我们盒子内容区的宽度,height来设置盒子内容区的高度。(记住这里的两个属性仅仅是用爱设置盒子内容区的大小,盒子的大小还要加上边框的宽度)

width和height属性只适用于块元素

内边距

内边距:指的是盒子的内容区与盒子的边框之间的距离

一共4个方向的内边距,可以通过以下4个属性来分别设置4个方向的属性:

padding-top:

padding-right:

padding-bottom:

padding-left:

内边距会影响到盒子可见框的大小,元素的背景会延伸到内边距

盒子的大小是有内容区、内边距以及边框共同决定的。

盒子可见框的宽度=border-left-width+padding-left+width+padding-right-width+boder-right-width

盒子可见框的高度公式同上

边框

为元素设置边框,则必须指定下面的这三个样式:

border-width

        边框的宽度

        他可以粉笔指定4个边框的宽度;如果我们指定了4个值,则4个值分别设置给了 上 右 下 左 ,这是按照顺时针方向设置的;如果指定3个值,则这三个值会分别设置给 上 左右  下;如果是指定2个值,则两个值会分别设置给上下  左右;如果制定1个值,则4个方向边框都是1个值

也可以使用border-top/left/right/bottom分别指定上右下左 四个方向的边框。

border-color

        边框的颜色

        和宽度一样,color也提供了4个方向的样式粉笔指定颜色的

border-style

        边框的样式

        可选值:

                none:默认值,没有边框

                solid:实线

                dotted:点状块

                dashed:虚线

                double:定义双线

        style也可以粉笔指定4个边框样式,规定和width一致,同时他也提供了border-xxx-style分别设置4个边框的样式。

border

        边框的简写样式;他可以同事设置4个边框的样式,宽度,颜色

        并且他没有任何的树勋要求;border指定则是同事指定4个边框,不能分别指定4个边

        同时,也提供了boder-top、boder-right、boder-bottom、boder-left

外边距

外边距:他指的是当前的盒子与其他的盒子之间的距离(盒子与盒子见得距离)

他不会影响我们可见框的大小,只会影响盒子的位置

盒子有4个方向的外边距:

margin-top:        上外边距,盒子上边框和其他盒子的距离

margin-right:        右外边距,盒子右边框和其他盒子的距离

margin-bottom:        下外边距,盒子下边框和其他盒子的距离

margin-left:                左外边距,盒子左边框和其他盒子的距离

由于页面中的元素全部都是靠左靠上去摆放的。因此设置外边距会影响到自身或者其他盒子的位置问题:

设置上或者左外边距的时候,会影响盒子自身的位置发生变化;

设置下或者右外边距的时候,会影响其他盒子的位置发生变化

负值

外边距他其实是可以设置一个负值的,如果外边距设置的是负值,那么他会向相反的方向移动      

auto

margin他还可以设置auto,其一般只会设置水平方向的margin。

如果仅仅指定左或者右外边距的margin为auto属性,则会将我们盒子的外边距设置为最大值

如果左右都设置了auto属性,则外边距会设置相同的值,则就相当于在父元素中居中显示。

垂直方向外边距设置为auto,则相当于设置了0。

简写属性

外边距同样可以使用简写属性:magrin,并且也可以同时设置4个方向的外边距,规则和padding一样,都是顺时针设置的——上 右 下 左

垂直外边距的重叠

在网页中垂直方向的相邻外边距会发生外边距重叠

从上面这段话,我们可以看出来,垂直外边距构成的条件有两个,分别是:

1、垂直的外边距;2相邻的

垂直外边距重叠:指的是兄弟元素之间的相邻外边距会取最大值而不是取和

如果父子元素的垂直边距相邻,给子外边距设置了的属性会传递到父元素身上,就相当于设置给了父元素

浏览器默认设置

浏览器为了在没有样式的时候,有个比较美观的显示,会有一个默认的样式。

都会设置默认的margin和padding,然而他的默认样式,我们一般不会使用,所以我们在编写样式之前,需要将浏览器中的默认样式全部去掉。

所以我们一般会使用通配选择器清除默认样式

*{

        margin:0;

        padding:0;

}

内联元素的盒子

内联元素不能设置width和height属性

内联元素可以设置水平方向的内边距(影响布局)、垂直方向内边距(但是不会影响页面的布局)

内联元素可以设边框属性,水平方向边框影响布局、垂直方向边框不会影响页面布局

内联元素可以设置水平方向的外边距

        (1、不会重叠,会求和。2、影响布局)

内联元素不支持设置垂直外边距

好了,关于盒子模型就先了解到这里!

欢迎大家点击下方卡片,关注《coder练习生》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/434098.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

音游判定原理详解——从触摸屏幕到判定音符【Project SEKAI攻略】

“音乐游戏”一般简称为“音游”,玩家需要配合音乐的节奏来进行一定的动作。 《Project SEKAI》作为一个“移动端音游”,绝大多数玩家会使用手机、平板电脑等移动设备的触摸屏进行游玩,也有极少数的玩家不按常理出牌,使用手台、键…

英国站亚马逊纽扣电池标准

英国标准协会(BSI)于2021年4月30日发布了纽扣(非锂)和纽扣(锂)电池的国家标准PAS 7055:2021。 该标准是根据2005年通用产品安全法规的规定制定的(GPSR) 并关注投放到英国市场的产品的安全性。 PAS 7055:202…

数据库实验 | 第1关:建立和调用存储过程(不带输出参数的存储过程)

任务描述 本关任务: 该实验是针对数据表jdxx,该数据表有四个字段,分别是省份(sf)、城市(cs)、区县(qxmc)、街道(name)。 例如,查询天心区(qxmc)的所有字段的值结果如图所示 任务要求 建立存储过程 dqxx(in city varchar(10),i…

6.S081——虚拟内存部分——xv6源码完全解析系列(4)

0.briefly speaking 点击跳转到上一篇博客 好,现在进入下一个话题,就是物理内存分配器(kernel/kalloc.c)。在简单介绍完内核态的物理内存分配器之后,之后简单带过一下两个头文件riscv.h和memorylayout.h这两个头文件,因为它们都…

.Net Core从零学习搭建权限管理系统 - 课程简介

课程简介目录 🚀前言一、课程背景二、课程目的三、系统功能四、系统技术架构五、课程特点六、课程适合人员七、课程规划的章节八、最后 🚀前言 本文是《.Net Core从零学习搭建权限管理系统》教程专栏的导航站(点击链接,跳转到专栏…

(1条消息) CodeForces 1278 B.A and B(Math)

题目如下: 题解 or 思路 首先我们需要知道: 对于: s u m 1 2 3 4 . . . n sum 1 2 3 4 ... n sum1234...n s u m a b , ( a ∈ [ 0 , s u m ] ) sum a b, (a \in [0, sum]) sumab,(a∈[0,sum]) 这个在此就不再证明 于是我…

vcpkg添加自定义包安装

文章目录 前言新建overlay-ports编写baseline.json编写openssl.json编写配置修改vcpkg.json修改portfile.cmake 挂载安装后话 前言 vcpkg收集了很多C的包,可总是会有没收录进去的,以openssl 3.0.0版本举例,这个版本vcpkg没有收录进去&#x…

String的不可变特性

1 问题 如何理解“String是不可变的,但是可以变”? 2 方法 (1)String的不可变特性体现在内容和长度 首先在idea中点开查看String这个类是如何定义的 可以看到这样一行代码:private final char value[]; 正是因为这个数…

基于Simulink单载波链路射频波束成形仿真

一、前言 此示例展示了如何在 Simulink中对 IEEE 802.11ad单载波链路进行建模,其中包括具有射频波束成形功能的相控阵天线。 二、介绍 此模型模拟具有射频波束成形的 802.11ad 单载波 (SC)链路。多个数据包通过自由空间传输,然后射…

图片转为pdf怎么弄?简单几个步骤轻松转换

在日常工作和生活中,我们常常需要将图片转换为PDF格式的文档,以满足资料存档和共享的需要。虽然转换过程看起来有些麻烦,但只要选择正确的工具和方法,就能轻松完成。 下面,小编将为大家介绍两种常见的将图片转换为PDF…

生成对抗网络(GAN) 理论概念、改进模型与练习题

生成对抗网络(GAN) 生成对抗网络的基本概念模型提出模型类型模型功能模型目标模型结构模型训练模型实质模型缺点模型生成器的构造模型损失函数 生成对抗网络的改进模型DCGANWGANWGAN-GPACGAN 生成对抗网络的题型 生成对抗网络的基本概念 模型提出 2014…

Grad-CAM的详细介绍和Pytorch代码实现

Grad-CAM (Gradient-weighted Class Activation Mapping) 是一种可视化深度神经网络中哪些部分对于预测结果贡献最大的技术。它能够定位到特定的图像区域,从而使得神经网络的决策过程更加可解释和可视化。 Grad-CAM 的基本思想是,在神经网络中&#xff…

体验编写Vue框架项目实例的详细步骤2(包括git仓库使用,element-ui的使用和eslint校验关闭)

1.在src目录下新建pages文件夹用来放页面。新建文件Index.vue,首页 在Index.vue中搭建vue基本结构。 在element官网Element - The worlds most popular Vue UI framework中选择想要的组件。 我选择是Container布局容器。选择好样式点击显示代码复制相关代码至Ind…

【安全运维】小微企业的安全运维工具用哪款好?

即使是小微企业,也同样面临着安全运维的困扰,同样面临着数据泄露、资产难管理的问题,因此选择一款合适的安全运维工具是非常必要的。那你知道小微企业的安全运维工具用哪款好? 小微企业的安全运维工具用哪款好? 【回…

全景视角下的世界探索——三维全景地图

引言:随着数字技术和虚拟现实技术的发展,三维全景地图已成为一种新型地图展示方式,深受人们的关注和喜爱。三维全景地图以其真实逼真、互动性强、展示效果好等特点,正在越来越多的领域得到应用。 三维全景地图的特点 1.真实逼真 …

Elasticsearch(黑马)

初识elasticsearch ​​. 安装elasticsearch 1.部署单点es 1.1.创建网络 因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络: docker network create es-net 1.2.加载镜像 这里我们采用elasticsearch的7.12.1版本的…

【云原生概念和技术】1.2 云原生技术概括(下)

如果想了解或者学习云原生的友友们,欢迎订阅哦~🤗,目前一周三更,努力码字中🧑‍💻…目前第一章是一些介绍和概念性的知识,可以先在脑海里有一个知识的轮廓,从第二章开始就…

Talk预告 | ICLR‘23 北京大学楼家宁:针对鲁棒聚类问题的接近最优核心集

本期为TechBeat人工智能社区第485期线上Talk! 北京时间3月29日(周三)20:00,北京大学信息科学技术学院——楼家宁的Talk将准时在TechBeat人工智能社区开播! 他与大家分享的主题是: “针对鲁棒聚类问题的接近最优核心集”,届时将针…

nodejs+vue在线课程管理系统

随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本在线课程管理系统有管理员,教师,学生。管理员功能有个人中心,学生管理,教师管理,在线课程管理,课件信息管理&#x…

maybits就是持久型框架

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Ob…