返回首页
css中的绝对定位和相对定位
发表时间:2019-12-20 阅读:2246
新零售系统
电商系统
LegendShop大讲堂之css中的绝对定位和相对定位

朗尊软件技术开讲,LegendShop大讲堂之css中的绝对定位和相对定位,让你见识一下朗尊软件大牛们的用心和刻苦。LegendShop电商系统能历久弥新,是有它的道理的,不创新,不学习就没有进步。


定位的认识

1.static:无特殊定位,对象遵循正常文档流。toprightbottomleft等属性不会被应用。


2.relative:对象遵循正常文档流,但将依据toprightbottomleft等属性在正常文档流中偏移位置。而其层叠通过z-index属性定义。


3.absolute:对象脱离正常文档流,使用toprightbottomleft等属性进行绝对定位。而其层叠通过z-index属性定义。


4.fixed:对象脱离正常文档流,使用toprightbottomleft等属性以窗口为参考点进行定位,当出现滚动条时,对象不会随着滚动。而其层叠通过z-index属性定义。


什么是文档流?

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

只有三种情况会使得元素脱离文档流,分别是:浮动、绝对定位和相对定位。


静态定位(static)

static,无特殊定位,它是html元素默认的定位方式,即我们不设定元素的position属性时默认的position值就是static,它遵循正常的文档流对象,对象占用文档空间,该定位方式下,toprightbottomleftz-index等属性是无效的。


相对定位(relative)

relative定位,又称为相对定位,从字面上来解析,我们就可以看出该属性的主要特性:相对。但是它相对的又是相对于什么地方而言的呢?这个是个重点,也是最让人疑问的一个地方,现在让我们来做个测试,我想大家都会明白的:

(1) 初始未定位

代码如下:


/******初始*********/


first

second



初始原图:


(2) 我们修改first元素的position属性:

代码如下:



偏移20px后:


-- >> 虚线是初始的位置空间

现在大家应该有些明白了吧,相对定位相对的是它原本在文档流中的位置而进行的偏移,而我们也知道relative定位也是遵循正常的文档流,它没有脱离文档流,但是它的top/left/right/bottom属性是生效的,可以说它是staticabsolute的一个中间过渡属性,最重要的是它还占有文档空间,而且占据的文档空间不会随 top / right / left / bottom 等属性的偏移而发生变动,也就是说它后面的元素是依据虚线位置( top / left / right / bottom 等属性生效之前)进行的定位,这点一定要理解。

那好,我们知道了top / right / left / bottom 属性是不会对relative定位的元素所占据的文档空间产生偏移,那么margin / padding会让该文档空间产生偏移吗?答案是肯定的,我们一起来做个试验吧:

(3)   添加margin属性:

代码如下:



设置margin20px后:

对比一下,是不是就很清晰了,我们先将first元素外边距设为20px,那么second元素就得向下偏移40px,所以margin是占据文档空间!同理,大家可以自己动手测下padding的效果吧!


绝对定位(absolute)

absolute定位,也称为绝对定位,虽然它的名字号曰“绝对”,但是它的功能却更接近于"相对"一词,为什么这么讲呢?原来,使用absolute定位的元素脱离文档流后,就只能根据祖先类元素(父类以上)进行定位,而这个祖先类还必须是以postionstatic方式定位的, 举个例子,a元素使用absolute定位,它会从父类开始找起,寻找以positionstatic方式定位的父类元素(注意,一定要是直系父级才算),直到标签为止,这里还需要注意的是,relativestatic方式在最外层时是以标签为定位原点的,而absolute方式在无父级是positionstatic定位时是以作为原点定位。元素相差9px左右。我们来看下效果:

(4) 添加absolute属性:

复制代码

代码如下:




relative

absolute




效果图:

看了上面的代码后,细心的朋友肯定要问了,为什么absolute定位要加 top:0; left:0; 属性,这不是多此一举吗?

其实加上这两个属性是完全必要的,因为我们如果使用absolutefixed定位的话,必须指定 leftright top bottom 属性中的至少一个,否则left/right/top/bottom属性会使用它们的默认值 auto ,这将导致对象遵从正常的HTML布局规则,在前一个对象之后立即被呈递简单讲就是都变成relative,会占用文档空间,这点非常重要,很多人使用absolute定位后发现没有脱离文档流就是这个原因,这里要特别注意~~~

