【CSS 04】Zoro 外边距 外边距合并 内边距 内容高度与宽度 框模型 轮廓

news2024/12/23 22:17:49

CSS

      • 说在前面
      • 外边距 margin
      • 外边距合并 margin_collapse
      • 内边距 padding
      • 高度与宽度 dimension
      • 框(盒子)模型 boxmodel
      • 轮廓 outline

说在前面

最近发现一个有趣的事情,就是CSDN会把我写在【】中的Zoro当做文章主要技术关键词,尽管我在除此之外的所有地方都没有提到Zoro,现在为了避免这种事情的再次发生,这次我先尝试一下写在【】外面会怎么样


外边距 margin

CSS margin 属性用于在任何定义的边框之外,为元素周围创建空间
通过 CSS,您可以完全控制外边距
有一些属性可用于设置元素每侧(上、右、下和左)的外边距

CSS 拥有用于为元素的每一侧指定外边距的属性

  1. margin-top
  2. margin-right
  3. margin-bottom
  4. margin-left

所有外边距属性都可以设置以下值

  1. auto - 浏览器计算外边距
  2. length - px,pt,cm等单位指定外边距
  3. % - 指定以包含元素宽度的百分比外边距
  4. inherit - 指定从父元素继承外边距
    允许负值
<!DOCTYPE html>
<html>
<head>
<style>
div {
	border: 2px solid black;
	margin-top: 100px;
	margin-bottom: 100px;
	margin-left: 150px;
	margin-right: 80px;
	background-color: lightblue;
}
</style>
</head>
<body>

<h1>单独外边距属性</h1>
<div>...</div>

</body>
</html>

Margin简写属性
p {
	margin: 25px 50px 75px 100px;
}

三个值: 上 左右 下
两个值: 上下 左右
一个值: 上下左右

可以将 margin 属性设置为 auto,以使元素在其容器中水平居中
div {
	width: 300px;
	margin: auto;
	border: 1px solid red;
}

inherit值
p.ex1 {
  margin-left: inherit;
}
就是和父元素的左外边距相同

CSS外边距的框模型


外边距合并 margin_collapse

外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距
合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者

外边距合并(叠加)是一个相当简单的概念
但是,在实践中对网页进行布局时会造成许多混淆

在这里插入图片描述当一个元素包含在另一个元素中时(假设没有内边距或边框把外边距分隔开),它们的上和/或下外边距也会发生合并
在这里插入图片描述尽管看上去有些奇怪,但是外边距甚至可以与自身发生合并
假设有一个空元素,它有外边距,但是没有边框或填充
在这种情况下,上外边距与下外边距就碰到了一起,它们会发生合并
在这里插入图片描述
如果这个外边距遇到另一个元素的外边距,它还会发生合并
在这里插入图片描述这就是一系列的段落元素占用空间非常小的原因,因为所有外边距都合并到一起,形成了一个小的外边距

外边距合并看上去可能有点奇怪,但是实际上是有意义的
以由几个段落组成的典型文本页面为例
第一个段落上面的空间等于段落的上外边距
如果没有外边距合并,后续所有段落之间的外边距都将是相邻上外边距和下外边距的和
这意味着段落之间的空间是页面顶部的两倍
如果发生外边距合并,段落之间的上外边距和下外边距就合并在一起,这样各处的距离就一致了

在这里插入图片描述只有普通文档流中块框的垂直外边距才会发生外边距合并
行内框、浮动框或绝对定位之间的外边距不会合并


内边距 padding

CSS padding 属性用于在任何定义的边界内的元素内容周围生成空间

通过 CSS可以完全控制内边距(填充)
有一些属性可以为元素的每一侧(上、右、下和左侧)设置内边距

CSS 拥有用于为元素的每一侧指定内边距的属性

  1. padding-top
  2. padding-right
  3. padding-bottom
  4. padding-left

所有内边距属性都可以设置以下值

  1. length - px,pt,cm等单位指定内边距
  2. % - 指定以包含元素宽度的百分比内边距
  3. inherit - 指定从父元素继承内边距
    不允许负值

padding简写属性类似于margin

内边距与元素宽度
CSS width 属性指定元素内容区域的宽度
内容区域是元素(盒模型)的内边距、边框和外边距内的部分
因此,如果元素拥有指定的宽度,则添加到该元素的内边距会添加到元素的总宽度中。这通常是不希望的结果

