【学习笔记】CSS深入理解之absolute「建议收藏」

【学习笔记】CSS深入理解之absolute「建议收藏」【学习笔记】CSS深入理解之absolute

大家好,又见面了,我是你们的朋友全栈君。

《张鑫旭的CSS深入理解之absolute》学习笔记

绝对定位的特性

绝对定位与浮动相似,都有破坏性和包裹性。浮动的一些应用场景中也可用绝对定位替代

绝对定位的行为表现

无依赖绝对定位元素

在未手动定位的情况下,绝对定位元素有以下特性

  • 去float化 – float属性将会失效
  • 跟随性 – 根据原有位置脱离文档流放置

无依赖绝对定位元素 —— 即未手动定位的绝对定位元素

无依赖绝对定位元素的使用

无依赖绝对定位元素可以使用margin值进行定位,实现脱离文档流的相对定位效果,脱离文档流可以解决溢出限制的问题

应用实例:

  1. 图标定位:角标之类的可以使用DOM位置结合绝对定位margin偏移实现定位,不一定要使父容器成为包含块
  2. 下拉框定位:下拉框和输入框之间的联系可以使用绝对定位margin偏移实现
  3. 边缘定位:利用跟随性,使元素跟随空白字符放置
  4. 图标对齐和文本溢出处理

绝对定位脱离文档流

  • 绝对定位+动画,避免回流和重绘
  • 覆盖层级,z-index + 绝对定位 > 后置绝对定位元素 > 前置绝对定位元素 > z-index > 普通元素
    https://codepen.io/curlywater…

绝对定位和width/height

  • 无固定width/height,绝对定位方向是对立的(如left vs right, top vs bottom)的时候,绝对定位元素拉伸。可应用于宽高自适应
  • 有固定width/height,绝对定位拉伸失效
  • 固定width + left + right,相当于元素有了一个固定宽度,这时使用margin: auto可达到居中效果

总结

绝对定位相对于包含块定位;
在日常使用种,一般会习惯性对父容器使用relative,使用top/bottom/left/right来脱离文档流的绝对定位;
但无依赖绝对定位元素结合margin偏移使用也可以实现一些实用的效果。

利用绝对定位元素脱离文档流的特性,使用动画可以避免大范围的回流和重绘。

绝对定位元素拉伸实现宽高自适应,可应用于大范围的布局。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107149.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SpringBoot事务注解@Transactional

    SpringBoot事务注解@TransactionalSpringBoot提供了非常方便的事务操作,通过注解就可以实现事务的回滚,非常方便快捷,下面我们就说一下如何进行事务操作。1.事务说明在Spring中,事务有两种实现方式,分别是编程式事务管理和声明式事务管理两种方式。编程式事务管理:编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。

    2022年4月27日
    109
  • c++中fstream是什么意思_c++形式参数

    c++中fstream是什么意思_c++形式参数初学C++fstream最近出于学习需要,接触了一些C++的程序,对于文件的操作,在C++中的实现方法与C中有些不同,现归纳如下:C++中对文件的操作,是围绕三种类型的文件流(ifstream,ofstream,ftream)进行的.而这三种流事实上是系统定义的类.操作中,首先使流与文件相关联,通过流(也就是类成员)来完成对文件的操作.文件使用完毕,一定要关闭,从而切断流…

    2022年9月19日
    2
  • 【java并发编程】底层原理——用户态和内核态的区别

    【java并发编程】底层原理——用户态和内核态的区别一、背景–线程状态切换的代价java的线程是映射到操作系统原生线程之上的,如果要阻塞或唤醒一个线程就需要操作系统介入,需要在户态与核心态之间切换,这种切换会消耗大量的系统资源,因为用户态与内核态都有各自专用的内存空间,专用的寄存器等,用户态切换至内核态需要传递给许多变量、参数给内核,内核也需要保护好用户态在切换时的一些寄存器值、变量等,以便内核态调用结束后切换回用户态继续工作。synch…

    2022年9月18日
    4
  • idea 删除当一行或者选中行的快捷键

    idea 删除当一行或者选中行的快捷键之前前端开发一直使用 VSCode 常用快捷键删除一行或者当前选中的几行代码 使用 idea 的时候发现快捷键并不相同 查看发现 idea 的快捷是 Ctrl Y 比手动删除代码方便很多 通过 File gt Setttings gt Keymap 可以查看已经设置好的快捷键

    2025年9月13日
    1
  • pycharm修改环境_pycharm更改环境

    pycharm修改环境_pycharm更改环境因为有时需要在Terminal中调试代码,而且调试前需要配置环境变量,虽然操作不麻烦,但用起来总不习惯.特别是项目比较多时,需要频繁进到设置里面去改.以前设置环境变量的操作如下图:Settings-Tools-Terminal-ProjectSettings-Enviromentvariables添加环境变量比如我们有一个文件env.list里面的内容如下:IN_HOST=’192.168.0.6’#数据库主机IPIN_PORT=8888#数据库端口IN_US

    2022年8月27日
    4
  • WP7WrapPanel

    WP7WrapPanelWrapPanel:这个面板控件主要是通过Orientation属性设置包含在控件是的元素从左至右或从上至下依次安排位置,当元素超过该控件边缘时,它们将会被自动转至下一行或列。此控件一般用于文本布局、拾色器、图片等。需要加载System.Windows.Controls.Toolkit.dll WrapPanel:这个面板控件主要是通过Orientation属性设置包含在控件是的元素从

    2022年7月23日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号