position:absolute详解

2023-11-18

position:absolute

日常开发中经常涉及元素的定位,我们都知道,绝对定位相对于最近position不为static的父级元素来定位,但其中定位的位置还是有细微的差别的。

绝对定位根据left和top属性来规定绝对定位元素的位置。
但这个位置实际上与padding和父级相对定位的box-sizing有关的。

* 默认盒子的box-sizing为content-box(即盒子所占据的宽度=width+padding)

情况一: 正常盒模型box-sizing:content-box; 同时没有top和left的情况

<div class="div1">
    <div class="pos1"></div>
</div>
-----------------------------------
.div1{
    width:100px;
    height:100px;
    border:1px solid red;
    padding: 20px;                       // 规定了父元素的padding
    position: relative;                  // 相对定位
}
.pos1{
    width:30px;
    height:30px;
    border:1px solid yellowgreen;
    position:absolute;             // 绝对定位,但没有规定left和top
}

效果:
这里写图片描述

情况二: 正常盒模型box-sizing:content-box; 规定top和left的值

<div class="div1">
    <div class="pos1"></div>
</div>
-----------------------------------
.div1{
    width:100px;
    height:100px;
    border:1px solid red;
    padding: 20px;                       // 规定了父元素的padding
    position: relative;                  // 相对定位
}
.pos1{
    width:30px;
    height:30px;
    border:1px solid yellowgreen;
    position:absolute;             // 绝对定位,同时规定left和top
    left: 0;
    top:0;
}

效果图:
这里写图片描述

即 :正常盒模型,在left和top没有定义时,相对于父级定位元素的content(内容区width)定位;
在定义了top和left属性时,相对于父级元素的占位区定位(包含padding区域)

情况三:盒模型box-sizing:border-box; 没有top和left的值

<div class="div2">
    <div class="pos2"></div>
</div>
-----------------------------------
.div2{
    width:100px;
    height:100px;
    border:1px solid red;
    padding: 20px;                       // 规定了父元素的padding
    position: relative;                  // 相对定位
    box-sizing: border-box;             // 规定盒模型为border-box
}
.pos2{
    width:30px;
    height:30px;
    border:1px solid yellowgreen;
    position:absolute;             // 绝对定位,没有规定left和top
}

效果图:
这里写图片描述

情况四:盒模型box-sizing:border-box; 同时规定top和left的值

<div class="div2">
    <div class="pos2"></div>
</div>
-----------------------------------
.div2{
    width:100px;
    height:100px;
    border:1px solid red;
    padding: 20px;                       // 规定了父元素的padding
    position: relative;                  // 相对定位
    box-sizing: border-box;             // 规定盒模型为border-box
}
.pos2{
    width:30px;
    height:30px;
    border:1px solid yellowgreen;
    position:absolute;             // 绝对定位,没有规定left和top
    top: 0;
    left:0;
}

效果图:
这里写图片描述

综上所述:
无论父级盒子是正常显示还是以border-box显示,在没有规定left和top的属性值时,都呈现在父级盒子的内容区(不包含padding)左上角
若规定了left:0;top:0;则统一相对父级盒子的左上角显示(包含padding)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