<div> 元素的宽度为 300px。但是,<div> 元素的实际宽度将是 350px(300px + 左内边距 25px + 右内边距 25px)
div {
   width: 300px;
   padding: 25px;
}

若要将宽度保持为 300px,无论填充量如何,那么您可以使用 box-sizing 属性。这将导致元素保持其宽度。如果增加内边距,则可用的内容空间会减少
div {
   width: 300px;
   padding: 25px;
   box-sizing: border-box;

CSS内边距的框模型


高度与宽度 dimension

height 和 width 属性用于设置元素的高度和宽度
height 和 width 属性不包括内边距、边框或外边距
设置的是元素内边距、边框以及外边距内的区域的高度或宽度

height和width属性可以设置下面的值:

  1. auto - 默认,由浏览器决定高度和宽度
  2. length - px,cm定义高度/宽度
  3. % - 以包含该元素的块元素的百分比定义
  4. initial - 设置为默认值
  5. inherit - 继承

max-width 属性用于设置元素的最大宽度。
可以用长度值(例如 px、cm 等)或包含块的百分比(%)来指定 max-width(最大宽度),也可以将其设置为 none(默认值。意味着没有最大宽度)

当浏览器窗口小于元素的宽度(500px)时,会发生之前那个 <div> 的问题。然后,浏览器会将水平滚动条添加到页面

在这种情况下,使用 max-width 能够改善浏览器对小窗口的处理
max-height
min-width
min-height

框(盒子)模型 boxmodel

所有 HTML 元素都可以视为方框
CSS 框模型实质上是一个包围每个 HTML 元素的框
包括:外边距、边框、内边距以及实际的内容
在这里插入图片描述

  1. 内容 - 框的内容,其中显示文本与图像
  2. 内边距 - 清除内容周围区域,内边距透明
  3. 边框 - 框柱内边距与内容
  4. 外边距 - 清除边框外区域,外边距透明

框模型允许我们在元素周围添加边框,并定义元素之间的空间

元素框的最内部分是实际的内容,直接包围内容的是内边距
内边距呈现了元素的背景

内边距的边缘是边框

边框以外是外边距,外边距默认是透明的,因此不会遮挡其后的任何元素

背景应用于由内容和内边距、边框组成的区域

内边距、边框和外边距都是可选的,默认值是零
但是,许多元素将由用户代理样式表设置外边距和内边距
可以通过将元素的 margin 和 padding 设置为零来覆盖这些浏览器样式
这可以分别进行,也可以使用通用选择器对所有元素进行设置:

* {
	margin: 0;
	padding: 0;
}

在 CSS 中,width 和 height 指的是内容区域的宽度和高度
增加内边距、边框和外边距不会影响内容区域的尺寸,但是会增加元素框的总尺寸

假设框的每个边上有 10 个像素的外边距和 5 个像素的内边距。如果希望这个元素框达到 100 个像素,就需要将内容的宽度设置为 70 像素,如图:

在这里插入图片描述

#box {
	width: 70px;
	margin: 10px;
	padding: 5px;
}
内边距、边框和外边距可以应用于一个元素的所有边,也可以应用于单独的边
外边距可以是负值,而且在很多情况下都要使用负值的外边距

要计算元素的完整大小,必须把内容宽高、内边距、边框和外边距全部加起来
<div> 元素的总宽度将是 350px
div {
	width: 320px;
	padding: 10px;
	border: 5px solid gray;
	margin: 0;
}

轮廓 outline

轮廓是在元素周围绘制的一条线,在边框之外,以凸显元素
CSS拥有以下轮廓属性:

  1. outline-style
  2. outline-color
  3. outline-width
  4. outline-offset
  5. outline
    轮廓与边框的不同之处在于:轮廓是在元素边框之外绘制的,并且可能与其他内容重叠
    同样,轮廓也不是元素尺寸的一部分
    元素的总宽度和高度不受轮廓线宽度的影响

outline-style属性指定轮廓样式,可以设置为 dotted, dashed, solid, double, groove, ridge, inset, outset, none, hidden

outline-width属性指定轮廓宽度,可以设置为:

  1. thin 1px
  2. medium 3px
  3. thick 5px
  4. length 特定尺寸 px,pt,cm,em

outline-color属性指定轮廓颜色,可以通过以下方式:

  1. name
  2. HEX
  3. RGB
  4. HSL
  5. invert - 执行颜色反转,确保轮廓可见

