Html CSS3基于同级子级高度设置div边距

Html CSS3基于同级子级高度设置div边距,html,css,Html,Css,我有一个html结构,如下所示 有没有CSS方法可以在id='user'的标记名上设置样式并将其推到具有postTitle类名的div下面,我无法更改HTML结构。div.postTitle根据用户输入更改其内容,因此它没有固定的高度。这可能是一个糟糕的解决方案,但下面是: #user { position:absolute; ... } 用这个来定位其他元素,用jQuery也可以用纯javascript来定位 var titleHeight = document.getElementById

我有一个html结构,如下所示


有没有CSS方法可以在id='user'的标记名上设置样式并将其推到具有postTitle类名的div下面,我无法更改HTML结构。div.postTitle根据用户输入更改其内容,因此它没有固定的高度。

这可能是一个糟糕的解决方案,但下面是:

#user {
position:absolute;
...
}
用这个来定位其他元素,用jQuery也可以用纯javascript来定位

var titleHeight = document.getElementById('postTitle');
var userHeight= document.getElementById('user');
$("#user").css("margin-top",titleHeight.clientHeight)
$(".postContent").css("margin-top",userHeight.clientHeight)


希望有帮助。

我不这么认为。如果你不能更改HTML,那么你将不得不使用JS,因为CSS不能根据后面的元素调整前一个元素的属性

Jquery解决方案

$(文档).ready(函数(){
$(“#user”).clone().insertAfter(“#postTitle”);
$(“#用户”).remove();
});
.postTitle{
字体大小:粗体;
填充:10px;
背景颜色:黄色;
}
#使用者{
填充:10px;
颜色:白色;
背景颜色:绿色;
}
.后内容{
背景颜色:橙色;
填充:10px;
}
.答复{
背景颜色:棕色;
填充:10px;
}

约翰·史密斯,高级用户
这是一个很长的标题,有很多内容。。。fgdsfgdfgdsfgdsfgdfgg DSDFGSDFGDFGDSFGFGFG DFDFGDSFGDFG dsf GSDFGSDFGDSFGDFHFDFGHDFGDFGHFDGHFGHSFGDFSGSDFGDSFGDSGDSF
gsdfgdsfgdfsgdfsgdsfg
回复

实际上,我想要的是将用户信息放在postTitle和postContent之间。使用Jquery解决方案编辑。我接受这个答案,因为我没有找到纯CSS解决方案。顺便说一下,在jQuery中,不需要clone()和remove(),insertAfter()基本上是从一个地方移动到另一个地方的。位置还可以,但我想知道是否有一个没有JS的解决方案,只有CSS3。
#user {
position:absolute;
...
}
var titleHeight = document.getElementById('postTitle');
var userHeight= document.getElementById('user');
$("#user").css("margin-top",titleHeight.clientHeight)
$(".postContent").css("margin-top",userHeight.clientHeight)