CSS(三)盒子模型

目录

Content

Padding

Border

Margin

盒子模型计算方式

使用 box-sizing 属性控制盒子模型的计算


所有的HTML元素都可以看作像下图这样一个矩形盒子:

这个模型包括了四个区域:content(内容区域)、padding(内边距)、border(边框)和 margin(外边距)

Content

内容区域是盒子模型的最核心部分,包含了元素的实际内容,例如文本、图片、视频、按钮等

内容区域的大小由元素的 widthheight 属性决定。通常,CSS 的 widthheight 只会影响内容区域的尺寸,paddingbordermargin 不会计入该区域的尺寸。例如想要设置一个 div 元素的宽度为 300px,那么该 div 的内容区域的宽度就为 300px:

div {width: 300px;height: 150px;
}

Padding

内边距是内容区域与边框之间的空间,通过调整 padding,可以控制内容与边框之间的距离

例如,增加内边距可以使文本远离边框,提升可读性

div {padding: 20px;
}

上述代码会在 div 元素的所有边缘(上、右、下、左)添加 20px 的内边距

同样,也可以单独设置四个方向的内边距:padding-toppadding-rightpadding-bottompadding-left

Border

边框围绕内容区域和内边距的外部,是一个可视的边界。边框的样式、宽度和颜色可以自定义

影响元素边界的属性:border-widthborder-styleborder-color

div {border: 3px solid black;
}

上述代码会给 div 元素添加一个 3px 宽的黑色实线边框

圆角边框:

使用border-radius属性来设置圆角框的半径

border-radius:10px

border-radius 可以接收 1 到 4 个值,决定了每个角的半径

  • 1个值:四个角相同
  • 2个值:第一个值为水平半径,第二个值为垂直半径
  • 3个值:前两个为左右角,最后一个为上下角的半径
  • 4个值:依次为左上、右上、右下、左下的圆角半径

Margin

外边距是盒子与其他元素之间的空隙,用来控制元素间的距离

外边距不会影响元素的实际大小,但它会改变元素与其他元素之间的间距

div {margin: 20px;
}

上述代码会在 div 元素的四个方向添加 20px 的外边距,增加元素与其他元素之间的间距

同样也可以设置四个单独方向的外边距:margin-topmargin-rightmargin-bottommargin-left

控制块居中:

margin:auto;

盒子模型计算方式

默认情况下,CSS 中的宽度和高度只包括 内容区域,不包括内边距、边框和外边距。

因此,元素的总大小大于其指定的 widthheight

总宽度 = 内容宽度 (width) + 左右内边距 (padding-leftpadding-right) + 左右边框 (border-leftborder-right) + 左右外边距 (margin-leftmargin-right)

总高度 = 内容高度 (height) + 上下内边距 (padding-toppadding-bottom) + 上下边框 (border-topborder-bottom) + 上下外边距 (margin-topmargin-bottom)

使用 box-sizing 属性控制盒子模型的计算

box-sizing 属性可以控制如何计算元素的宽度和高度。

它的取值为:

  • content-box(默认值):

    • 宽度和高度只包括内容区域,不包括内边距和边框
    • paddingborder 会额外增加在元素的尺寸上
  • border-box

    • 宽度和高度包括内容区域、内边距和边框的尺寸
    • 使用 border-box 后,设置的宽度和高度会包含 paddingborder,更符合直观的布局

例如:

div {box-sizing: border-box;width: 300px;padding: 20px;border: 10px solid black;
}

在这种情况下,div 元素的总宽度是 300px,其中包含 paddingborder

如果使用 content-box,则总宽度将是 300px + 20px(padding-left)+ 20px(padding-right)+ 10px(border-left)+ 10px(border-right)= 360px

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

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

相关文章

基于NodeMCU的物联网窗帘控制系统设计

最终效果 基于NodeMCU的物联网窗帘控制系统设计 项目介绍 该项目是“物联网实验室监测控制系统设计(仿智能家居)”项目中的“家电控制设计”中的“窗帘控制”子项目,最前者还包括“物联网设计”、“环境监测设计”、“门禁系统设计计”和“小…

有没有免费提取音频的软件?音频编辑软件介绍!

出于工作和生活娱乐等原因,有时候我们需要把音频单独提取出来(比如歌曲伴奏、人声清唱等、乐器独奏等)。要提取音频必须借助音频处理软件,那么有没有免费提取音频的软件呢?下面我们将为大家介绍几款免费软件&#xff0…

WPF自定义窗口 输入验证不生效

WPF自定义窗口 输入验证不生效 WPF ValidationRule 不生效 WPF ValidationRule 不生效 解决方案&#xff1a;在WindowStyle的Template中添加AdornerDecorator标签。 <Style x:Key"WindowStyle1" TargetType"{x:Type Window}"><Setter Property&…

【保姆式】python调用api通过机器人发送文件到飞书指定群聊

当前飞书webhook机器人还不支持发送文件类型的群消息&#xff0c;它目前仅支持文本&#xff0c;富文本&#xff0c;卡片等文字类型的数据。 我们可以申请创建一个机器人应用来实现群发送文件消息。 创建飞书应用 创建飞书应用、配置权限、添加机器人 来到飞书开发者后台 创建…

MySQL-存储过程(头歌数据库实验题)

&#xff08;学校数据库课程的头歌平台实验题&#xff0c;根据自己理解编写&#xff0c;希望对正在学的人有启发作用和借鉴帮助&#xff0c;不喜勿喷&#xff0c;有错请联系改正&#xff09; 实验 存储过程&#xff1a;输入1 任务描述&#xff1a; 本关任务&#xff1a;编写…

GitLab 服务变更提醒:中国大陆、澳门和香港用户停止提供服务(GitLab 服务停止)

