css 定位是什么

3张RTX 4090就能跑!BAGEL-7B多模态模型本地部署避坑指南(附Flash Attention安装技巧) 本文详细介绍了如何在3张RTX 4090显卡上本地部署BAGEL-7B多模态模型,包括硬件配置、环境设置、多卡并行优化及常见问题解决方案。特别提供了Flash Attention安装技巧和显存优化策略,帮助开发者高效运行这一开源多模态模型,实现文本与图像生成任务。 阅读详情


此文绝对定位部分优有点复杂,学习此文之前可以先看看这篇文章:
https://blog.youkuaiyun.com/androidioskl/article/details/123292769

此文参考于: w3c文档:
https://www.w3.org/TR/CSS2/visudet.html#abs-non-replaced-width

定位的简介

通过定位可以将元素摆放到页面的任意位置,手动控制元素在包含块中的精准位置,通过position属性可设置定位类型。

position属性

表示定位的方式。
值:

  • 默认值:static,元素是静止的(不定位,该浮动的浮动该是常规流的是常规流)
  • relative:相对定位
  • absolute:绝对定位
  • fixed:固定定位
  • sticky:粘滞定位

一个元素,只要position的取值不是static,认为该元素是一个定位元素.

偏移属性

此属性配合position使用,用来设置偏移量
定位位置: 表示参考元素,可能是自身的边,可能是带有定位元素的元素的边。
left:定位元素左外边距边界相对于参考元素左边缘的进行偏移。
right:定位元素边距边界相相对于参考元素右边缘进行偏移。
top:定位元素上外边距边界相对于参考元素顶端进行偏移。
bottom:定位元素下外边距边界相对于参考元素底端进行偏移。

ps: 负值相反。

相对定位:

特点:

  1. 参考物是自身位置,相对于自身的位置进行偏移。
	.a{
		width:100px;
		height:100px;
		background:red;
		position:relative;
		left:100px;
	}
	<div class="a"></div>

注:这里设置的是红色div元素相当于原来文档流位置的左边缘偏移100px
在这里插入图片描述

  1. 不会改变元素的性质(该元素原来是浮动元素它还是浮动元素),

  2. 不会导致元素脱离文档流,盒子偏移不会对其它盒子造成影响(只是视觉效果上产生偏差,实际上这个盒子以前在还在哪,元素自身仍然占据原来的位置(灵魂脱壳)。

<div style="background: red; 
			position: relative; 
			left: 100px; 
			width: 100px;
			height: 100px;"></div>
<div style="background: yellow; width: 100px; height: 100px;"></div>

红色元素相对定位,黄色元素并没有向上移动,是因为红色元素并没有脱离文档流,还占据着原来的位置,可以想象成红色元素只是灵魂脱壳了,身体还在原来的位置上。
在这里插入图片描述
过渡受限:
当设置同时设置left和right值产生冲突(也叫过渡受限)时,浏览器会自动调整这两个值。

调整情况:
left 和 right 的特性值(受限情况)
1). 如果left和right的值都是 auto
则left和right计算后的值都为0。

2). 如果left或right其一的值为auto
如果left为auto,则计算后的值为-right。
如果right为auto,则计算后的值-left。

示例代码:

<div style="width:100px; height:100px; background-color:red; position:relative; left:100px;"></div>

上述代码中,div是相对定位,它的left值是100px,right没有设置,所以默认为auto,那么,right计算后的值应该是-left,即right:-100px。

为什么这么做?:
只有left为100px和right为-100px才可以同时设置,因为left为100px其实就等于right为-100px,向自身位置的左边偏移100px和向自身位置的右边偏移负100px表示的都是同一个位置。
在这里插入图片描述
3). left和right的值都不是auto
那么定位就显得很牵强,其中一个会被调整。如果包含块的direction属性是 ltr, 那么right调整为-left。如果包含块的direction属性是rtl,left值调整为-right。

示例代码:

<div style="width:100px; height:100px; overflow:auto; border:1px solid blue;">
    <div style="width:20px; height:20px; background-color:red; position:relative; left:60px; right:60px;"></div>
</div>

最后,right计算为-left,right调整为-60px。

静态位置(static):

计算元素原来在文档流位置的意思,也就是所谓的静态位置。

案例:

.right{
    /* position: absolute; */
    height: 300px;
    background: lightblue;
    margin: 0px auto;
    width: 300px;
    margin-left: 40px;
}
.ne{
    position: absolute;
    left: auto;
    width:100px;
    height: 100px;
    background: red;
}
<div class="right">
    <span>asdasd</span>
    <span class="ne"></span>
</div>

这里的 left: auto;表示的就是静态位置,可以看到红色方块,我们知道当祖先元素没有定位的情况下,定位元素是相对于文档定位的,left值为auto,那么left的值就是元素相对于原来文档流位置到文档的左边缘的距离。