outline属性是轮廓style(必须),width,color的简写属性
outline属性可以指定一个,两个或三个值,顺序无关紧要

outline-offset属性在轮廓与边缘或边框之间增加空间

p {
	margin: 30px;
	background: yellow;
	border: 1px solid black;
	outline: 1px solid red;
	outline-offset: 25px;
}

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

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

相关文章

科技政策 | 国家、广东省、深圳市的制造业单项冠军企业(产品)遴选申报指南来啦!

原创 | 文 BFT机器人 近日深圳市工业和信息化局开始了2023年技术创新项目扶持计划制造业单项冠军奖励项目申报。 那么制造业单项冠军&#xff0c;国家、广东省、深圳市各级申请需要什么条件呢&#xff1f;有那些注意事项呢&#xff1f;今天&#xff0c;一文带大家读懂。 01 申…

设计模式(九):结构型之桥接模式

设计模式系列文章 设计模式(一)&#xff1a;创建型之单例模式 设计模式(二、三)&#xff1a;创建型之工厂方法和抽象工厂模式 设计模式(四)&#xff1a;创建型之原型模式 设计模式(五)&#xff1a;创建型之建造者模式 设计模式(六)&#xff1a;结构型之代理模式 设计模式…

赛效:如何在线给图片降噪

1&#xff1a;在电脑上搜索“改图鸭”网站&#xff0c;登录账号后在“图片修复”菜单里点击“图片降噪”。 2&#xff1a;点击降噪工具页面中间的&#xff0c;将图片添加到该页面。 3&#xff1a;图片添加上去后会自动降噪处理&#xff0c;对比原图和效果图&#xff0c;如果对效…

【Vue】预渲染之prerender-spa-plugin解析,方便搜索引擎的抓取

prerender-spa-plugin解析 项目背景&#xff1a;对于那些需要推广&#xff0c;希望能在百度搜索时排名靠前的网站而言&#xff0c;使用单页面应用的无法被抓取背景&#xff0c;VUE项目想SEO优化&#xff0c;但vue是单页面应用&#xff0c;不利于搜索引擎的抓取实现过程&#xf…

pwn入门(0.0)

单字节&#xff1a;byte 双字节&#xff1a;词或字word 四字节&#xff1a;双词Dword&#xff0c;doubleword 八字节&#xff1a;四词Qword&#xff0c;quadword 16字节&#xff1a;double quadword RBX&#xff1a;存储地址 RCX:计数器循环 RDX&#xff1a;整除取余 R…

onnx模型转TensorRT模型时出错

把onnx模型转TensorRT模型出错 错误一&#xff1a;WARNING: onnx2trt_utils.cpp:366: Your ONNX model has been generated with INT64 weights, while TensorRT does not natively support INT64. Attempting to cast down to INT32. 解决方法 1、安装onnx-simplifier pip…

ts 装饰器

使用装饰器前&#xff0c;需要把 tsconfig.json 中 experimentalDecorators 设置为 true学习了小满的B站课程&#xff1a;https://www.bilibili.com/video/BV1wR4y1377K?p24 前言 ts中有几种装饰器类型&#xff1a; 类装饰器 ClassDecorator方法装饰器 MethodDecorator参数装…

NFTScan | 05.29~06.04 NFT 市场热点汇总

欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。 周期&#xff1a;2023.05.29 ~ 2023.06.04 NFT Hot News&#xff1a;NFT 热点资讯 01/ 数据&#xff1a;NFT 巨鲸 Pranksy 以 52.17 枚 ETH 抛售 25 枚 Doodles 5 月 29 日&#xff0c;据 NFT Whale Aler…

Java + lua

luaj 主要特征 luaj 用法示例 luaj 实现原理 查找并调用指定的 Java 方法 从 Java 方法获取返回值 将 Lua function 作为参数传递给 Java 方法 在某些业务场景下&#xff0c;我们可能会遇到 lua 中要调用 java 代码情况&#xff0c;当然这个用 JNI 肯定是可以做到的&…

三十六、数学知识——组合数(递推法 + 预处理法 + 卢卡斯定理 + 分解质因数求解组合数 + 卡特兰数)

