第六讲_css盒子模式

css盒子模型

  • 1. 长度单位
  • 2. 盒子模型的组成
    • 2.1 盒子模型内容
    • 2.2 盒子模型内边距
    • 2.3 盒子模型边框
    • 2.4 盒子模型外边距

1. 长度单位

  • px:像素
  • em:相对于当前元素或父元素的 font-size 的倍数
<style>
	.parent {
        height: 500px;
        width: 500px;
        background-color: red;
	}
    .child {
        /* font-size=100px,1em = 100px */
        font-size: 100px;
        height: 1em;
        width: 1em;
        background-color: blueviolet;
    }
</style>

<div class="parent">
    <div class="child"></div>
</div>
  • rem:相对于根元素的 font-size 的倍数
<style>
	.parent {
        height: 500px;
        width: 500px;
        background-color: red;
	}
    .child {
        /* 根元素的默认font-size = 16px,所以默认1rem = 16px */
        height: 1rem;
        width: 1rem;
        background-color: blueviolet;
    }
</style>

<div class="parent">
    <div class="child"></div>
</div>
  • %:相对父元素计算百分比
<style>
	.parent {
        height: 500px;
        width: 500px;
        background-color: red;
	}
    .child {
        height: 50%;
        width: 50%;
        background-color: blueviolet;
    }
</style>

<div class="parent">
    <div class="child"></div>
</div>
  • vw:视口宽度的百分比(例如:10vw,视口宽度的 10%)
<style>
	.parent {
        height: 50vw;
        width: 50vw;
        background-color: red;
	}
</style>

<div class="parent">
</div>

在浏览器中运行上述代码,调整浏览器的宽度,div的宽和高始终保持是浏览器宽度的一半

  • vh:视口高度的百分比(例如:10vh,视口高度的 10%)
<style>
	.parent {
        height: 50vh;
        width: 50vh;
        background-color: red;
	}
</style>

<div class="parent">
</div>

在浏览器中运行上述代码,调整浏览器的高度,div的宽和高始终保持是浏览器高度的一半

2. 盒子模型的组成

盒子模型
盒子模型由4部分组成:

  • margin区:盒子与盒子间的距离。
  • border区:盒子的边框。
  • padding区:盒子边框与内容之间的距离。
  • content区:盒子的内容。

2.1 盒子模型内容

盒子模型内容的宽、高通过widthheight 设置。

<style>
	.container {
		/* 设置内容区的高 */
        height: 50px;
        /* 设置内容区的宽*/
        width: 50px;
        background-color: red;
	}
</style>

<div class="container"></div>

2.2 盒子模型内边距

  • 盒子模型内边距分为padding-toppadding-rightpadding-bottompadding-right
  • 复合属性padding设置,例如:padding: 100px,等价于上、右、下、左内边距都为100px
  • 复合属性padding设置,例如:padding: 100px 50px,等价于上、下内边距为100px,左、右内边距为50px
  • 复合属性padding设置,例如:padding: 10px 20px 30px 40px,等价于上内边距为10px,右内边距为20px,下内边距为30px,左内边距为40px
<style>
    div {
        background-color: red;
    }
	span {
        padding-top: 100px;
        padding-right: 100px;
        padding-bottom: 100px;
        padding-left: 100px;
	}
</style>

<div>
    <span>hello world<span>
</div>

ps:行内元素的左右内边距没问题, 上下内边距无效

2.3 盒子模型边框

  • 盒子模型边框通过复合属性border设置
  • 盒子模型边框也可以通过border-topborder-rightborder-bottomborder-left,分别设置。
<style>
    .container {
        height: 100px;
        width: 100px;
        background-color: red;
        /* 边框宽5px,边框颜色黑色,边框线条实线 */
        border: 5px black solid;
    }
</style>

<div class="container"></div>