在这里插入图片描述

绝对定位

  1. 宽高为auto时,适应内容
  2. 相对于最近的定位祖先元素的位置边框盒(padding+content的区域)左上角为原点进行定位偏移,如果没有则相对于初始包含块(整个文档)进行偏移摆放元素。

注释:根据用户代理的不同,最初的包含块可能是画布或 HTML 元素。

  1. 开启绝对定位如果不设置偏移元素的位置不会发生改变。
  2. 完全脱离文档流,不占据文档流的位置,后面的任何元素被忽视,包括行内元素。
  3. 元素会强制display为block,哪怕你设置diplay:inline也改不过来。
  4. 绝对定位使用浮动无效。

可以设置auto值的属性
width、height、margin、top、bottom、left、right.

绝对定位布局计算等式:
left + margin-left + border-left + padding-left + width + padding-right + border-right + margin-right + right = 包含块内容区的宽度。

为了解决left、top、bottom、top同时设置而产生的冲突,w3c制定了这个规则,比方说同时设置left:20px; right:30px,元素相对于包含块偏移20px同时相对于包含块右边偏移30px,这个是互相矛盾。

当等式不成立时,由浏览器去调整这个等式的某个值以使等式满足(也叫使用值过渡约束)。

浏览器的调整情况:
规则一: 如果left、width和right这三个都是auto:
如果margin-left和margin-right为auto值时调整为0,width为自适应内容,当包含块的direction属性是ltr,将left调整为静态位置,right计算包含块可用空间,否则相反right调整为静态位置。

规则二: 如果left、width 和 right都不是auto:
当margin-left和margin-right为auto时,则margin平分包含块可用空间。
当margin-left或margin-right之一是auto时,则为auto值的margin计算可用空间。
当margin也都不是auto,则如果包含块的direction属性是rtl,则right计算包含块可用空间,left设置为动态位置,否则就由left计算。

以上1)、2)点情况都不是,则将 margin-left 和 margin-right 的 auto 值设置为 0,并选择以下六个适用的规则之一。

规则:

  1. ‘left’ 和 ‘width’ 是 ‘auto’ 而 ‘right’ 不是 ‘auto’,那么宽度自适应内容,left设置为静态位置,right计算包含块可用空间。
  2. ‘left’ 和 ‘right’ 是 ‘auto’ 并且 ‘width’ 不是 ‘auto’,那么如果包含块的 ‘direction’ 属性是 ‘ltr’,则将 ‘left’ 设置为静态位置,否则将’right’设置为静态位置。然后’left’(如果’direction’是’rtl’)或’right’(如果’direction’是’ltr’)计算包含块可用空间。
  3. ‘width’ 和 ‘right’ 是 ‘auto’ 并且 ‘left’ 不是 ‘auto’,那么宽度自适应内容 ,然后right计算包含块可用空间。
  4. ‘left’ 是 ‘auto’,‘width’ 和 ‘right’ 不是 ‘auto’,则 'left ’ 计算包含块可用空间。
  5. ‘width’ 是 ‘auto’,‘left’ 和 ‘right’ 不是 ‘auto’ 则 ‘width’ 计算包含块可用空间。
  6. ‘right’ 是 ‘auto’,‘left’ 和 ‘width’ 不是 ‘auto’ 则 ‘right’ 计算包含块可用空间。

替换元素的情况:width、height不参与以上调整,width和height为固有宽度。

垂直方向的布局和水平方向的布局一样:
top + margin-top + border-top + padding-top + height + padding-bottom + border-bottom + margin-bottom + bottom = 包含块内容区的宽度。

案例

   .parent{
      position: relative;
      width: 400px;
      height: 400px;
      background: lightblue;
    }
    .child{
      position: absolute;
      left: 10px;
      right: 10px;
      width: 100px;
      height: 100px;
      margin: 0 auto;
      background: red;
    }
  <div class="parent">
    <div class="child">我是绝对定位</div>
  </div>

我们已知包含块元素的width为400px,left和right为10px。
根据绝对定位的布局计算等式:
left + margin-left + border-left + padding-left + width + padding-right + border-right + margin-right + right = 包含块内容区的宽度。
10px + auto + 0 + 0 + 100px + 0 + 0 + auto + 10px = 400px;
也就是120px + auto * 2 = 400px; (求解方程)

根据上面的规则二 left、right、width都不为auto,但是margin为auto时,会平方包含块的可用空间,因此就居中了。

10px + 140px + 0 + 0 + 100px + 0 + 0 + 140px + 10px = 400px;
因此该元素的auto值被计算为(400px - 120px) / 2 = 140px(margin-left或margin-right值),以满足以上等式。

