我正在尝试将div放在其父级内,纵向和横向。
JSFIDDLE:http://jsfiddle.net/pE5QT/
CSS:
.parent {
width: 200px;
height: 200px;
background-color:red;
}
.child {
height: 100px;
width: 100px;
background-color:yellow;
}
HTML:
<div class="parent"> b
<div class="child"> a </div>
</div>
使用Javascript:
var parent = $('.parent');
var parentDimensions = parent.height() * parent.width();
var child = $('.child');
var childDimensions = child.height() * child.width();
parent.html();
child.html(childDimensions);
我很喜欢这个答案,但我也很想理解它背后的逻辑。
答案 0 :(得分:5)
使用jQuery'.css
函数,如下所示:
child.css({
top: parent.height()/2 - child.height()/2 ,
left: parent.width()/2 - child.width()/2
}) ;
不是很优雅,但它有效。其逻辑是通过定义其absolute
和top
属性,将孩子置于相对于其父容器的left
位置。
答案 1 :(得分:0)
您需要格式化代码,因为它看起来有点......粗略。
无论如何,我就是这样做的。在您的孩子CSS中,您可以执行以下操作:
.child {
height: 100px;
width: 100px;
background-color:yellow;
margin-left: auto;
margin-right: auto;
}
然后进行垂直定位:
child.css({'margin-top': (parent.height() - child.height()) / 2);
答案 2 :(得分:0)
试试这段代码:
var parent = $('.parent');
var child = $('.child');
child.css("position","absolute");
child.css("top", ((parent.height() - child.outerHeight()) / 2) + parent.scrollTop() + "px");
child.css("left", ((parent.width() - child.outerWidth()) / 2) + parent.scrollLeft() + "px");
以下是工作演示:http://jsfiddle.net/pE5QT/23/