少了left/right/top/bottom属性不行,那如果我们多设了呢?例如,我们同时设置了topbottom的属性值,那元素又该往哪偏移好呢?记住下面的规则:

·         如果topbottom一同存在的话,那么只有top生效。

·         如果leftright一同存在的话,那么只有left生效。

既然absolute是根据父类中的positionstatic元素进行定位的,那么父类中的margin/padding会不会对position产生影响呢?看个例子先:

(5) 在absolute定位中添加margin / padding属性:

复制代码

代码如下:


#first{width: 200px;height: 100px;border: 1px solid red;position: relative;margin:40px;padding:40px;}
#second{width: 200px;height:100px;border: 1px solid blue;position: absolute;top:20px;left:20px;}

first
second



效果图:

看懂了,父类的margin会让子类的absolute跟着偏移,而padding却不会让子类的absolute发生偏移。总结一下,就是absolute是根据父类的border进行的定位。

另外,绝对(absolute)定位对象在可视区域之外会导致滚动条出现。而放置相对(relative)定位对象在可视区域之外,滚动条不会出现。

使用绝对(absolute)定位的时候,一般都是与相对(relative)定位成对出现的,如果发现定位对象位置不正确,先检查一下父类元素是哪一个,相对而立才能生效。


固定定位(fixed)

fixed定位,又称为固定定位,fixed总是以body为定位时的对象,总是根据浏览器的窗口来进行元素的定位,通过"left" "top" "right" "bottom" 属性进行定位。fixed元素通常运用在需要固定元素的地方,比如html页面中的搜索框,h5页面中的底部导航等等,目的是为了让定位对象固定在一个位置,不随页面滚动而改变。





文章来源:广州朗尊软件科技有限公司
【朗尊软件】是中国领先的专业电商平台提供商,秉承着“专业塑造传奇,用心成就电商”的理念, 专注于为用户提供一体化的电商解决方案及服务,搭建垂直行业垂直电商一站式营销管理工具。目前拥有自主研发的电子商务平台产品:SAAS云平台、微商城小程序、云商城、云小店、代理商平台、B2B2C商城、B2B大宗交易平台、跨境电商服务、大数据平台搭建、微服务架构等产品、各种定制商城及解决方案。
网站声明:以上内容为朗尊软件官方网站的原创文章,如需转载,请注明出处,谢谢合作!
上一篇: LegendShop电商系统三级分销功能介绍
下一篇: 做新零售,别聊虚的 - 朗尊软件,企业级电商平台提供商
相关文章
Legendshop电商商城系统在技术上有哪些优势
多门店管理,让线上线下皆大欢喜!
传统制造企业如何通过工业品B2B网站转型高端制造企业?
开源商城系统介绍企业写开源多用户商城 - 朗尊软件,企业级电商平台提供商
供应链金融浅析 - 朗尊软件,企业级电商平台提供商
电商头条新闻
1
工业行业 | 工业产品B2B跨境电商解决方案
2
私域电商如何赶上智能热潮?
3
三一全球购 | B2B2C电商平台+员工福利平台的定制解决方案
4
跨境电商 | B2B2C跨境电商系统解决方案
5
社群团购系统——社区流量与社交电商融合
热门标签
小羊直播
供应链
电商系统
Java商城
电商平台
B2B商城
跨境电商
商城平台
新零售系统
云商城系统
B2B2C商城系统
多用户商城
微服务商城
供应链商城
商城系统
电商直播系统
私域电商
大宗交易平台
数字化转型
直播供应链
全渠道零售
O2O商城系统
java开源商城
SAAS云平台
B2C商城系统
SaaS系统
生鲜电商
用户标签
APP
S2B
MRO平台
微信小程序商城
移动商城
社区电商
营销活动
新零售电商
分销系统
门店管理
分销体系
社交电商
直播电商
数字化
客服系统
社群电商
引爆流量
供应链金融
员工福利平台
工会福利商城
企业智慧采购平台
机械设备
抖音电商
数智化
数字化
区块链
S2B2C
B2B2B
订单融资
数字中台
VUE
用户标签
仓单融资
大数据
应收账款
集采代采
医药电商
推荐阅读
公告:【微信小程序备案】9月1日起,微信小程序需完成备案才可上架!
工业行业 | 工业产品B2B跨境电商解决方案
私域电商如何赶上智能热潮?
三一全球购 | B2B2C电商平台+员工福利平台的定制解决方案
跨境电商 | B2B2C跨境电商系统解决方案