只有当条件为margin左右为140px,width为100px时,才可以同时设置left:10px和right:10px,才能成立元素相对于包含块的左边为10px,同时又相对于包含块的右边为10px,此时left:10px和right:10px表示的都是同一个位置。
这也就是我上面所诉的设置这个等式是为了解决同时设置对立值而产生的冲突。
在这里插入图片描述

固定定位

其它情况和绝对定位一样。
包含块不同:固定为视口(浏览器的可以看见的窗口,就可以看见的区域)

定位下的居中

第一种
1.定宽(高)
2.将左右(上下)距离设置为0
3.将左右(上下)margin:设置为auto
原理见绝对定位的水平计算等式的规则二
.center{
width:100px;
height:100px;
background:red;
position:absolute;
left:0;
right:0;
top:0;
bottom:0;
margin:auto;
}

第二种
.center{
width:100px;
height:100px;
background:red;
position:absolute;
left:50%;
top:50%;
margin-left:-50px;
margin-top:-50px;
}

VMware ESXi 系统里创建虚拟机,虚拟磁盘日志损坏,如何或者把数据备份? 🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 阅读详情

相关推荐

笔记:使用Materials Studio计算聚合物的玻璃化转变温度

使用Materials Studio计算聚合物的玻璃化转变温度。

FXJgogogo的博客 1941

css之定位属性(相对、绝对、固定、粘性)

2)可以使用 left、right、 top 、 bottom 四个属性调整位置,不过最常用的是 top 值.5)粘性定位和相对定位的特点基本一致,不同的是:粘性定位可以在元素到达某个位置时将其固定。都发生定位的两个元素,后写的元素会盖在先写的元素之上。5)无论是什么元素(行内、行内块、块级)设置为绝对定位之后,都变成了定位元素.5)无论是什么元素(行内、行内块、块级) 设置为固定定位之后,都变成了定位元素。1,定位元素的显示层级比普通元素高,无论什么定位,显示层级都是一样的。

qq_53165476的博客 4903

F5高可用HA配置详情

F5 HA详细配置

weixin_45843944的博客 3026

margin-left: auto元素右对齐以及margin: 0 auto水平居中的原理

margin-left: auto;元素右对齐 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J26GDXEu-1575464621703)(Snipaste_2019-12-04_20-46-53.png)] 要实现上述右对齐的方式有很多,比如: flex设置justify-content: flex-end absolute定位设置rigth: 0 floa...

随风丶逆风的博客 1万+

数据资产入表——解读100页数据资产入表解读与分析【附全文阅读】

本文档《数据资产入表:解读与分析》面向企业财务、数据管理、法务合规及高管等核心岗位,系统解析数据资产入表全流程。以"政策-实操-价值"为主线,首先解读入表政策要求,明确会计处理规范;其次详细拆解数据盘点、治理、确权、评估等实操步骤,提供行业案例参考;最后分析入表难点及后续运营策略,为企业提供从政策理解到落地执行的一站式解决方案。

cdfunlove的博客 392

2022中山大学计算机技术专硕考研初试、复试经验帖

个人简介 推荐几个我自己感觉对考研非常有帮助的小助手吧。可以帮助节省时间! 考研时间规划总览 初试篇 数学 英语 政治 408 复试篇 机试 笔试 面试 关于选导师 个人感言

zik的博客 1万+

CSS基础篇(四)重点篇

1、浮动(float) CSS的定位机制有3种:普通流(标准流)、浮动和定位。 浮动简单来说就是让任何盒子都在一行排列 在CSS中,通过float属性来定义浮动,其基本语法格式如下: 选择器{float:属性值;} 属性值 描述 left 元素向左浮动 right 元素向右浮动 none 元素不浮动(默认值) 浮动详解:浮动脱离标准流,====脱标...

yyy_wj的博客 287

SpringBoot+Vue+kkFileView实现文档管理(文档上传、下载、在线预览)

上面在使用OpenOffice实现doc、excel、ppt等文档的管理和预览。除此之外可用kkFileView实现包括且更多文档的预览。

BADAO_LIUMANG_QIZHI的博客 1万+

css中left属性,CSS left属性用法及代码示例

CSS中的left属性用于指定定位元素的水平位置。它对未定位的元素没有影响。注意:如果position属性是绝对或固定的,则left属性指定元素左边与其包含块的左边之间的距离。如果position属性是相对的,则left属性指定元素左边从其正常位置向右移动的距离。如果position属性是粘滞性,则left属性的行为就像当元素在视口内部时它的位置是相对的,而当它在视口外部时一样。如果positio...

weixin_30300857的博客 5536

【同等学力】2005-数学⭐✨

