CSS定位总结

3 篇文章 0 订阅

定位(position)

1. static:

在标准流中,就算设置left,right,top,bottom也没有效果

2. relative

相对自己原来的位置移动

left:20px  自己左边距离20px,元素占据空间不变,周围的static元素不受影响。

  应用:把图片一直居中展示:

      先把装图片的div(.box)设置为overflow:hidden

      然后:.box img{

                  positiion:relative;

                  left:-960px;(图片的一半宽度)  /*图片向左移动img的一半*/  (或者transform:translate(-50%))

                  margin-left:50%;   /*向右移动父元素(.box)的一半*/

                  }

3. fixed固定定位

元素脱离normal flow

可以通过left,right,top,bottom进行定位,定位参照对象是视口(viewPort)

当画布滚动是,固定不动

 

4. absolute绝对定位

元素脱离标准流

可以通过left,right,top,bottom进行定位,
定位参照对象是最邻近的定位祖先元素,如果找不到这样的祖先元素,参照对象是视口

       定位元素:position的值不为staticd的元素即position的值为relative,absolute,fixed的元素

 

4.1 子绝父相

如果希望子元素相对于父元素进行定位,又不希望父元素脱标,常用解决方案是:

  • 父元素设置为position:relative(让父元素成为定位元素,而且父元素不脱离标准流)
  • 子元素设置position:absolute
  • 简称为子绝父相

如上图,父元素“手机考拉”不应该脱离标准流,子元素二维码有最好采用绝对定位,则父元素使用相对定位

绝对定位技巧

1. 绝对定位元素:positon值为absolute或者fixed的元素

2. 对于绝对定位元素来说:

定位参照对象的宽度=left+right+margin-left+margin-right+绝对定位元素实际占用宽度(上下方向类似)

所以,子绝父相的情况下:

1.让完全占据父元素: 子元素设置left:0,right:0(margin-left,margin-right默认为0)的情况下,子元素水平占据父元素

2.让内容居中:当子元素设置了宽高,要使子元素水平居中,可以设置left:0;right:0;margin:0 auto;

absolute的left,right默认为auto,无法确定是否可以左右平分,而手动将left,right设为0,margin-left,margin-right设置为auto,它可以水平居中

5. position总结

6. 元素的层叠

都是定位元素:后来的元素在原来的元素上面

6.1 z-index

 

 

 

ps:

可以脱离标准流的方式:fixed,absolute,float

脱离标准流元素的特点:

1. 可以随意设置宽高

2. 宽高默认由内容决定:

3. 不再受标准流的影响

4. 不向父元素汇报宽高

5. display属性为block,但由于没有父元素,width,height为auto时不知道父元素宽高,看起来很像“inline-block”

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值