web前端技术讲解之CSS中position的定位技术

web前端技术讲解之CSS中position的定位技术

使用position定位有四种方式,分别为absolute、relative、static、fixed,static是静态定位,也为系统自动定位。下面主要分析其他三种定位方式的特点。

2363af2b-0d83-402b-8ce9-bba579fad1f1

 

 

 

1. 绝对定位:position:absolute

(1) 绝对定位是将元素依据已经定位(绝对、固定或相对定位)的离他最近的祖先元素进行定位,祖先元素没有定位或没有祖先元素则默认依据body浏览器窗口定位。

(2) 绝对定位的元素不论本身是什么类型,定位后都将成为一个新的块级元素,如果未指定宽高度默认自适应实际包含的内容区域(不在默认浏览器宽度)。

(3) 绝对定位后的元素将处于赋予其他元素之上,自身不占位置,他原来在正常文档流中所占的空间同时被关闭,就是说绝对定位的元素不占据页面空间,原空间被后续元素使用。

绝对定位必须用left、right、top、bottom属性之一激活,用于指定元素左、右、上、下外边距距离已定位祖先元素(或浏览器)左、右、上、下内边框的距离。

如果定义多个属性,当left、right、冲突时以left为准,当top、bottom冲突时以top为准,如果一个也不指定则元素扔按普通文档流布局,但他自己不再占据空间,后续元素上移与其重叠。

绝对定位元素定位后相对祖先元素的位置不在变化,若页面内容较多拖动页面滚动时,定位元素会随页面一起滚动。

绝对定位元素重叠覆盖其他元素时可用z-index属性设置他们的叠放次序。

3095b393-400c-4ebf-a3ea-3bbd58d2fb52

 

 

 

2. 相对定位:position:relative

(1) 相对定位是让元素(可以是行内元素)相对于它在正常文档流原位置按left、right、top、和bottom偏移量移动到新位置。

(2) 相对定位的元素移动后保持原外观样式大小,移动定位后不会占据新空间会覆盖新位置原有元素,原位置空间被保留,其他元素相对他原来的位置不变。

(3) Left、right、top、和bottom指定相对原位置移动的偏移量,可以使用带单位数值、相对父元素的百分比%。

Left正值:左边向内—向右移动,负值:左边向外—向左。

right正值:右边向内—向左移动,负值:右边向外—向右。

top正值:上边向内—向下移动,负值:上边向外—向上。

bottom正值:下边向内—向上移动,负值:下边向外—向下。

3. 固定定位:position:fixed

固定定位与绝对定位absolute相似,定位后元素也生成为新块级盒框、覆盖新位置原有元素,在正常文档流中所占的原空间关闭被后续元素使用。

adbf71fb-21cf-4d12-b7e3-48c102e8e295

 

 

 

固定定位与绝对定位absolute的区别是定位的元素无论父元素是否定位都会直接在浏览器窗口中定位,不会随滚动条拖动页面而滚动,固定定位用left、right、top、bottom指定浏览器左、右、上、下各边向中心的偏移量作为定位元素外边距位置

总结:元素的定位模型中需要区分每个属性值的不同定位方式,分为绝对定位、相对定位、固定定位以及默认定位和继承父元素。其中绝对定位和固定定位都脱离原本的文档流,而相对定位则遵循原本的文档流。设置元素的定位方式后,还需要指定偏移量。可以从上、右、下、左四个方向进行偏移。并且可以利用Z-index属性设置元素之间的层叠顺序。

转载于:https://my.oschina.net/u/4046848/blog/2999848

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

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

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


相关推荐

  • linux vsftpd_linux搭建vsftpd

    linux vsftpd_linux搭建vsftpd1.vsftp服务器在安装服务器的时候进行安装2.启动ftp服务servicevsftpdstart3.测试ftp是否可连接ftplocalhost4.ftp退出bye5.在windows中测试ftp是否能连接上打开cmd窗口执行ftpxxx.xxx.xx.xxx6.如果ftp连接不上判断linux中的ftp服务是否打开,linux的防火墙是否…

    2022年9月24日
    3
  • stacking的实现-mxtend库「建议收藏」

    TableofContents关于Stacked的实现库-mlxtend的学习StackingClassifier例子1简单实现stacking例子2sub-model的输出是probabilities例子3结合GridSearch列子4-针对不同整体选用不同模型StackingCVClassifier例子1简单stackingCV分类例子2sub-model的输出是prob…

    2022年4月8日
    48
  • sqlserver中exec/sp_executesql的使用

    sqlserver中exec/sp_executesql的使用–动态语句语法/******************************************************************************************************************************************************动态语句语法:exec/sp_executesql语法整理人:中国风(Roy

    2022年5月21日
    40
  • 精准绝杀一波(皮筋穿透魔术教学)

    自从去年8月份币安推出BNB之后,各家交易所也纷纷向交易者售卖自家生产的平台币,并允诺出让部分红利给到买家。而其中,Fcoin以其创新的“交易挖矿”机制,圈得韭菜无数。领跑数字货币市场的平台币进入2017年熊市以来,数字货币市场上的领跑者无疑是各大交易所推出的平台币。自从去年8月份币安推出BNB之后,各家交易所也纷纷向交易者售卖自家生产的平台币,并允诺出让部分红利给到买家。常见的平台币让利策略可以…

    2022年4月17日
    380
  • windows下安装mysql

    windows下安装mysql

    2021年11月27日
    84
  • 流量精灵刷流量的实例教程

    流量精灵刷流量的实例教程流量精灵大概是去年的这个时候出来的一款提升网站访问量的软件,由于软件比较优秀,当时我就及时关注这款软件,现在时隔一年的时候,流量精灵在低调的发展下,版本也更新到了2.1.7。而以前只是写了一下流量精灵的测评文章,感觉已不能满足大家的需求,所以今天为广大的新手及新站长朋友写上详细的使用教程。流量精灵的功能介绍:主要就是刷流量的。这里的流量主要是指网站的流量,网站流量简单一点说就是访…

    2022年9月29日
    2

发表回复

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

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