CSS(三)盒子模型

news2024/12/27 18:28:55

目录

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.coloradmin.cn/o/2266545.html

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

相关文章

LeetCode - Google 校招100题 第7天 序列(数据结构贪心) (15题)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/144744418 相关文章: LeetCode 合计最常见的 112 题: 校招100题 第1天 链表(List) (19题)校招100题 第2天 树(Tree) (21题)校招100题 第3天 动态规划(DP) (

E-commerce .net+React(一)——项目初始化

文章目录 项目地址一、创建.Net环境1.1环境配置1.1.1 使用vscode创建webapi1.1.2 Clean architecture结构创建1.1.3 将创建好结构的项目添加到git里1.1.4 EF Core配置1. 在infrastructure里安装EF所需环境2. 创建Product数据模型3. 创建EF Core的DbContext 数据库上下文4. 创建…

农家乐系统|Java|SSM|VUE| 前后端分离

【技术栈】 1⃣️:架构: B/S、MVC 2⃣️:系统环境:Windowsh/Mac 3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7 4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5⃣️数据库可…

NIPS2014 | GAN: 生成对抗网络

Generative Adversarial Nets 摘要-Abstract引言-Introduction相关工作-Related Work对抗网络-Adversarial Nets理论结果-Theoretical Results实验-Experiments优势和不足-Advantages and disadvantages缺点优点 结论及未来工作-Conclusions and future work研究总结未来研究方…

《战神:诸神黄昏》游戏运行时提示找不到emp.dll怎么办?emp.dll丢失如何修复?

《战神:诸神黄昏》游戏运行时提示找不到emp.dll怎么办?emp.dll丢失的修复方法 在畅游《战神:诸神黄昏》这款史诗级游戏的过程中,如果突然遭遇“找不到emp.dll”的错误提示,无疑会打断你的冒险之旅。作为一名深耕软件开…

笔记本通过HDMI转VGA线连接戴尔显示器,wifi不可用或网速变慢

早上开开心心的来使用我的分屏显示器,结果winP开拓展,我的wifi就断掉了,琢磨了好一阵我以为是wifi的问题,发现不进行拓展,网络又好了,一上午就研究这个了,说是hdmi信号干扰了wifi信号啥的额&…

【MATLAB第110期】#保姆级教学 | 基于MATLAB的PAWN全局敏感性分析方法(无目标函数)含特征变量置信区间分析

【MATLAB第110期】#保姆级教学 | 基于MATLAB的PAWN全局敏感性分析方法(无目标函数)含特征变量置信区间分析 一、介绍 PAWN(Probabilistic Analysis With Numerical Uncertainties)是一种基于密度的全局敏感性分析(Gl…

BiTCN-BiGRU基于双向时间卷积网络结合双向门控循环单元的数据多特征分类预测(多输入单输出)

Matlab实现BiTCN-BiGRU基于双向时间卷积网络结合双向门控循环单元的数据多特征分类预测(多输入单输出) 目录 Matlab实现BiTCN-BiGRU基于双向时间卷积网络结合双向门控循环单元的数据多特征分类预测(多输入单输出)分类效果基本描述…

python: Oracle Stored Procedure query table

oracel sql script CREATE OR REPLACE PROCEDURE SelectSchool(paramSchoolId IN char,p_cursor OUT SYS_REFCURSOR ) AS BEGINOPEN p_cursor FORSELECT *FROM SchoolWHERE SchoolId paramSchoolId; END SelectSchool; /-- 查询所有 CREATE OR REPLACE PROCEDURE SelectScho…

软件老化分析

软件老化 课程:软件质量分析 作业 解答 Python代码如下: n int(input("类别数:")) theta list(map(float, input("各个类别的权重:").split())) m list(map(int, input("各个类别的度量元数量&…

cesium通过经纬度获取3dtiles 得feature信息

找到这里3dtiles的两种访问方式: 1.1 3DTileContent#getFeature 这里涉及3DTile 数据结构,暂不了解3DTile 数据结构,因此暂不使用。 1.2 scene.pick 本次使用 scene表示虚拟场景中所有 3D 图形对象和状态的容器;scene中…

【Lua之·Lua与C/C++交互·Lua CAPI访问栈操作】

系列文章目录 文章目录 前言一、概述1.1 Lua堆栈 二、栈操作2.1 基本的栈操作2.2 入栈操作函数2.3 出栈操作函数2.4 既入栈又出栈的操作函数2.5 栈检查与类型转换函数2.5 获取表数据 三、实例演示总结 前言 Lua是一种轻量级的、高性能的脚本语言,经常被用于游戏开发…

Linux -- 生产消费模型

目录 概念 代码 BlockQueue.hpp 代码: 伪唤醒!! Thread.hpp 代码: Task.hpp 代码: test.cc 代码: 再次理解 概念 生产消费模型,也称为生产者-消费者问题,是计算机科学中的一…

DevOps实战:用Kubernetes和Argo打造自动化CI/CD流程(1)

DevOps实战:用Kubernetes和Argo打造自动化CI/CD流程(1) 架构 架构图 本设计方案的目标是在一台阿里云ECS服务器上搭建一个轻量级的Kubernetes服务k3s节点,并基于Argo搭建一套完整的DevOps CI/CD服务平台,包括Argo CD…

React 第二十节 useRef 用途使用技巧注意事项详解

简述 useRef 用于操作不需要在视图上渲染的属性数据,用于访问真实的DOM节点,或者React组件的实例对象,允许直接操作DOM元素或者是组件; 写法 const inpRef useRef(params)参数: useRef(params),接收的 …

【2024最新】基于Python+Mysql+django的水果销售系统Lw+PPT

作者:计算机搬砖家 开发技术:SpringBoot、php、Python、小程序、SSM、Vue、MySQL、JSP、ElementUI等,“文末源码”。 专栏推荐:SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:Java精选实战项…

利用Java爬虫速卖通按关键字搜索AliExpress商品

在这个信息爆炸的时代,数据的价值日益凸显。对于电商领域的从业者来说,能够快速获取商品信息成为了一项重要的技能。速卖通(AliExpress)作为全球领先的跨境电商平台,拥有海量的商品数据。本文将介绍如何使用Java语言编…

动态规划<五> 子数组问题(含对应LeetcodeOJ题)

目录 引例 经典LeetcodeOJ题 1.第一题 2.第二题 3.第三题 4.第四题 5.第五题 6.第六题 7.第七题 引例 OJ传送门 Leetcode<53> 最大子数组和 画图分析: 使用动态规划解决 1.状态表示 dp[i]表示以i位置为结尾的所有子数组中的最大和 2.状态转移方程 子数组的问题可以…

前端实现PDF预览的几种选择(pdfjs-dist、react-pdf、pdf-viewer)

记录 PDF预览的选型 对于浏览器自带的PDF预览 如果能直接使用&#xff0c;那自然最好不过了&#xff0c;但考虑多种因素&#xff0c;比如权限问题&#xff0c;禁止用户去下载PDF、预览样式不统一&#xff08;不同浏览器PDF预览的实现不同&#xff09;&#xff0c;所有最终放弃…

小米路由器开启SSH,配置阿里云ddns,开启外网访问SSH和WEB管理界面

文章目录 前言一、开启SSH二、配置阿里云ddns1.准备工作2.创建ddns脚本3.添加定时任务 三、开启外网访问SSH和WEB管理界面1、解除WEB管理页面访问限制2.手动添加防火墙端口转发规则&#xff0c;开启外网访问WEB管理和SSH 前言 例如&#xff1a;随着人工智能的不断发展&#xf…