组合数算法主要内容 一、基本思路1、组合数基本概念2、递推法——询问次数多 a b 值较小 模处理&#xff08;%mod&#xff09;3、预处理阶乘方法——询问次数较多 a b 值很大 模处理&#xff08;%mod&#xff09;4、卢卡斯定理——询问次数较少 &#xff08;a b 值很大&am…

泰克AFG31051信号发生器产品参数

AFG31000系列任意波函数发生器 概述 验证连接 DUT 后输出波形 InstaView? 技术用在任意波函数发生器上可直接查看连接 DUT 后的实时波形&#xff0c;无需使用示波器或其他设备&#xff0c;节省测试时间并避免因阻抗不匹配导致的实验错误。 高保真度信号与高级模式 在连续模式…

软考高级架构师笔记-6计算机系统性能评价信息系统基础知识

目录 1. 前言 & 考情分析2. 系统配置与性能评价1. 性能指标2. 性能指标3. 阿姆达尔解决方案3.信息系统基础知识1.信息系统的分类2.信息系统的生命周期3.信息系统战略规划3.常见系统介绍1.客户关系管理CRM2.供应链管理SCM3.企业应用集成EAI4.结语1. 前言 & 考情分析 前…

VR全景创业是否真的赚钱?项目真的靠谱吗?

说到创业&#xff0c;也许你心里会觉得这类项目对于技术和资金等要求都是比较高的&#xff0c;先别急着反驳&#xff0c;这是大多数人的心理。我们选择某个创业项目时&#xff0c;都需要从创业成本和盈利利润来做预算&#xff0c;现在告诉你有一个VR全景创业项目&#xff0c;几…

爆火的AIGC到底是一片新蓝海,还是又一次的泡沫?

自ChatGPT发布以来&#xff0c;陷入了AIGC热&#xff0c;无论是大众的讨论、资本的流向还是大厂的加入&#xff0c;AIGC似乎都会是未来几年内最火的新蓝海。 不同于以往的“顶尖科技”泡沫&#xff0c;AIGC是真正可以应用到生活中的&#xff0c;这也是为何它会引发大量“失业论…

操作系统 复习--实训题

一. 简答题&#xff08;共8题&#xff0c;100分&#xff09; 1. (简答题) 编程使用fork()函数创建子进程&#xff0c;要求父进程中打印当前进程的 PID 和子进程的 PID&#xff0c;而在子进程中只打印当前进程的 PID。 参考代码&#xff1a; int main() { pid_t child_pid;c…

使用openlayers加载geoserver发布的arcgis瓦片

openlayers版本&#xff1a;6.5 geoserver版本&#xff1a;2.18.0 1. geoserver发布arcgis瓦片 首先去maven上面找最新的gwc-arcgiscache https://mvnrepository.com/artifact/org.geowebcache/gwc-arcgiscache/1.19.1 把这个jar包下载下来放到目录geoserver/WEB-INF/lib下面…

可扩展性与生态应用:Ardor公链AMA回顾

近日&#xff0c;Jelurida团队工程师Francisco Sarrias做客CryptoWallet.com&#xff0c;分享了一些有关Ardor的话题&#xff1a; Ardor是什么&#xff1f; Ardor是一个旨在提高区块链可扩展性的开源平台&#xff0c;这意味着该项目有助于使区块链网络运行更顺畅&#xff0c;用…

10分钟通过云服务器搭建自己的chatGPT镜像服务

通过云服务器搭建自己的chatGPT镜像服务 前提&#xff1a;需要有自己的API KEY 1 购买云服务器 本教程以阿里云的云服务器为例。 阿里云地址&#xff1a;https://www.aliyun.com/?spm5176.28008736.J_3207526240.1.769d3e4dTtNjuI 进入阿里云官网&#xff0c;选择云服务器ECS进…

精选博客系列|VMware如何实现多云基础设施

私有云&#xff0c;公有云&#xff0c;多云&#xff0c;边缘云… 如今&#xff0c;组织的团队、数据和工作负载分布在各种环境中。毫无疑问&#xff0c;这导致了技术上的复杂性增加、安全风险加剧、成本飙升和云战略不连贯的问题。 “39% 的高管难以在&#xff08;他们的&…

18.4:打印一个字符串的全部排列

打印一个字符串的全部排列 方法一&#xff1a;暴力方法。 //方法一&#xff1a;暴力方法。public static List<String> permutation1(String s) {//str是一个存储字符类型的有序表。ArrayList<Character> str new ArrayList<>();//将字符串中的类型存储在s…