指教!求让绝对定位不脱离文档流的方法?

绝对定位后div就脱离文档流了...

结果导致后面的DIV都必须绝对定位,要不就挤上去了...

有什么方法令DIV不脱离文档流吗

没明白你的意思。不想脱离文档流就用相对定位

或者是在相对定位的元素内进行绝对定位

两个 A DIV ,B DIV。
我需要A和B有一部分重合,一部分不重合,相对定位会留下原来的位置,导致B和后面DIV之间有一条空隙。

所以我选择了绝对定位,但是绝对定位却又脱离文档流了,所以后面的DIV挤了上来到B下面被B覆盖了。

事实给后面的DIV就能解决现在的问题,但是我想问问除了这种方法还有什么方法...让B后面的DIV与B相接

定位都是相对的,所有的定位都要考虑定位父级
按照你的需求,A应该是相对定位,B做为A的子节点绝对定位即可,这样B的定位父级就是A,所有的偏移都是基于A的
根据你的需求将B定位到A的相对位置即可

你没搞懂position:absolute和position :relative的区别,position:absolute是相对于第一个非静态流 的父元素而言,所以一般都是在父元素中设置position:relative   子元素设置position:absolute这样就不会说定 位  错误了,因为如果你不设置position这个 属性,所有元素都是默认static  ,那么被设置为absolute的元素就会相对于body 来定位,导致位置错乱

定位都是相对的我懂,我的问题简单来说就是...绝对定位后的元素撑不开父元素,导致后面的元素挤到绝对定位的元素下面了

position: absolute;方式

<!doctype html>

<html lang="en">

<head>

<style type="text/css">

body {

    margin0;

    padding0;

}

#a {

    background-color#f00;

    height200px;

    width400px;

    margin-bottom100px;

}

 

#b {

    background-color#00f;

    height200px;

    width300px;

    positionabsolute;

    top100px;

}

 

#c {

    background-color#0f0;

    height200px;

    width500px;

}

 

</style>

</head>

<body>

<div id="a"></div>

<div id="b"></div>

<div id="c"></div>

</body>

</html>



position: relative;方式

<!doctype html>

<html lang="en">

<head>

<style type="text/css">

body {

    margin0;

    padding0;

}

#a {

    background-color#f00;

    height200px;

    width400px;

}

 

#b {

    background-color#00f;

    height200px;

    width300px;

    positionrelative;

    top-100px;

    margin-bottom-100px;

}

 

#c {

    background-color#0f0;

    height200px;

    width500px;

}

 

</style>

</head>

<body>

<div id="a"></div>

<div id="b"></div>

<div id="c"></div>

</body>

</html>




默认定位position: static方式

<!doctype html>

<html lang="en">

<head>

<style type="text/css">

body {

    margin0;

    padding0;

}

#a {

    background-color#f00;

    height200px;

    width400px;

}

 

#b {

    background-color#00f;

    height200px;

    width300px;

    margin-top-100px;

}

 

#c {

    background-color#0f0;

    height200px;

    width500px;

}

 

</style>

</head>

<body>

<div id="a"></div>

<div id="b"></div>

<div id="c"></div>

</body>

</html>

试试margin:负数

按照你 说的逻辑  难道 人要踩着另一个人的影子排队吗

你困惑是因为你吧定位 和 关系 混淆了

a,b 按你说法  他们的关系时 顺序排列
哪么他们之间应该是一个  静态关系 大家都是 position:statiic

然后你说 a要定位  哪么  a,b外面应该在套一个div 然后这个div用来定位,
资源代下载99dxz

我也遇到这样的问题  
我想的是   让C不要成为A的子元素    A相对定位  C拍在A后面   给A一定的宽高  C就不会和B重合了

难怪版主会无语,此贴我越往后翻越绝望, 现决定自己去测试十余种方案解决,  答非所问不如自己多测试!

听不懂不代表别人是不对的,这就是所谓的,跟卖菜者讲话,请勿之乎者也呀。

大哥    定位才会脱离文档流好吧,你这,,,啧啧啧

给父元素设置display:flex;justify-content: space-between;就可以实现子元素排版问题,当然对于复杂的元素不能这么操作。

父元素开启绝对定位之后,子元素加一margin-top,子元素兄弟元素都不会往上跑了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值