为了账号安全,请及时绑定邮箱和手机立即绑定

css的定位和布局把我搞糊涂了?

flow float layer和标准文档流 浮动和绝对定位又是怎么回事

正在回答

2 回答

在HTML中,有三种机制:文档流(默认) 浮动 定位。

文档流:默认机制,按照从上到下,从左到右的顺序排列,这是最基础的。

浮动:float:left|right;clear:both  ,脱离文档流,可以想象成子DIV 漂浮起来了,比如,一个父div,有两个子div,如果是在文档流中,两个子div是将父div分成上下两部分的,就像是“日”字;但是如果子div1 设置了float属性,那么子div2 就会往上移动,就会变成三个“口”字重叠在一起,最下面的那个口是父div,上一层是子div2,最上面是子div1 。

定位:position:absolute| relative|fixed  .

其中,absolute是绝对定位,脱离了文档流。根据设置了定位属性的父元素的左上角为基点,通过top right  bottom left来定位。如果父元素没有设置定位属性,那么以body的左上角为基点。比如三个div,id=one是父元素,两个子元素的id分别是two three  。设置one的position属性(absolute relative都可),设置two的position:absolute;left:10px; top:10px; three不设置position属性。那么情形和上面的float的三个“口”字重叠一样,底层是one,次一层是three,最上面是two,但是最上面的会向右和向下移动10px。

relative是相对定位,没有脱离文档流,不可叠加。还是上面的例子,三个div ,one two three。如果之设置two的position:relative;left:10px;top:10px;  那么结果就会是这样的:想象一个“日”字,上面的是two,下面的是three。虽然two向右 向下移动了10px,但是three依然不会占上去,依然在文档流中的原来位置。

2 回复 有任何疑惑可以回复我~
#1

Limargin

另外,fixed 是窗口绝对定位,就是那种烦人的广告,不管怎么拉都固定在某个位置的
2017-02-25 回复 有任何疑惑可以回复我~
#2

慕粉1474530878 提问者

非常感谢!
2017-03-01 回复 有任何疑惑可以回复我~

浮动定位是相对于容器(父元素)来讲的,当左浮动时,子元素在父元素左侧显示;当右浮动时,子元素在父元素右侧显示,父元素位置发生变化,子元素跟着一起变化。绝对定位是相对于浏览器窗口来说的,当元素进行绝对定位后,不会随着父元素变化而变化。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
网页布局基础
  • 参与学习       214707    人
  • 解答问题       1756    个

让你精通CSS中三大定位机制,彻底掌握网页布局的相关知识

进入课程

css的定位和布局把我搞糊涂了?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信