css如何实现盒子在鼠标点,掌握CSS定位,才能让“盒子”飞得更高更远更稳

2023-11-13

众所周知,前端CSS中,盒模型、浮动、定位为必须掌握的三座大山。

今天就来聊聊定位的那些事。

定位是什么?

先来看看哪些场景用到定位,如下图所示,凡是有盒子压住另一个盒子的地方都可定位,因为用浮动做不了,如果盒子浮动,会并排但不会出现有层级的观感。所以想要有层级的观感,就得用定位。

87af1dea33ba1058ad932145707fe621.png用到定位的场景

简单来说,定位就是将盒模型中的盒子显示在我们想要的位置。

定位的语法

定位由position属性和边偏移属性组成。

position属性语法为:{position:属性值},常用值如下:

0cf2a769df178511c2d9bed70b422e9a.pngposition属性

边偏移属性语法为:{边偏移:属性值},常用值如下:

4246031908aa2068ae0e5efbea39a40e.png边偏移属性

定位模式和用法

1、静态定位static

静态定位具备标准流特性,所有元素默认静态定位,静态定位不能通过设置边偏移改变位置。

静态定位的作用:取消定位。

2、相对定位relative

相对定位在标准流中,采用相对定位的盒子仍然占用原来的位置。每次移动位置,以自己的左上角为基点移动(相对于自己移动位置)

3、绝对定位absolute

绝对定位不具备标准流特性,采用绝对定位的盒子在设置边偏移后不占位置。

绝对定位的盒子在父级没有定位时,以浏览器为准对齐;当父级有定位,依据最近的已定位的父元素进行定位。

4、固定定位fixed

固定定位不具备标准流特性,不占位置,始终以浏览器为标准显示位置,不管浏览器滚动和窗口大小,fixed显示固定。

6a57c73ae5ca268e023f6497f18fb7df.png定位总结

终极用法口诀:子绝父相,或子绝父绝。

就是说,在实际开发过程中,子盒子采用绝对定位,那么父盒子必定采用相对定位或绝对定位。

如果要实现绝对定位的盒子水平或垂直居中需要采用一定的算法。因为加定位有偏移和浮动的盒子通过设置margin值实现水平居中失效。那么采用以下方法:

先设置左边偏移50%,50%表示父盒子的一半,即left:50%。再设置自己盒子外边距为盒子宽度负的一半,即margin-left:-width/2。

3f7ec7511b6a14e1b2e53448211080fa.png定位用法

定位模式转换

当盒子加fixed和absolute定位,元素转换为行内块元素。

如果盒子固定定位,当盒子内容为空时,盒子的高度会为0,为避免这种情况可设置盒子的宽高,再设置下面的盒子的margin值,可实现top通栏固定不动。如下图的首页展示固定top通栏。

4e2e23a3de1741521e7ea81cac414053.png网页通栏top固定

层级z-index

当定位元素重叠,可通过z-index设置层叠次序。

e24cb3f4632998e0d5abde4bd9ba39ec.png层级z-index的场景

层级z-index只针对定位的元素,标准流和浮动不具备该属性。

层级z-index的用法:z-index:2;后面没有单位。

采用相对定位比标准流高一层级,浮在上面。盒子已经用相对定位,但是鼠标放上去还想用相对定位,就可用z-index。取值相同时,根据书写顺序,后来居上。默认为0,值越大层级越高。(部分图片来源网络截图,若侵权,联系删除)

举报/反馈

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