目录 前言 一. 变更详情 1. 停止服务区域 2. 邮件通知 3. 新的服务提供商 4. 关键日期 5. 行动建议 二. 迁移指南 三. 注意事项 四. 相关推荐 前言 近期&#xff0c;许多位于中国大陆、澳门和香港的 GitLab 用户收到了一封来自 GitLab 官方的重要通知。根据这封邮件…

mysql基础快速入门

通用语法及分类 DDL: 数据定义语言&#xff0c;用来定义数据库对象&#xff08;数据库、表、字段&#xff09;DML: 数据操作语言&#xff0c;用来对数据库表中的数据进行增删改DQL: 数据查询语言&#xff0c;用来查询数据库中表的记录DCL: 数据控制语言&#xff0c;用来创建数…

Python文件读写在“简易记事本”项目中的应用

Python文件读写在“简易记事本”项目中的应用 文件读写是“简易记事本”项目实现数据持久化的关键部分。在本节中&#xff0c;我们将逐步拆解记事本的功能&#xff0c;详细讲解与文件读写相关的代码&#xff0c;并结合实际操作帮助读者更好地理解文件操作的核心知识点。 功能…

【Agent】AutoGen Studio2.0开源框架-UI层环境安装+详细操作教程(从0到1带跑通智能体AutoGen Studio)

&#x1f4a5; 欢迎来到我的博客&#xff01;很高兴能在这里与您相遇&#xff01; 首页&#xff1a;GPT-千鑫 – 热爱AI、热爱Python的天选打工人&#xff0c;活到老学到老&#xff01;&#xff01;&#xff01;导航 - 人工智能系列&#xff1a;包含 OpenAI API Key教程, 50个…

三层交换机配置

一&#xff0c;三层交换 概念&#xff1a;三层交换技术就是&#xff1a;二层交换技术三层转发技术(路由器功能)。它解决了局域网中网段划分之后&#xff0c;网段中子网必须依赖路由器进行管理的局面&#xff0c;解决了传统路由器低速&#xff0c;复杂所造成的网络瓶颈问题。 …

js单例模式

单例模式是一种常见的设计模式&#xff0c;在JavaScript中也有广泛应用&#xff0c;以下是关于它的详细介绍&#xff1a; 定义 单例模式是一种创建型设计模式&#xff0c;它确保一个类只有一个实例&#xff0c;并提供一个全局访问点来访问该实例。在JavaScript中&#xff0c;…

【Golang 面试题】每日 3 题(六)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/UWz06 &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏…

SQL Server数据库多主模式解决方案

SQL Server 本身并不直接支持多主模式(Multi-Master Replication),即多个数据库实例可以同时进行写操作,并且这些更改会自动同步到其他实例。不过,SQL Server 提供了多种高可用性和复制解决方案,可以实现类似多主模式的功能。以下是几种常见的方法: 1. Always On 可用性…

连锁餐饮行业数据可视化分析方案

引言 随着连锁餐饮行业的迅速发展&#xff0c;市场竞争日益激烈。企业需要更加精准地把握运营状况、消费者需求和市场趋势&#xff0c;以制定科学合理的决策&#xff0c;提升竞争力和盈利能力。可视化数据分析可以帮助连锁餐饮企业整合多源数据&#xff0c;通过直观、动态的可…

Zookeeper JavaAPI操作(Curator API常用操作)

构建项目 zk版本&#xff1a;3.5.7&#xff0c;引入4.0.0的curator版本&#xff0c;Curator依赖的版本只能比zookeeper依赖的版本高。 Curator简单介绍 Curator是Netflix公司开源的一套zookeeper客户端框架&#xff0c;解决了很多Zookeeper客户端非常底层的细节开发工作&…

可搜索的下拉选择框:filterable属性详解

在前端开发中&#xff0c;下拉选择框&#xff08;Dropdown Select&#xff09;是一个常见的UI组件&#xff0c;它允许用户从一组预定义的选项中选择一个或多个值。然而&#xff0c;当选项数量较多时&#xff0c;手动查找特定的选项可能会变得繁琐。为了解决这个问题&#xff0c…

精选9个自动化任务的Python脚本精选

大家好&#xff0c;我是老邓&#xff0c;今天我们来一起学习如何用Python进行一些常见的自动化操作&#xff0c;涉及文件处理、网络交互等实用技巧。即使你没有任何Python基础也没关系&#xff0c;我会用最通俗易懂的语言来讲解。 1. 对目录中的文件进行排序 import osdef so…

滑动窗口 + 算法复习

维护一个满足条件的窗口大小&#xff0c;然后进行双指针移动 1.最长子串 题目链接&#xff1a;1.最长子串 - 蓝桥云课 #include<bits/stdc.h> #define int long long using namespace std; string s; int k; signed main() {int max_len0,left0;cin>>s>>k;…

PDF书籍《手写调用链监控APM系统-Java版》第9章 插件与链路的结合:Mysql插件实现

本人阅读了 Skywalking 的大部分核心代码&#xff0c;也了解了相关的文献&#xff0c;对此深有感悟&#xff0c;特此借助巨人的思想自己手动用JAVA语言实现了一个 “调用链监控APM” 系统。本书采用边讲解实现原理边编写代码的方式&#xff0c;看本书时一定要跟着敲代码。 作者…

关于Vue的子组件改变父组件传来的值

一、组件直接传值 大家都知道父子组件传值的方案&#xff0c;有以下几个&#xff0c;不再详细敖述 Props&#xff1a;父组件向子组件传递数据 $emit&#xff1a;子组件通过自定义事件向父组件传递数据 .sync修饰符&#xff1a;一个方便且强大的工具&#xff0c;可以简化父子组…