position:absolute详解 的相关文章

  • 如何更改单选按钮的默认外观而不是功能?

    在表单上我有两个单选按钮Yes and No 我想更改单选按钮的默认外观 喜欢这个 Edit 我想改变radio按钮进入 a 如果通过 CSS 更改默认单选按钮的外观并不容易 则在启用 JavaScript 时锚定 最简单的方法 将图像设置
  • CSS 双边框,外边框比内边框粗

    在我目前的工作中 我需要在容器上生成双边框 边框样式 双 实现这一点 但是我的客户希望外边框更厚 内边框具有正常厚度 除了创建 2 个 div 其中 1 个嵌套在另一个 div 中 外部 div 具有更大的厚度 或者通过使用边框图像 还有什
  • 如何设置 jQuery 可拖动的最小/最大左和最小/最大右

    我复制了一份JSbin来练习 JSbin链接在这里 https jsbin com gififikisa edit html css js output 实际站点链接在这里 http 79 170 40 181 emory com Proj
  • Chrome 中的 CSS 列不平衡

    我想使用以下方法在多列中动态显示一些 Bootstrap 列表组CSS 列 https developer mozilla org en US docs Web Guide CSS Using multi column layouts 但我
  • Safari 6 (iOS 6) 弹性布局不会换行元素

    我需要将两个框放在列中 这在我测试过的其他浏览器中有效 但在 iOS 6 上的 Safari 6 中无效 例子 http jsfiddle net 5FESj 1 http jsfiddle net 5FESj 1 display webk
  • 调整 Twitter-Bootstrap 中按钮的大小

    我正在开发一个适合移动设备的网络应用程序 我希望它有一个非常简单的用户界面 包括大到连巨人安德烈都可以轻松点击的按钮 问题是 我没有看到通过将引导按钮的宽度或高度设置为百分比 像素数或简单地让它们填充其容器来显式调整引导按钮大小的简单方法
  • HTML 文件上传“未选择文件”文本样式

    我正在构建一个需要文件上传的 html 表单 当我让文件上传部分正常工作时 我无法获得表单上传按钮和 未选择文件 文本的样式 我想要的标记是 有办法做到吗 PS 请忽略绿色文本 上传屏幕截图 我有那个工作 当前行为按钮和 未选择文件 位于同
  • 清除 CSS 过渡

    我使用 CSS 框架 该框架在将鼠标移动到输入元素上时应用过渡 我有一堂课 我不想有这种转变 这可能吗 只需放置过渡 无 在CSS中并使其优先级高于其他 Example html div class a div div class a b
  • IE 中的文件上传按钮和奇怪的文本光标行为

    我构建了一个上传按钮 其格式类似于典型的 html 按钮 而不是浏览器标准文件上传表单 该方法是设置锚元素的样式并在顶部覆盖透明文件输入元素 这种方法在除 IE 之外的所有浏览器中都可以正常工作 在 IE 中 当用户单击上传按钮时 会出现一
  • 如何将外部 div 的高度设置为始终等于特定内部 div 的高度?

    我有一个外部 div 其中包含三个内部 div 我希望最左边的内部 div 始终确定外部 div 的高度 如果其他内部 div 的内容 比最左边的 div 少 它们将有空白空间 如果他们有更多的内容 比最左边的div 他们将得到一个滚动条
  • 当内部图像缩放时,包裹 div 不会调整大小(窗口大小调整的结果)

    我希望我的图像随着窗口高度的变化而调整大小 同时保持包含的 div 收缩包裹图像 我尝试使用 div img src http akamaicovers oreilly com images 9780596806767 cat gif al
  • 更改 CSS 样式表的选择器属性

    以下是我们传统上如何更改重复元素的样式 将样式应用到每个元素 function changeStyle selector prop val var elems document querySelectorAll selector Array
  • Ie11 不应用媒体查询样式

    IE11 忽略我的媒体查询并始终使用移动 CSS 奇怪的是 如果我改变浏览器宽度 即使只是 1 2 像素 浏览器也会自行渲染并显示媒体查询 我尝试了 css lint 我的 css 中没有错误 我的CSS没有什么特别的 只是简单的 css
  • Firefox 无法正确渲染:border-radius、box-shadow 和 border

    在下面的例子中 http jsfiddle net Du8f6 3 http jsfiddle net Du8f6 3 我将内部阴影设置为容器和 10px 边框 并将边框半径设置为 50 结果是容器边框外有奇怪的细白色边框 细白色边框在以下
  • 上/下箭头键与预输入控件的问题(角度引导 UI)

    检查这个PLNKR http plnkr co edit grrAxz158PTShzpxz2f0 我已经实现了预先输入控制 默认情况下 在类型提前控件中 他们不会设置任何最大高度或列表高度 但根据要求 我必须将列表高度固定为 110px
  • HTML 表格信息

    我想知道是否有任何方法可以使 html 中的表格看起来像这样 http i43 tinypic com 21dml8l png http i43 tinypic com 21dml8l png 我基本上需要第一列中的 1 个大单元格 然后第
  • 如何自定义 Angular Material 的 input/md-input-container 组件?

    正如标题所述 我如何自定义这些元素 他们似乎使用透明背景 这在大多数背景调色板上很难查看 在 angular material css 后添加一个空白 css 文件 并在该空白 css 文件中覆盖您要自定义的规则 对于您面临的问题 我在 c
  • 如何隔离 Vuetify 全局样式

    我已经开始在旧的现有项目中将 Vue js 与 Vuetify 结合使用 所以我没有重写所有前端 我只是导入了Vue并替换了一些部分 然后我注意到一个非常意想不到的行为 Vuetify 具有常见类的全局样式 例如 title它不仅影响整个页
  • 在文档流中提取一个元素

    这是示例代码 top background lightGreen content outline 1px solid red bottom background lightBlue div Top div div Lorem ipsum d
  • 为什么 Firefox 对 Helvetica 的处理方式与 Chrome 不同?

    Firefox 和 Mac 版 Chrome 中以 Helvetica 呈现的文本的垂直位置及其内容区域的大小有所不同 例如 在 Chrome 中 如果行高与字体大小相同 则下行部分将被剪裁 我调整了图中块元素的位置 保持基线一致 以说明大

