Html 如何在IE11中使用flexbox制作粘性页脚?
我试图用flexbox做一个简单的设计,但我在IE11上遇到了麻烦。基本上,我想要一个页脚,只有在内容不够高的情况下才会粘到底部。我对Chrome这样做没有异议:Html 如何在IE11中使用flexbox制作粘性页脚?,html,css,flexbox,internet-explorer-11,Html,Css,Flexbox,Internet Explorer 11,我试图用flexbox做一个简单的设计,但我在IE11上遇到了麻烦。基本上,我想要一个页脚,只有在内容不够高的情况下才会粘到底部。我对Chrome这样做没有异议: *, *:之后, *:之前{ 框大小:边框框; } html, 身体{ 身高:100%; 保证金:0; 填充:0; } 身体{ 显示器:flex; 弯曲方向:立柱; } 主要{ 弹性:1; } 标题 主要 主要 主要 主要 主要 页脚 IE有一个min height错误,需要在flex column containers父项上显示
*,
*:之后,
*:之前{
框大小:边框框;
}
html,
身体{
身高:100%;
保证金:0;
填充:0;
}
身体{
显示器:flex;
弯曲方向:立柱;
}
主要{
弹性:1;
}
标题
主要
主要
主要
主要
主要
页脚
IE有一个min height
错误,需要在flex column containers父项上显示display:flex
,在本例中为html
像这样更新你的CSS
*,
*:之后,
*:之前{
框大小:边框框;
}
html,正文{
保证金:0;
显示器:flex;
}
身体{
弯曲方向:立柱;
最小高度:100vh;
}
主要{
柔性生长:1;
}
标题
主要
主要
主要
主要
主要
页脚
在main
上,而不是flex:1
使用flex:auto
。这就是你所需要的
flex:1
速记规则细分为:
flex-grow:1
flex-shrink:1
flex-basis:0
flex:auto
速记规则细分为:
flex-grow:1
flex-shrink:1
flex-basis:auto
.fullheight{
最小高度:100vh;
高度:200px;/*IE 11柔性箱最小高度固定*/
显示器:flex;
对齐项目:居中;
证明内容:中心;
柔性包装:包装;
对齐内容:居中对齐;
}
因为这可能是一个理想的解决方案:如果您不一定要增加main
标记,但仍要对齐底部的页脚:
html,正文{
保证金:0;
显示器:flex;
}
html{
身高:100%;
}
身体{
柔性流动:柱状nowrap;
柔性生长:1;
}
页脚{
页边顶部:自动;
}
标题
主要
主要
主要
主要
主要
页脚
这个答案()对我部分有效,但缩小了父容器的大小,我想在底部放置一个背景
所以我只选择了
位置:绝对
作为页脚只作为IE
您只能对IE使用媒体查询,因此其他浏览器可以正常工作(请看这里:)
在我的例子中,我想瞄准IE10和IE11,所以我使用了这个:
@介质全部和(-ms高对比度:无),(-ms高对比度:激活){
页脚{
位置:绝对位置;
底部:0;
}
.父容器{
职位:相对
//在父容器底部添加一些填充物,使其不会粘在一起
填充底部:30px;
}
}
不起作用。在本例中,“页脚”直接显示在“Main”顶部的“Header”下方。啊,是的,您可以将flex:1更改为flex-grow:1,这应该可以工作。这也可以工作..+1。尽管如此,当默认值为0 1 auto
时,flex:auto
为什么会变成1 auto
?啊哈,谢谢……以前真的错过了这一点,虽然它只改变了flex的基础(我属于老一代,我们不阅读手册:)min height
错误不是本例中的问题。但是flex-grow:1
会起作用,因为当您删除flex:1
时,它会将flex-basis
重置为auto
默认值。@Michael_B我刚才在您的回答中给出了您的评论之后,发现了这个问题,再次感谢