css-position 四种定位与元素浮动

在介绍定位之前,我们有必要了解一下文档流

1、文档流与脱离文档流

文档流是相对于盒子模型来讲解的,正常的文档流就是标签所处的一个空间,脱离文档流就是标签所处的另一个空间(正常空间之上的空间),一般来说,所有的页面操作都是基于这两个空间上完成的。并且脱离文档流空间的元素位置是不固定的,也没有块级和行级属性。 举个例子:当元素浮动时,会使其跳出文档流,也就是说后面的元素会无视先前它所占有的位置,直接在它的位置进行布局。

2、元素的定位

1)Static(默认值):
这个是元素的默认定位方式,会占据正常的空间,处于文档流之中,并且忽略“left”等属性是产生的任何效果。
2)Relative(相对定位)
相对定位的方式。相对于自身在文档流中所处的位置来进行定位,参照物为自身,仍处于文档流中,原先占有的空间仍保留(一般用作改变层级和作为绝对定位的参照物)
3)Absolute(绝对定位)
绝对定位是脱离文档流的,默认宽度为内容的宽度,在页面中是不占据空间的,后面的元素会在其原来的位置上进行布局,参照物为第一个定义的属性不是static的祖先或者父元素(如果没有父元素的话,那就应该以body为父元素),定位之后都会产生块级框。元素的位置通过“top”,”bottom”,”right”,”left”属性进行定位。
4)Fixed(固定布局)
固定布局是脱离文档流的,默认宽度为内容的宽度,参照物为浏览器窗口,其特性和absolute是相同的,当然,如果给头部定义了一个固定布局,头部则不会随着滚动条移动了(如百度的搜索框)。元素的位置通过“top”,”bottom”,”right”,”left”属性进行定位。
下面我们用实例来说明这些问题:
相对定位
相对布局 相对布局
以上两个div框生动的展示了在运用relative进行布局时,在使用top,left进行布局时,bottom与right的属性设置是不起作用的,它们的值是默认的,也就是自适应的,如上左图所显示; 当未设置top和left时,元素的位置会按照bottom和right进行定位,如上右图所显示。
代码如下:

<body>
    <div style="width:100px; height: 100px; background-color: lightblue;"></div>
    <div style="width: 100px; height: 100px; background-color: pink; position: relative; top: 20px; left: 20px; right: 20px; bottom: 20px;"></div>
</body>

绝对定位:
偏移量的设置
绝对定位与相对定位的偏移量的属性设置都是一样的,在top和left属性存在时,bottom和right属性的设置是不起作用的,它们脱离文档流且若不能确定元素位置的大小时,以偏移量来确定元素的具体位置
代码如下:

<div style="width:200px; height: 200px; background-color: lightblue;position: relative;">
        <div style="width: 100px; height: 100px; background-color: pink; position: absolute; top: 20px; left: 20px; right: 20px; bottom: 20px;"></div>
    </div>

3、浮动:

1)浮动可以使元素向左或向右偏移,会给每个元素产生一个块级元素框,直到这个块级框遇到边界框或者另一个元素的边框。且浮动使得元素脱离文档流,后面的元素会直接在其原来的位置上进行定位。
2)当元素在浮动的方向上没有足够的宽度来容纳它时,元素就会下坠到下一行;当然,如果浮动元素的高度是不相同的话,那么下坠的元素可能会将空缺的位置补齐。
下面以一组图片来说明这个问题:
这里写图片描述
这里写图片描述
以上就是浮动的一些东西,至于清除浮动,我们找时间再来一起讨论。

  • 8
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值