随机推荐

  • 使用el-table对排序进行回显

  • TypeScript 交叉类型(intersection type)

    在TS中和联合类型 union type 对应的还有交叉类型 intersection type 交叉类型的出现主要为了组合多个对象类型 object type 因为相对于interface object type没法继承 那么就可以通过u
  • iOS自定义导航栏-MLBNavigation

    为什么要做这个 平时使用原生导航栏 处理返回手势的时候 自己做不到像QQ那样处理的很完美 虽然有很多大大写的有不错的框架 个人感觉有些框架太繁重 并且还是不能满足一些要求 所以做这个 很简单 需要的参考 大神绕道 安装 下载demo 将ML
  • 2022芯原芯片设计 笔试题分析和讨论

    2022芯原设计笔试题分析和讨论 以下仅为个人理解和分析 不保证正确 欢迎大家发表自己的想法 讨论出正确答案 企业知识题 1 1 D 芯原的主要经营模式为芯片设计平台即服务 Silicon Platform as a Service SiP
  • 分布式日志收集(ELK)

    ELK简介 ELK Elasticsearch Logstash Kibana 是同一家公司开发的3个开源工具 可组合起来搭建海量日志分析平台 目前很多公司都在使用这种方式搭建日志分析平台进行大数据分析 参考 初识ES数据库 Logstas
  • 无向图邻接表实现

    无向图邻接表实现 顶点 按照编号顺序将顶点数据存储在一维数组当中 关联同一个顶点的边 以顶点为尾的弧 用线性链表存储 头结点 data firstarc 表结点 adjvex 邻接点的序号 存放与vi邻接的顶点在表头数组中的位置 nexta
  • Scrapy 存数据到Hbase

    网上很多教程都是使用Scrapy存数据到MongoDB Mysql或者直接存入Excel中的 很少有存入到Hbase里面的 前言 为什么没有像大多数网上那样将数据存入到MongoDB Mysql中呢 因为项目中使用到Hbase加上阿里云的推
  • 唯一标识一台计算机解决方法:

    首先 网上介绍最多的方法就是cpu baseboard等硬件设备的序列号 但是 这两种获取方法都有问题 wmic cpu get processorid获取的cpu序列号 其实只是某个系列的代号 并不是唯一的 比如 12代i9都用的是一个C
  • Qt学习之QList类

    QList的定义 一 简介 QList lt T gt 常用的容器类 它是一个列表 存储了给定类型的值 而这些值可以通过索引访问 二 定义 QList
  • [项目管理-27]:任务的目的,背后的原因是任务实施首要思考的问题。

    案例 无论是一个项目 还是一项任务 在实施之前 弄清楚原因 是项目经理必须有的思维模式 而不是无条件的盲目的执行 只有弄清楚目的和原因 才能在执行过程中 遇到问题时 发挥主观能动性 采用各种灵活变通的方法解决问题 最后确保项目的成功 另一方
  • Android Studio设计APP实现与51单片机通过WIFI模块(ESP8266-01S)通讯控制LED灯亮灭的设计源码【详解】

    目录 一 前言 二 效果展示 1 APP界面展示 2 C51硬件展示 三 Android Studio APP源代码 1 AndroidManifest xml 1 请求联网 2 开放明文传输 2 MainActivity java 3 L
  • python同步系统时间

    公司的电脑比较老旧 主板上的电池也没电了 每天都得手动调时间 自动同步也因为日期每天都被重置了而无法同步ntp服务器 想拆开换电池发现机箱也打开不了 emmm 无奈之下 自己做一个同步时间的脚本吧 然后用bat运行 加入开机启动项每天开机自
  • 员工分组-STL案例

    案例描述 1 公司今天招聘了10个员 ABCDEFGHUIJ 10名员工进入公司后 需要指派员工在那个部门工作 2 员工信息有 姓名 工资组成 部门分为 策划 美术 研发 3 随机给10名员工分配部门和工资 4 通过multimap进行信息
  • MySQL必知必会-笔记-Part3

    MySQL必知必会 笔记 Part3 Cha7 数据过滤 本章讲授如何组合WHERE子句以建立功能更强的更高级的搜索条件 以及NOT和IN操作符的使用 7 1 组合WHERE子句 第6章中介绍的所有WHERE子句在过滤数据时使用的都是单一的
  • JVM系列笔记(一)

    JVM的位置 JVM是运行在操作系统之上的 它与硬件没有直接的交互 JVM的整体结构 HotSpot VM是目前市面上高性能虚拟机的代表作之一 它采用解释器与即时编译器并存的架构 在今天 Java程序的运行性能早已脱胎换股 已经达到了可以和
  • xmind使用学习

    1 Background 这年头不画个思维导图都不好意思搬砖了 闲暇之余学习了下用xmind来画图 记录于此 2 Concept 主题 有中心主题和分支主题 子主题 一个主题的下一级主题叫子主题 自由主题 独立于中心主题 分支主题外的主题
  • 中山三院挂号服务器维护中,于广州中山三院的一次郁闷就诊

    最近不时地看到关于医院不负责任的报道 感叹的同时总觉得不可思议 那一直以为很神圣的地方现在对待生命的态度真的有这么随便么 没想到 一不小心 自己竟成为了被随便对待的那一个 事情的经过是这样的 这几天妈妈的胃一直很不舒服 于是10月8日早上陪
  • Matlab中readmatrix用法

    目录 语法 说明 示例 从文本文件中读取矩阵 从电子表格文件中读取矩阵 使用导入选项从指定的工作表和范围中读取矩阵 从指定的工作表和范围中读取矩阵 readmatrix是从文件中读取矩阵 语法 A readmatrix filename A
  • Minimal API in .NET 6 Using Dapper and SQL - Minimal API Project

    快捷键 prop public int MyProperty get set property ctor 创建一个构造函数 constructor part1 数据库 存储过程处理 最小的API 这里新建项目的时候没有用控制器 创建数据库文
  • position:absolute详解

    position absolute 日常开发中经常涉及元素的定位 我们都知道 绝对定位相对于最近position不为static的父级元素来定位 但其中定位的位置还是有细微的差别的 绝对定位根据left和top属性来规定绝对定位元素的位置