css如何实现盒子在鼠标点,掌握CSS定位,才能让“盒子”飞得更高更远更稳 的相关文章

  • 【微信小程序】wx.onBluetoothDeviceFound 安卓机第一次可以连接蓝牙设备,第二次搜索不到问题

    问题原因 wx onBluetoothDeviceFound 接口返回的是新的蓝牙设备 之前连接过的在部分安卓机型上 不算做新的蓝牙设备 故重新连接搜索不到 解决办法 操作完成后要及时关闭连接 同时也要关闭蓝牙设备 否则安卓下再次进入会搜索
  • 使用遗传算法解决单目标优化问题及MATLAB代码实现

    使用遗传算法解决单目标优化问题及MATLAB代码实现 随着现代计算机科学的快速发展 越来越多的实际问题需要使用最优化算法进行求解 其中 遗传算法因其应用范围广泛 求解能力强等特点而备受关注和研究 本文将介绍如何使用遗传算法求解单目标优化问题
  • Ubuntu 18.04.6 Android Studio Giraffe adb logcat 无法使用

    在 Ubuntu 18 04 6 上 在链接上设备以后 发现可以用 Android Studio 安装应用 但无法用 Android Studio 看 logcat 手动从命令行停止 启动 adb 会报错如下 daemon not runn
  • 自定义导航栏

  • cenos7 下通过yum安装和配置mariadb

    centos 7 的软件源中有mariadb的 所以这里我们不配置他的源了 若没有的话可以用以下方式来配软件源 vi etc yum repos d MariaDB repo 插入以下内容 MariaDB 10 2 4 CentOS rep
  • 查看云服务器信息,查看云服务器信息

    查看云服务器信息 内容精选 换一换 对于已安装InfiniBand网卡驱动的H2型弹性云服务器 以下简称IB云服务器 可以通过如下方式 检查云服务器的IB网卡驱动安装成功 网络连通 可以正常工作 检查过程中 如果发现您的弹性云服务器未安装i
  • echarts图表鼠标悬停时 图例错位

    1 问题 当页面body拥有zoom属性之后 鼠标划过echarts图表时 触发位置就不正常 2 原因分析 这都是因为设置了zoom 如果你在你的项目中设置了zoom以达到缩放比例的适配 在使用echarts图表时就会出现错位的问题 3 解
  • cmake(二十八)Cmake工具链

    一 选择编译器及设置编译器选项 1 应用场景 1 在 实际的项目平台中 可能安装有 多个版本 的 编译器 2 同时由于 不同的功能 可能会需要设置 不同的编译参数 2 初始状态 3 IDE工具CLion配置 4 CMAKE C COMPIL
  • pycharm查看全部tensor数据,取消省略

    方法一
  • 【深度学习——点云】DGCNN(EdgeConv)

    这篇文章提出一种边卷积 EdgeConv 操作 来完成点云中点与点之间关系的建模 使得网络能够更好地学习局部和全局特征 论文地址 Dynamic Graph CNN For Learning On Point Clouds 1 Motiva
  • rustup 慢_Rust 慢更贴[持续更新Rust学习的点点滴滴]

    入门篇 Rust入门系列 这个帖子会一直更新 欢迎大家回复 首先从安装来写把 rust安装 在写这篇文章的时候 rust最新版本是1 35 安装的步骤大家可以直接上rust官网 https www rust lang org curl ht
  • 招银网络科技电话面试

    1 关于项目的负责内容 还是非常有必要熟悉应急 天基的基础传输模块的 基本面试中都会觉得只界面模块很单薄 应急 基础传输模块 无人机网络协议 速率控制模块 界面模块 天基 基础传输模块 MRUDP 界面模块 2 TCP长连接 问 如何在TC
  • 每日一面系列之volatile 的理解

    volatile 是 Java 虚拟机提供的轻量级的同步机制 有三大特点 保证可见性 不保证原子性 禁止指令重排 保证可见性 当多个线程操作共享数据时 彼此是不可见的 由此提出 JMM java 内存模型 JMM java 内存模型 是一种
  • Words Seven

    2019独角兽企业重金招聘Python工程师标准 gt gt gt bar 棍子 酒吧 栅栏stick lip stickbarrier bar r er 障碍 hurdlebarrel bar rel 木桶barren bar ren 贫
  • 数二考纲新增内容-比较审敛法

    总的来说 为了避免出现2010年数一数二选择题的超纲嫌疑 命题组明确了会考察反常积分的比较审敛法 其实之前在做题中都已经涉及 主要多了一个反常积分的极限形式 这里给出一个总结 关于反常积分敛散性的原理 还有一个解题技巧就是利用对数 指数 幂
  • java数据类型转换,基本数据类型和String数据类型之间的转换

    6月16日学习打卡 自动类型转换 强制转换 基本数据类型和String转换 3 8类型转换 3 8 1自动类型转换 1 低精度向高精度赋值可以自动转换类型 char gt int gt long gt float gt double byt
  • 探索TiDB数据库

    一 TiDB介绍 TiDB是一款定位于在线事务处理 在线分析处理的融合型数据库产品 实现了一键水平伸缩 分布式事务与基于Raft协议保证强一致的多副本数据安全 具有实时OLAP等重要特性 同时兼容MYSQL协议和生态 迁移便捷 运维成本低
  • 老表,教你一招啊!!!如何用python实现将csv文件快速导入数据库,建议收藏!!!

    直接上代码 import pandas as pd from sqlalchemy import create engine MySQL的用户 root 密码 147369 端口 3306 数据库 date engine create en
  • 一行代码下载优酷、腾讯、B站等公开视屏

    安装you get工具包 pip install you get 下载命令解析 you get o e 123 o后面接本地地址 https v youku com v show id XOTQ3NjI1ODc2 html 为视屏页地址

