首页 > 其他分享 >视觉格式化模型

视觉格式化模型

时间:2024-03-19 22:35:57浏览次数:28  
标签:浮动 定位 格式化 auto 模型 元素 盒子 文档 视觉

视觉格式化模型

盒模型: 规定单个盒子的规则
视觉格式化模型(布局规则):页面中的多个盒子的排列规则
视觉格式化模型大体上将盒子的排列分为三种方式:

  1. 常规流
  2. 浮动
  3. 绝对定位

常规流布局

常规六、文档流、普通文档流,常规文档流。
所有元素,默认情况下,都属于常规流布局。
总体规则:快盒独占一行,行盒水平依次排列。

包含块(containing block)

每个盒子都有它的包含块,包含块决定了盒子的排列区域

可以理解为盒子的参考系

绝大部分情况下: 盒子的包含块为其父元素的内容盒

块盒

  1. 每个块盒的总宽度(content+padding+border+margin),必须等于包含块的宽度

宽度的默认值为auto,auto在这表示:将剩余空间吸收;margin的取值也可以是auto,默认值0;width的吸收能力强于margin。若宽度、填充、边框、外边距计算后,仍然有剩余空间,该空间被margin-right全部吸收。

  1. 每个块盒垂直方向上的auto值
    hight:auto, 适应内容的高度
    margin:auto,表示0

  2. 百分比取值
    除高度,其他设置百分比都相对于包含块的宽度
    高度的百分比:

1). 包含块的高度取决于子元素的高度,设置百分比无效
2). 包含块的高度不取决于子元素的高度,百分比相对于父元素的高度

  1. 相邻外边距的合并

浮动

应用场景

  1. 文字环绕
  2. 横向排列

浮动的基本特点

float:默认值auto

  • left:左浮动,元素靠上靠左
  • right:右浮动,元素靠上靠右
  1. 当一个元素浮动后,元素必定为块盒(会更改display为block)
  2. 浮动元素的包含块与常规流一致为父元素的内容盒

盒子尺寸

  1. 宽度为auto时,适应内容高度
  2. 高度为auto时,与常规流一致,适应内容高度
  3. margin为auto, 为0
  4. border,padding百分比设置于常规流一样

浮动元素不会吸收剩余空间

盒子排列

  1. 左浮动的盒子先靠上在靠左排列
  2. 右浮动的盒子先靠上在靠右排列
  3. 浮动盒子在包含块中排列时,会避开常规流块盒
  4. 常规流块盒在排列时无视浮动元素
  5. 行盒在排列时会避开浮动元素
  6. 外边距合并不会发生

如果文字没有在行盒中,浏览器会自动生成一个行盒包裹文字,该行盒叫做匿名行盒

高度坍塌

高度坍塌的根源:常规流盒子的自动高度,在计算时,不会考虑浮动元素

清除浮动,clear

  • 默认值:none
  • left:清除左浮动,添加该样式的元素必须出现在前面所有左浮动元素盒子的下方
  • right:清除右浮动,添加该样式的元素必须出现在前面所有右浮动元素盒子的下方
  • both:清除左右浮动,添加该样式的元素必须出现在前面所有浮动元素盒子的下方
clearfix::after {
  content: '';
  display: block;
  clear: both;
}

定位

一个元素,只要position的取值不为static,认为该元素是一个定位元素
定位元素会脱离文档流(相对定位除外)
一个脱离了文档流的元素:

  1. 文档中的元素摆放时,会忽略脱离了文档流的元素
  2. 文档流中计算自动高度时,会忽略脱离了文档流的元素

相对定位

不会脱离文档流,在原来位置进行偏移,盒子的偏移不会对其他盒子造成任何影响

绝对定位

  1. 宽度为auto,适应内容
  2. 包含块变化:找祖先中第一个定位元素,该元素的填充盒为其填充块。若找不到,则它的包含块为整个网页(初始包含块)

固定定位

其他情况与绝对定位一致
包含块不同:固定为视口(浏览器的可视窗口)

定位下的居中

某个方向上

  1. 定宽(高)
  2. 将左右(上下)距离设置为0
  3. 将左右(上下)margin设置为auto

绝对定位和固定定位,margin为auto时,会自动吸收剩余空间

对各定位元素重叠时

堆叠上下文
设置z-index,只有定位元素设置有效
z-index为负数时,会被常规流,浮动元素覆盖

补充

  • 定位元素为块盒display为block
  • 定位元素不能浮动float为none
  • 没有外边距合并

