Html 高度可变的垂直居中和绝对div

Html 高度可变的垂直居中和绝对div,html,css,centering,Html,Css,Centering,我有一个绝对定位的孩子在一个相对定位的父母里面。子对象应该垂直居中显示在父对象旁边。请参阅此JSFIDLE: 问题是父母和孩子的身高在设计时都是未知的,所以我尝试使用负边际法的百分比,但结果完全是疯狂的,我无法找出我的代码出了什么问题 HTML: 然后,子对象显示在父对象顶部的某个位置,即使代码看起来会垂直居中。在小提琴中,-50%的余量计算为-112px。WTF 如果你知道发生了什么,请帮帮我。我已经挣扎了几个小时。百分比总是相对于包含块的宽度,所以这不会像您预期的那样工作 如果您有其他选择,

我有一个绝对定位的孩子在一个相对定位的父母里面。子对象应该垂直居中显示在父对象旁边。请参阅此JSFIDLE:

问题是父母和孩子的身高在设计时都是未知的,所以我尝试使用负边际法的百分比,但结果完全是疯狂的,我无法找出我的代码出了什么问题

HTML:

然后,子对象显示在父对象顶部的某个位置,即使代码看起来会垂直居中。在小提琴中,-50%的余量计算为-112px。WTF

如果你知道发生了什么,请帮帮我。我已经挣扎了几个小时。

百分比总是相对于包含块的宽度,所以这不会像您预期的那样工作

如果您有其他选择,我建议您使用:

.parent {
    position: relative;
}

.child {
   -o-transform: translateY(-50%);
   -webkit-transform: translateY(-50%);
   -moz-transform: translateY(-50%);
   -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    position: absolute;
    right: 100%;
    top: 50%;
}
(除IE8外,这一点得到了很好的支持)

百分比始终与包含块的宽度相关,因此这不会像您预期的那样工作

如果您有其他选择,我建议您使用:

.parent {
    position: relative;
}

.child {
   -o-transform: translateY(-50%);
   -webkit-transform: translateY(-50%);
   -moz-transform: translateY(-50%);
   -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    position: absolute;
    right: 100%;
    top: 50%;
}
(除IE8外,这一点得到了很好的支持)

百分比始终与包含块的宽度相关,因此这不会像您预期的那样工作

如果您有其他选择,我建议您使用:

.parent {
    position: relative;
}

.child {
   -o-transform: translateY(-50%);
   -webkit-transform: translateY(-50%);
   -moz-transform: translateY(-50%);
   -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    position: absolute;
    right: 100%;
    top: 50%;
}
(除IE8外,这一点得到了很好的支持)

百分比始终与包含块的宽度相关,因此这不会像您预期的那样工作

如果您有其他选择,我建议您使用:

.parent {
    position: relative;
}

.child {
   -o-transform: translateY(-50%);
   -webkit-transform: translateY(-50%);
   -moz-transform: translateY(-50%);
   -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    position: absolute;
    right: 100%;
    top: 50%;
}

(除IE8外,此功能支持得相当好)

1+Nice。。我以前从未见过这种方法。1+很好。。我以前从未见过这种方法。1+很好。。我以前从未见过这种方法。1+很好。。我以前从未见过这种方法。在
.child
中,删除
页边距顶部
顶部
位置或设置为自动。请参阅此小提琴:作为替代,如果不需要绝对定位,您可能还需要在<代码>中考虑。子< /代码>删除<代码>边缘顶部<代码>和<代码>顶部<代码>位置或设置为Auto.请参阅此小提琴:作为替代,如果不需要绝对定位,您可能还需要在<代码>中考虑。子< /代码>删除<代码>边缘顶部<代码>和<代码>顶部<代码>位置或设置为Auto.请参阅此小提琴:作为替代,如果不需要绝对定位,您可能还需要在<代码>中考虑。子< /代码>删除<代码>边缘顶部<代码>和<代码>顶部<代码>位置或设置为Auto.看到这个小提琴:作为另一种选择,如果绝对定位不是必需的,你也可能需要考虑。