随机推荐

  • RabbitMQ MQTT集群方案官方说明

    RabbitMQ MQTT 官方网说明 官方地址 https www rabbitmq com mqtt html 从3 8开始 该MQTT插件要求存在一定数量的群集节点 这意味着三分之二 五分之三 依此类推 该插件也可以在单个节点上使用
  • mysql除法函数_理解MySQL运算符和常用内置函数_MySQL

    一 MySQL中的运算符 注意事项 1 在除法运算和模数运算中 如果除数是0 将是非法除数 结果返回NULL 取模运算中 也可以用MOD a b 函数或者a b mysql gt select 1 0 100 0 1 0 100 0 NUL
  • 码上行动:利用Python与ChatGPT高效搞定Excel数据分析

    AI时代Excel数据分析提升之道 知识精进 学习答疑 上机实训 综合实战 ChatGPT应用 零基础入门 极速提升数据分析效率 亮点 1 零基础入门宝典 由浅入深讲解 无须额外的背景知识即可学习掌握 2 内容系统全面 可帮助读者快速了解使
  • C0177 [2004普及组-A]不高兴的津津(C语言写)

    题目描述 津津上初中了 妈妈认为津津应该更加用功学习 所以津津除了上学之外 还要参加妈妈为她报名的各科复习班 另外每周妈妈还会送她去学习朗诵 舞蹈和钢琴 但是津津如果一天上课超过八个小时就会不高兴 而且上得越久就会越不高兴 假设津津不会因为
  • 音频PCM数据的单声道、双声道之间的转换

    在使用tinyalsa处理PCM音频数据时发现该设备只能以双声道形式打开设备 tinypcminfo工具可以查看设备信息 out和in里面channels 最大和最小值都是2 但是实际使用中有时候又需要声卡采集和播放单声道数据怎么办 那就只
  • 入门级题解3. 无重复字符的最长子串

    题目 给定一个字符串 s 请你找出其中不含有重复字符的最长子串的长度 思路 这样一来 我们就可以使用 滑动窗口 来解决这个问题了 我们使用两个指针表示字符串中的某个子串 或窗口 的左右边界 其中左指针代表着上文中 枚举子串的起始位置 而右指
  • Niagara官方示例笔记 - 盘点自带重要模块

    Emitter State life cycle生命周期控制 发射器选择system 所有发射器都在system的state里设置生命周期 选择self 发射器独立控制 可以给发射器创建不同类型变量 使用set parameter模块计算
  • 【Vegas原创】ORA-16040 standby destination archive log file is locked解决

    ORA 16040 standby destination archive log file is locked Cause The target standby destination archive log file is curren
  • serverless与容器优缺点

    容器优势 1 可移植性 使用容器 开发人员可以确保他们的应用程序可以在任何云平台或本地服务器上运行 2 轻量化 容器镜像以层叠加 在本地拥有镜像层缓存 计算资源使用方面 容器也比虚拟机更高效 3 快速启动 容器启动在镜像只读层上叠加一层读写
  • 谈谈我们公司如何做Code Review

    研发中心团队越来越庞大了 开发人员越来越多了 和他们聊天过程中 发现开发人员对代码技能的提升很迷茫 诉求越来越浓厚 只不过一个接一个的项目交付没有给他们太多停留的时间 在这种情况下如何给团队营造浓厚的工程师交流氛围呢 方法有多种 最近进行了
  • 35+老测试员生涯回顾,揭秘无力吐槽的自动化真相…

    不知道从什么时候开始 软件测试行业就和 自动化 这个词联系在一起了 对于如今的测试人来说 几乎没有人不知道 自动化测试 甚至查看各大招聘网站 你从任何一个招聘渠道来看最近两年对测试岗位的要求 几乎都要求会自动化测试 而不少人一直认为手工测试
  • JS获取阴历+阳历时间

    1 阴历 获取阴历 start getLunar var nyear var nmonth var nday 1 var nwday var nhrs var nmin var nsec var lmonth lday lleap 农历参数
  • 海思麒麟985性能简介

    海思麒麟985 SoC由中国台湾积体电路制造有限公司打造 是麒麟980的升级改良版 率先使用7nm工艺制作 是对上一代10nm芯片的改进 主要在功耗和性能上做了较大改进 麒麟985大致参数为1 3 4 CPU架构 8核Mali G77 GP
  • mali GPU 官网指南

    1 简介 GPU 图形处理单元 是一种专门在个人电脑 工作站 游戏机和移动设备上图形运算工作的微处理器 以前GPU主要用于图形处理 现在GPU的通用计算技术也得到了飞速发展 事实证明在浮点运算 并行计算等部分计算方面 GPU可以提供数十倍乃
  • 【python】python如何从一个文件中引入另一个文件中的变量

    直接和导入python的函数一样导入变量名即可 十分方便 from target file import variant name
  • STM32学习笔记五、RST复位

    1 STM32硬复位 STM32片内已经有复位电路了 可以不外接复位电路 复位引脚一般不宜悬空 所以STM32在NRST引脚内接了一个上拉电阻 典型值为40K 为了防止外部干扰 STM32数据手册上建议外接一个对地电容 如果用户认为内部上拉
  • java后端接入微信小程序登录功能

    java后端接入微信小程序登录功能 前言 此文章是Java后端接入微信登录功能 由于项目需要 舍弃了解密用户信息的session key 只保留openid用于检索用户信息 后端框架 spring boot 小程序框架 uniapp 流程概
  • 【ROS】虚拟机VMware 安装ROS 一条龙教程+部分报错解决

    前言 Linux下安装ROS真是太多坑了 如何在Linux下安装ROS呢 博主带你少走弯路 目录 前言 第一步 配置软件源 1 打开设置 2 打开软件与更新 3 选源 第二步 设置sources list 第三步 设置密钥 第四步 正式安装
  • C#中断点不能调试问题(当前不会命中断点,还没有为该文档加载任何资料 )

    1 winform 程序中 经常会出现的一个错误 断点不可调试 1 当前不会命中断点 还没有为该文档加载任何资料 问题原因 窗口所在的类库或者项目在应用程序目录中 release或者debug 中只生成了dll文件 没有生成pdb文件 例如
  • css如何实现盒子在鼠标点,掌握CSS定位,才能让“盒子”飞得更高更远更稳

    众所周知 前端CSS中 盒模型 浮动 定位为必须掌握的三座大山 今天就来聊聊定位的那些事 定位是什么 先来看看哪些场景用到定位 如下图所示 凡是有盒子压住另一个盒子的地方都可定位 因为用浮动做不了 如果盒子浮动 会并排但不会出现有层级的观感