标签:浮动,定位,格式化,auto,模型,元素,盒子,文档,视觉
From: https://www.cnblogs.com/zhanxinbing/p/18084117

相关文章

  • 【Linux】 生产消费者模型
    线程同步同步: 在保证数据安全的前提下,让线程能够按照某种特定的顺序访问临界资源,从而有效避免饥饿问题,这就叫做同步(饥饿问题:某些线程无法得到资源而长时间无法执行,常见的就是申请不到锁)竞态条件:因为时序问题,而导致程序异常,我们称之为竞态条件。单纯的加锁会引起问题。如......
  • 软件工程 第二章 过程模型
    软件工程第二章过程模型通用过程模型通用过程框架:框架活动:沟通,策划,建模,构建,部署普适性活动:项目跟踪控制,风向管理,质量保证,配置管理,技术评审等常见的过程流(processflow):线性过程流(linearprocessflow)迭代过程流(iterativeprocessflow)演化过程流(e......
  • 大语言模型的参数级别和能力之间的关系
    模型的参数数量通常被视为模型能力的一个重要指标,更多的参数意味着模型有更大的能力来学习、存储和泛化不同类型的数据。以下是这种关系的几个关键点:学习能力:参数数量越多,模型学习复杂模式的能力通常越强。这意味着大模型能够理解和生成更复杂的文本,更准确地执行特定任务......
  • whisper-large-v3:速度快的令人翻译模型三种实用的调用方法
    1、whisper-large-v3是openai公司的模型,可使用Python代码调用;2、whisper-large-v3基础上chenxwh制作了开源库insanely-fast-whisper,可本地指令运行,或GoogleColabT4GPU运行;3、以上两个模型应用,如果觉得使用复杂难度大,国内软件工程师制作了更简单的版本fast-whisper3。......
  • zhipuai的GLM-4模型API访问出现错误: ConnectError: TLS/SSL connection has been clo
    1简介访问zhipuai的GLM-4模型的API时,挂上梯子后访问失败,显示ConnectError:TLS/SSLconnectionhasbeenclosed(EOF)(_ssl.c:1131)报错信息如下{ "name":"ConnectError", "message":"TLS/SSLconnectionhasbeenclosed(EOF)(_ssl.c:1131)",......
  • Linux TCP/UDP CS模型
    LinuxTCP/UDPCS模型目录LinuxTCP/UDPCS模型TCPServer/TCPClientUDPServer/UDPClientTCPServer/TCPClient在C语言中实现一个TCP服务器时,使用select函数可以帮助我们同时监控多个文件描述符(包括socket)的状态,从而实现非阻塞的I/O操作。以下是一个简单的TCP服务器示例,它......
  • 走出大模型部署新手村!小明这样用魔搭+函数计算
    前文介绍了魔搭ModelScope社区模型服务SwingDeploy服务。开发者可以将模型从魔搭社区的模型库一键部署至阿里云函数计算,当选择模型并部署时,系统会选择对应的机器配置。按需使用可以在根据工作负载动态的减少资源,节约机器使用成本。5分钟完成从开源模型至模型推理API服务的......
  • 北京大学讲座:大模型时代的软件研发:技术、范式与工具
    3月10日,华为云与北京大学合作在软件和微电子学院举办了此次关于研发大模型的讲座,这不仅是华为云与北大第一次在AI大模型上进行产教融合,更是双方对于推动大模型研发与应用,培养相关技术人才重要行动。北京大学软件和微电子学院一直致力于培养高水平的软件人才。通过与华为的合作......
  • 数据报告分享|SPSS基于多元回归模型的电影票房预测
    全文链接:https://tecdat.cn/?p=33190原文出处:拓端数据部落公众号本文通过利用回归模型对电影的票房(以及放映场数,观影人数)进行了研究,确定了决定电影的票房的重要因素。并讲述、论证了预测电影的票房是电影投资的至关重要的环节。通过对电影票房预测技术的发展和探讨,深度剖析了电......
  • YOLOv8图像分割:使用ONNX模型进行推理
    基于COCO数据集的YOLOv8目标分割onnx模型推理在本博客中,我们将探讨如何使用YOLOv8目标分割模型进行推理,包括图片,视频文件,摄像头实时分割,特别是ONNX在不同大小(YOLOv8n,YOLOv8s,YOLOv8m,YOLOv8l,YOLOv8x)的模型上进行的实验。我们还将讨论所需的环境配置,代码实现,以及如何......