有r个正方形排成一行,今用红、黄、白、蓝四种颜色给这个r个正方形染色,每个正方形只能染一种颜色,如果要求染红、黄、白色的正方形分别至少出现一个,问有多少种不同的染法?3、(4分)设G是一个有n个结点m条边的连通简单平面图,若n≥3,则m≤3n-6.4、(4分)证明:任何连通简单平面图至少有一个结点的度数不超过5

super_mochi1 306

【CASS精品教程】032:CASS11台阶画法案例大全

一、普通无边台阶 二、普通有边台阶 三、普通圆弧无边台阶 四、U型台阶 五、曲线U型台阶 六、L型台阶

智慧空间实验室 7467

CSS中margin-left: auto;的原理和使用方法

通过自动分配剩余空间,实现元素的水平居右或居中。结合其他 CSS 属性,可以灵活控制布局。

cuijiying的博客 899

Unity音游开发全指南:模板与免费资源高效构建节奏游戏

**粒子特效** | [Universal VFX](https://assetstore.unity.com/packages/vfx/particles/universal-vfx-159182) | 免费视觉特效 || **UI素材** | [Game UI Pack](https://assetstore.unity.com/packages/2d/gui/game-ui-pack-86908) | 现代风格UI元素 |**音游开发的黄金法则**:完美的节奏游戏是音乐与游戏的和谐统一。

Loving_enjoy的博客 730

Selenium之Css定位元素

Selenium之Css定位元素: cssSelector定位,属于CSS高级等位,它的定位方式,利用选择器进行的。在CSS 中,选择器是一种模式,用于选择需要添加样式的对象。“CSS” 列指示该属性是在哪个CSS 版本中定义的。(CSS1、CSS2 还是CSS3。); 下面罗列了一部分的CSS定位方式。看到这么多是否觉得CSS不再简单,其实不然常用的几种方式作者已标记,CSS定位是平常使用过程中...

柳轻声的博客 1万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

CSS定位

学习css定位

xrkhy的博客 1350

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

元素定位之CSS定位

要点:        1、为什么要进行元素定位?            在进行自动化时,所运行的脚本动作,是对页面对象的一种操作行为,所以需要使用元素定位;          2、进行元素定位的原则是什么?            元素定位的方式有很多,但宗旨只有1个,那就是能快速便捷的查找到唯一的元素,以及后期的方便维护;主题:1、CSS定位的延伸,本身就是CSS &lt;style&gt;所来,...

严冬的博客 1万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

CSS定位详解

详细讲解CSS里面的定位,以及定位使用的一些小技巧

OYJP666的博客 2236

【CSS】CSS定位元素

但这样有一个缺点,海报图对于一个网站上很重要的,应该用img标签实现。当一个定位元素的层级设置为负整数时,层级没有标准流的层级高。​ 元素按照标准流布局,所有元素的默认定位是static。方法1:利用background-position来进行。设置绝对定位元素的垂直水平居中。方法2:利用相对定位。

kakaai77的博客 2508

css人员定位,Css定位-定位

在CSS中一共有N种定位方式,其中,static ,relative,absolute三种方式是最基本最常用的三种定位方式。他们的基本介绍如下。static默认定位方式relative相对定位,相对于原来的位置,但是原来的位置仍然保留absolute定位,相对于最近的非标准刘定位,原来的位置消失,被后边的位置所顶替下面先演示相对定位的案例relative.html内容一内容二内容三内容四CSS代码...

weixin_39986169的博客 397

css定位

CSS 定位和浮动 CSS 为定位和浮动提供了一些属性,利用这些属性,可以建立列式布局,将布局的一部分与另一部分重叠,还可以完成多年来通常需要使用多个表格才能完成的任务。 定位的基本思想很简单,它允许你定义元素框相对于其正常位置应该出现的位置,或者相对于父元素、另一个元素甚至浏览器窗口本身的位置。显然,这个功能非常强大,也很让人吃惊。要知道,用户代理对 CSS2 中定位的支持远胜于对其它方面的支持,对此不应感到奇怪。 另一方面,CSS1 中首次提出了浮动,它以 Netscape 在 Web 发展初期增

m0_46691444的博客 351

python元素定位方法之CSS定位

前言   一些人在使用selenium定位元素时,用的是xpath定位,因为xpath基本能解决定位的需求。css定位往往被忽略掉了,其实css定位也有它的价值,css定位更快,语法更简洁。这一篇css的定位方法,主要是对比上一篇的xpath来的,基本上xpath能完成的,css也可以做到;两篇对比学习,更容易理解。 CSS语法表达式: .   点表示class属性...

XTY00的博客 5229

CSS之定位

定位在CSS当中是一个比较重要的点,接下来,让我为大家介绍一下定位吧!

m0_74577714的博客 1909
上一篇: 浮动是什么
下一篇: 什么是替换元素
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值