CSS相对绝对定位 总结

CSS相对绝对定位 总结相对定位 relative 绝对定位 absolute fixed 在文档流的 relative 未完全脱离文档流的 浮动脱离文档流的 absolute fixedfloat 究竟有没有脱离文档流 为什么文字会围绕在 float 元素周围 而块状元素依然会忽略 float 元素 只能说明 float 未完全脱离文档流 一 解释 1 position st

position:relative | absolute | fixed | static | inherit

什么是文档流?
将窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素,即为文档流。(自上而下,自左向右)


一、解释

1、position: static

这个是元素的默认定位方式,元素出现在正常的文档流中,会占用页面空间。不能使用top,bottom,left,right和z-index。

2、position: relative

(1)相对于其父级元素所剩余的未被占用的空间进行定位(在父元素由多个相对定位的子元素时可以看出)
就是:以自己作为参照,进行定位(即position为static时的位置)

3、position:absolute

(1)以最近的且不是static定位的祖先元素作为参考进行定位,如果其所有的父级元素都是static定位,那么此元素最终则是以当前窗口作为参考进行定位(body)。可以使用top,bottom,left,right进行位置移动,亦可使用z-index在z轴上面进行移动。
(2)脱离文档流,不会占用页面空间。
(3)absolute使用margin时,不管它有没有已经定位的祖先元素,都会以它原来所在文档流中的位置作为参照。此时margin-top、margin-bottom不再对文档流中的元素产生影响,因为该元素已经脱离了文档流。对于relative、absolute、fixed定位元素,使用 left、right、top、bottom属性与margin属性混合使用会产生累加效果。

4、position: fixed

position: fixed直接以浏览器窗口作为参考进行定位。其它特性同absolute定位。


二、例子说事

例1、position: relative; left:0px(或right:0px)

<style> *{ 
       margin: 0;padding: 0;} #div{ 
        width: 300px; height: 300px; background:#ccc; position: relative;/*或者position: absolute;*/ left: 50%; margin-left: -150px; } #div span{ 
        background: orange; } #child{ 
        position: relative; top:0; left: 0;/*换为right: 0; 输出效果一样*/ background: green; width: 100px; height: 100px; } </style> <body> <div id="div"> <span>1dadada1</span> <div id=child></div> <a href="">asdasdasdadad</a> </div> </body> 

在这里插入图片描述

例2、position: relative; right:100px;
将例1代码修改为如下,其他不变。

#child{ 
       position: relative; top:0; right:100px; background: green; width: 100px; height: 100px; } 

在这里插入图片描述

例3、position:absolute; left:0px;
将例1代码修改为如下,其他不变。

#child{ 
        position: absolute; top:0; left: 0; background: green; width: 100px; height: 100px; } 

CSS相对绝对定位 总结

例4、position:absolute; right:0px;
将例1代码修改为如下,其他不变。

#child{ 
         position: absolute; top:0; right: 0; background: green; width: 100px; height: 100px; } 

在这里插入图片描述

例5、position:absolute; top:60px;margin-top: 70px;

将例1代码修改为如下,其他不变。

#child{ 
          position: absolute; top:60px; left: 0; margin-top: 70px; background: green; width: 100px; height: 100px; } 
#child{ 
          position: fixed; top:0; right: 0; background: green; width: 100px; height: 100px; } 

例7、position:fixed; top:10px;margin-top: 20px;
将例1代码修改为如下,其他不变。

#child{ 
          position: fixed; top:30px; left: 0; margin-top: 20px; background: green; width: 100px; height: 100px; } 

总结:

relative: 以自己作为参照,进行定位(即position为static时的位置)
absolute: 以最近的 且不是static定位的父级元素作为参照,进行定位的
fixed: 以浏览器窗口作为参考,进行定位的






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

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

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


相关推荐

  • 计算机发展历史的四个阶段分别是_计算机发展的四个阶段及四个特点

    计算机发展历史的四个阶段分别是_计算机发展的四个阶段及四个特点篇一:计算机发展的四个阶段计算机技术发展的四个阶段第一代电子计算机第一台电子管计算机于1946年在美国制成,取名埃尼阿克(ENIAC)。在美国宾夕法尼亚大学诞生的。世界上第一台电子计算机是个庞然大物:重30吨,占地150平方米,肚子里装有18800只电子管。1.第一代计算机:电子管数字计算机(1946-1958年)硬件方面,逻辑元件采用电子管,主存储器采用汞延迟线、磁鼓、磁芯;外存储器采用磁带。…

    2022年8月31日
    1
  • Java学习之jackson篇

    Java学习之jackson篇0x00前言本篇内容比较简单,简单记录。0x01Json概述概述:JSON(JavaScriptObjectNotation,JS对象简谱)是一种

    2021年12月12日
    47
  • NSGA3算法及其MATLAB版本实现

    NSGA3算法及其MATLAB版本实现NSGA3算法及其MATLAB版本实现一丶NSGA3和NSGA2的一些参考资料看懂NSGA3之前,了解的NSGA2的话更有帮助,这个博士写的带约束的NSGA2的matlab版本很不错(9个非约束的测试问题和5个带约束的测试问题),大家想了解NSGA3的最好先看看。1.ConstrainedNSGA2:https://cn.mathworks.com/matla…

    2022年5月12日
    45
  • win10装kali linux双系统,win10安装kali组成双系统攻略「建议收藏」

    win10装kali linux双系统,win10安装kali组成双系统攻略「建议收藏」已在计算机上安装有win10系统,在这个基础上再安装kali组成双系统,所用的版本是KaliLinux2018.2,Linux内核为4.15版本。一、镜像下载根据需求下载自己需要的版本二、烧录这里推荐用win32diskimager,下载地址在这里,尝试了好几款烧录工具,这个是相对最稳定的。在win10中安装然后打开win32,如下图:第一步选中镜像位置。第二步选择要烧录的U盘的盘符,比如…

    2022年7月24日
    6
  • pycharm+anaconda安装教程_anaconda配置pycharm

    pycharm+anaconda安装教程_anaconda配置pycharm对了宝贝儿们,卑微小李的公众号【野指针小李】已开通,期待与你一起探讨学术哟~摸摸大!目录1WhyAnaconda?2Anaconda安装流程2.1卸载python2.2下载anaconda2.2安装anaconda1WhyAnaconda?Anaconda最大的优势我认为在于可以做环境管理,可以通过创建不同的环境,安装不同的包。简单来说,就比如我们在github上下载了一个代码,是用python2.6写的,但是我们的python是3.7的版本。如果我们没有用anaconda,那么我们

    2022年8月27日
    2
  • rocketmq的原理_dns原理及其解析过程

    rocketmq的原理_dns原理及其解析过程1如何保证消息的可靠性传输生产者丢失数据:生产者设置同步提交消息,并且手动提交,将消息同步刷盘到从节点后在返回成功,broker:主从复制,同步刷盘消费端:消费重试,只有返回consume_success才算消费完成,保证消息的可靠性,最终还是消费16次还是失败的会进死信队列2.如何保证消息不被重复消费消费端消费消息的幂等1服务端代码根据messageId设置分布式锁,获取锁再做业务操作2更新数据库时校验业务的状态3或者设置唯一索引3.如何保证消息的顺序性…

    2025年6月27日
    0

发表回复

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

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