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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL外键类型与应用场景总结:优缺点一目了然

前言: MySQL的外键简介:在 MySQL 中,外键 (Foreign Key) 用于建立和强制表之间的关联,确保数据的一致性和完整性。外键的作用主要是限制和维护引用完整性 (Referential Integrity)。 主要体现在引用操作发生变化时的处理方式&…

MySQL从入门到入土---MySQL表的约束 (内含实践)---详细版

目录 引入: null 与not null default: comment列描述 : not null 和 default: zerofill : 主键:primary key 复合主键: 自增长:auto_increment 唯一键:unique key 外键&a…

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

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

Webpack在Vue CLI中的应用

webpack 作为目前最流行的项目打包工具,被广泛使用于项目的构建和开发过程中,其实说它是打包工具有点大材小用了,我个人认为它是一个集前端自动化、模块化、组件化于一体的可拓展系统,你可以根据自己的需要来进行一系列的配置和安…

java日志框架:slf4j、jul(java.util.logging)、 log4j、 logback

SLF4J--抽象接口 SLF4J (Simple Logging Facade for Java) 是一个为各种 Java 日志框架提供简单统一接口的库。它的主要目的是将应用程序代码与具体的日志实现解耦,使得在不修改应用程序代码的情况下,可以轻松地切换不同的日志框架。 jul-to-slft4j.ja…

命令行之巅:Linux Shell编程的至高艺术(中)

文章一览 前言一、输入/输出及重定向命令1.1 输入/输出命令1.1.1 read命令1.1.2 echo命令 1.2 输入/输出重定向1.3 重定向深入讲解1.4 Here Document1.4.1 /dev/null 文件 二、shell特殊字符和命令语法2.1 引号2.1.1 双引号2.1.2 单引号2.1.3 倒引号 2.2 注释、管道线和后台命令…

一文理解机器学习中二分类任务的评价指标 AUPRC 和 AUROC

🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 在机器学习的二分类任务中,评估模型性能是至关重要的一步。两种常用的评价指标是 Precision-Recall Curve 下的面积 (AUPRC) 和 Receiver Operating Characteristic Curve 下的面积 (AUROC)…

Visual Studio Code(VS Code)配置C/C++环境

一、Visual Studio Code安装 Visual Studio Code,下文中简称为VS Code的详细安装方法请参考VSCode安装教程(超详细)-CSDN博客 二、MinGW编译器下载与配置 1、MinGW介绍 MinGW(Minimalist GNU for Windows)是一款用于Windows 平台的轻…

少儿编程在线培训系统:客户服务与学习支持

2.1 VUE技术 VUE它是由HTML代码,配上嵌入在HTML代码里面的Java代码组成的应用于服务器端的语言,使用VUE进行开发能够更加容易区分网页逻辑以及网页设计内容,让程序员开发思路更加清晰化,VUE在设计组件时,它是可以重用的…

uniapp Native.js原生arr插件服务发送广播到uniapp页面中

前言 最近搞了个设备,需求是读取m1卡,厂家给了个安卓原生demo,接入arr插件如下,接入后发现还是少了一部分代码,设备服务调起后触发刷卡无法发送到uniapp里。 中间是一些踩坑记录,最后面是解决办法&#xf…

C项目 天天酷跑(下篇)

上篇再博客里面有&#xff0c;接下来我们实现我们剩下要实现的功能 文章目录 碰撞检测 血条的实现 积分计数器 前言 我们现在要继续优化我们的程序才可以使这个程序更加的全面 碰撞的检测 定义全局变量 实现全局变量 void checkHit() {for (int i 0; i < OBSTACLE_C…

HarmonyOS NEXT 实战之元服务:静态案例效果--航空出行

背景&#xff1a; 前几篇学习了元服务&#xff0c;后面几期就让我们开发简单的元服务吧&#xff0c;里面丰富的内容大家自己加&#xff0c;本期案例 仅供参考 先上本期效果图 &#xff0c;里面图片自行替换 效果图1完整代码案例如下&#xff1a; import { authentication } …

福特汽车物流仓储系统WMS:开源了,可直接下载

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。欢迎大家到本文底部评论区留言。 近日&#xff0c;福特汽车公司推出了其广受好评的仓库管理系统GreaterWMS&#xff08;更大仓库管理系统&#xff09;的开源版本&#xff0c;意味着各行…

STM32完全学习——FLASH上FATFS文件管理系统

一、需要移植的接口 我们通过看官网的手册&#xff0c;可以看到我们只要完成下面函数的实现&#xff0c;就可以完成移植。我们这里只移植前5个函数&#xff0c;获取时间的函数我们不在这里移植。 二、移植接口函数 DSTATUS disk_status (BYTE pdrv /* Physical drive nmuber…

pyqt5冻结+分页表

逻辑代码 # -*- coding: utf-8 -*- import sys,time,copy from PyQt5.QtWidgets import QWidget,QApplication, QDesktopWidget,QTableWidgetItem from QhTableWidgetQGN import Ui_QhTableWidgetQGN from PyQt5.QtCore import Qt from PyQt5 import QtCore, QtGui, QtWidgets…

Windows 使用 非安装版MySQL 8

1.下载MySQL 8 https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.40-winx64.zip 2.创建my.ini 下载解压后&#xff0c;发现根目录没有my.ini文件&#xff0c;需手动创建 my.ini # For advice on how to change settings please see # http://dev.mysql.com/doc/refma…

海外招聘丨 苏黎世联邦理工学院—机器学习在社会和政治科学中的应用博士后

雇主简介 苏黎世联邦理工学院是世界领先的科技大学之一。我们以优质的教育、尖端的基础研究和将新知识直接转化为社会而闻名。来自 120 多个国家的 30,000 多名学生认为我们的大学是一个鼓励独立思考和激励卓越的环境的地方。 我们位于欧洲中心&#xff0c;但与世界各地建立联…

微信小程序中遇到过的问题

记录微信小程序中遇到的问题&#xff08;持续更新ing&#xff09; 问题描述&#xff1a;1. WXML中无法直接调用JavaScript方法。2. css中无法直接引用背景图片。3. 关于右上角胶囊按钮。4. 数据绑定问题。5. 事件处理问题。 问题描述&#xff1a; 1. WXML中无法直接调用JavaSc…

idea 8年使用整理

文章目录 前言idea 8年使用整理1. 覆盖application配置2. 启动的时候设置编辑空间大小&#xff0c;并忽略最大空间3. 查询类的关系4. 查看这个方法的引用关系5. 查看方法的调用关系5.1. 查看被调用关系5.2. 查看调用关系 6. 方法分隔线7. 选择快捷键类型8. 代码预览插件9. JReb…

RAGFLOW使用笔记【更新ing】

0.引言 本文记录使用RAGFLOW的一些问题以及解决办法&#xff0c;它以笔记的形式存在&#xff0c;方便我以后回顾自己的学习工作。 1.RAGFLOW上传文件大小默认是128M,如何修改上传文件大小&#xff1f; 更新ragflow/docker/.env中的MAX_CONTENT_LENGTH 环境变量 然后同步更新…