2.4 盒子模型外边距

  • 盒子模型外边距分为margin-topmargin-rightmargin-bottommargin-left,分别设置。
  • 复合属性margin,使用方式类似`padding。
<style>
    .parent {
        height: 200px;
        width: 200px;
        background-color: red;
    }
    .child {
        height: 100px;
        width: 100px;
        background-color: blue;
        margin: 10px;
    }
</style>

<div class="parent">
    <div class="child"></div>
</div>

运行上面代码,你会发现子元素的上margin作用到了父元素的上margin,这个称为margin塌陷。

margin塌陷:第一个子元素的上margin 和最后一个子元素的下margin,会作用在父元素上margin,下margin

margin塌陷问题的解决方案:

  • 解决一:给父元素设置不为 0 的 padding
  • 解决二:给父元素设置不为 0 的 border
  • 解决三:给父元素设置 css 样式 overflow: hidden

ps:行内元素的左右外边距没问题,上下外边距设置无效

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

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

相关文章

Maintaining Performance with Less Data(待补)

文章目录 AbstractIntroductionPrevious WorkIncreasing data useReducing data useVariable data useContribution MethodsDatasetsHardwarePerformance MetricsNetwork Architecture ExperimentationBenchmarkData stepobserve Data IncrementData Cut DiscussionConclusion …

一文了解Git(所有命令)附带图片

我是南城余&#xff01;阿里云开发者平台专家博士证书获得者&#xff01; 欢迎关注我的博客&#xff01;一同成长&#xff01; 一名从事运维开发的worker&#xff0c;记录分享学习。 专注于AI&#xff0c;运维开发&#xff0c;windows Linux 系统领域的分享&#xff01; 其他…

使用QPushButton实现计算机

1. 按钮类&#xff1a;QPushButton 1.1 信号 void clicked(bool checked false)//被点击触发void pressed()//当按下按钮时发出此信号void released()//当松开按钮时发出此信号void toggled(bool checked)//每当可检查按钮改变其状态时&#xff0c;都会发出此信号。1.2 实现按…

网页设计工作室网站Web前端制作个人网页(html+css+javascript)网页设计网站模板采用DIV CSS布局制作,网页作品有多个页面

网页设计工作室网站Web前端制作个人网页(htmlcssjavascript)网页设计网站模板采用DIV CSS布局制作&#xff0c;网页作品有多个页面 【网页设计工作室网站Web前端制作个人网页(htmlcssjavascript)网页设计网站模板采用DIV CSS布局制作&#xff0c;网页作品有多个页面】 https://…

怎样的摆渡系统,能实现安全可管控的跨网数据传输?

大数据时代&#xff0c;数据在流通与传输的过程中&#xff0c;更需要注意到数据的安全防护&#xff0c;护航数据价值。“让数据主宰一切的隐忧”&#xff0c;数字战争的时代&#xff0c;各国早已认识到网络安全愈发重要&#xff0c;数据也成为各国发展的重要武器。 出于安全性和…

GB28181视频汇聚平台EasyCVR级联后,部分通道视频无法播放是什么原因?

GB28181协议智慧安防平台EasyCVR是基于各种IP流媒体协议传输的视频汇聚和融合管理平台。视频流媒体服务器EasyCVR采用了开放式的网络结构&#xff0c;支持高清视频的接入和传输、分发&#xff0c;平台提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制…

Cesium笔记 初始化 原生Cesium

1、创建vue项目 vue create my_demo 2、下载Cesium 可以从官网下载&#xff0c;也可以使用node下载 npm install cesium 3、把node_modules文件夹中下载得Cesium&#xff0c;移出到public文件夹下 4、将Cesium.js 以及样式文件widgets.css在index.html中引用 <!DOCT…

麒麟KYLINOS上使用命令设置声音

原文链接&#xff1a;麒麟KYLINOS上使用命令设置声音 hello&#xff0c;大家好啊&#xff01;今天我要给大家介绍的是在麒麟KYLINOS操作系统上使用命令行设置系统声音的方法。在某些情况下&#xff0c;特别是当您需要在多台机器上批量设置声音或在定制系统镜像时&#xff0c;使…

Positive证书——平价证书的最好选择

1. 经济实惠 Positive证书以其经济实惠的价格而闻名。对于小型企业或刚刚起步的网站来说&#xff0c;成本是一个重要的考虑因素。与其他高价SSL证书相比&#xff0c;Positive证书提供了同样强大的加密技术&#xff0c;但价格更为亲民。这使得任何人都能够为其网站提供安全性&a…

GEE计算Landsat8的NDVI

目录 前言源代码结果 前言 NDVI&#xff08;近红-红&#xff09;/&#xff08;近红红&#xff09; normalizedDifference方法是&#xff08;A-B&#xff09;/&#xff08;AB&#xff09;的计算方法 计算NDVI一般用来配合其他反演参数&#xff0c;构造指数或者数据升降尺度。 …

Taro+vue3 实现选座位 功能 以及座位显示

1.类似选座位那种功能 我的功能座位 不是html元素 而是 座位图片 都是图片 const onConfirm () > {// const area_arr selectedSeat.value.map((item) > {// return item.areaId;// });// const abc isRepeat(area_arr);// if (!abc) {// Taro.showToast({//…

深入剖析pcap中的网络异常:TTL过期攻击、ARP中毒、TCP重传与重叠碎片等

网络流量数据包捕获是网络安全领域的重要部分&#xff0c;而pcap文件则是这一过程的常见载体。为了深入解析pcap文件中潜在的可疑网络流量&#xff0c;我们需要运用强大的网络安全威胁评估与审计工具。这些工具能够帮助我们捕捉、记录、检测和诊断网络中的数据传输问题&#xf…

双碳管理系统任务需求分析(第10套)

需求规格说明书 一、引言 &#xff08;一&#xff09;项目背景 编写本需求规格说明书的目的是为了详细呈现碳足迹产品需求和系统的功能描述&#xff0c;以进一步定制应用软件系统开发的细节问题&#xff0c;便于与项目开发协调工作。本文档面向的读者主要是项目委托单位的管…

vue3 组合式 API 在 onMounted 中调用 dom 报错 Initialize failed: invalid dom.

问题 在开发的过程中&#xff0c;项目中需要用到 echarts&#xff0c;引入后在渲染的过程中报错了&#xff1a;Initialize failed: invalid dom. 这个报错表示元素在未渲染完成的情况下就被调用了&#xff0c;作者在以前也遇到过这种情况&#xff0c;在 vue2 中正常来说将 ech…

控制注塑机PQ比例阀放大器

控制不带电反馈的单或双比例电磁铁的博世力士乐&#xff08;Bosch Rexroth&#xff09;、伊顿威格士&#xff08;EATON Vickers&#xff09;、油研&#xff08;YUKEN&#xff09;、贺德克&#xff08;HYDAC&#xff09;、大金&#xff08;DAIKIN&#xff09;、不二越&#xff0…

性能优化--实战利用arthas排查java服务cpu占用过高的问题

使用jps -l查看目前的java应用进程 启动arthas&#xff0c;选择需要监控的进程 dashboar查看该应用整体情况 使用thread命令&#xff0c;查看占用cpu过高的几个线程ID 然后使用thread 线程ID查看具体线程在执行哪些内容&#xff0c;可以看到对应的类和方法 正在上传… 重…

<Python>PyQt5中UI界面和逻辑函数分开写的一种方式

前言 如果经常使用PyQt5这种模块来编写带UI界面的程序&#xff0c;那么很自然的就会涉及到&#xff0c;一旦程序比较大&#xff0c;UI控件多的时候&#xff0c;需要将UI和逻辑程序分离&#xff0c;这样方便管理&#xff0c;也方便维护。 配置&#xff1a; 平台&#xff1a;win…

超级工具大盘点

在当今竞争激烈和快节奏的工作环境中&#xff0c;提高效率成为每个人追求的目标。为了更好地应对日常任务和项目&#xff0c;我们需要运用有效的工具和策略。软件是其中一种强大的支持工具&#xff0c;可以极大地提升工作效率和管理能力。在本文中&#xff0c;我将分享一些值得…

esp32UART串口外设(Arduino)

通用异步接收器/发送器 &#xff08;UART&#xff09; 介绍 通用异步接收器/发送器 &#xff08;UART&#xff09; 是一种硬件功能&#xff0c;它使用广泛采用的异步串行通信接口&#xff08;如 RS232、RS422 和 RS485&#xff09;处理通信&#xff08;即时序要求和数据成帧&…

@FunctionalSpringBootTest 和@SpringBootTest注解的区别

FunctionalSpringBootTest 和 SpringBootTest 是Spring框架中用于测试的两个不同注解。下面是它们之间的主要区别&#xff1a; 用途和范围&#xff1a; SpringBootTest&#xff1a;这个注解用于需要测试Spring应用程序上下文的场合。它会加载完整的应用程序上下文&#xff0c;适…