Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css IE 11 flex align项目:使用绝对定位的div居中对齐div顶部,而不是中间_Css_Internet Explorer_Flexbox_Internet Explorer 11 - Fatal编程技术网

Css IE 11 flex align项目:使用绝对定位的div居中对齐div顶部,而不是中间

Css IE 11 flex align项目:使用绝对定位的div居中对齐div顶部,而不是中间,css,internet-explorer,flexbox,internet-explorer-11,Css,Internet Explorer,Flexbox,Internet Explorer 11,使用位置相对的父div并显示flex,align items:center,绝对定位的子组件不会按预期居中,而是该组件的顶部居中 有人知道如何避开这个怪癖吗 .crumb{ 宽度:100%; 边缘顶部:100px; 高度:100px; 背景颜色:灰色; } .箭头包装{ 高度:100px; 宽度:100px; 背景色:红色; 显示器:flex; 对齐项目:居中; 位置:相对位置; } .阿罗{ 高度:150像素; 宽度:80px; 背景颜色:蓝色; 位置:绝对位置; } 在下面添加css并选

使用位置相对的父div并显示flex,align items:center,绝对定位的子组件不会按预期居中,而是该组件的顶部居中

有人知道如何避开这个怪癖吗

.crumb{
宽度:100%;
边缘顶部:100px;
高度:100px;
背景颜色:灰色;
}
.箭头包装{
高度:100px;
宽度:100px;
背景色:红色;
显示器:flex;
对齐项目:居中;
位置:相对位置;
}
.阿罗{
高度:150像素;
宽度:80px;
背景颜色:蓝色;
位置:绝对位置;
}

在下面添加css并选中

  .arrow {
  height: 150px;
  width: 80px;
  background-color: blue;
  position: absolute;
top:-25px;
}

添加
CSS
.arrowWrapper
{margin:0 auto;}
和.arrow
{left:0;right:0;margin:0 auto;transform:translateY(-50%);top:50%}

.crumb{
宽度:100%;
高度:100px;
背景颜色:灰色;
}
.箭头包装{
高度:100px;
宽度:100px;
背景色:红色;
显示器:flex;
对齐项目:居中;
位置:相对位置;
证明内容:中心;
保证金:0自动;
}
.阿罗{
高度:60px;
宽度:80px;
背景颜色:蓝色;
位置:绝对位置;
右:0;
左:0;
最高:50%;
底部:0;
保证金:0自动;
转化:translateY(-50%);
}


这将使其水平居中,而不是垂直居中,如果您在chrome中打开代码笔,您将看到所需的效果我已经编辑了我的答案@MichaelNorriet,这将适用于此特定示例,但是实际的技术问题有多个div和多个hights,所以我希望有一个更通用的解决方案>您可以在chrome中打开代码笔以查看所需的效果