[英]padding bottom not working in firefox & IE11
CSS
body, html {
background: violet
}
* {
margin: 0;
padding: 0
}
.fixed {
height: 100%;
width: 300px;
background: #fff;
right: 0;
position: absolute;
top: 0;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
border-left: 1px solid red;
}
.container {
-ms-flex: 1 1 auto;
-webkit-flex: 1 1 auto;
flex: 1 1 auto;
overflow-y: auto;
box-sizing: border-box;
padding: 30px 60px;
}
.footer {
border-top: 1px solid #f0f0f0;
box-sizing: border-box;
padding-left: 35px;
background: red
}
我在Chrome和Firefox浏览器中尝试过以上代码。 我也附上了两个截图。 我想知道为什么padding-bottom:60px在Firefox中不起作用。 但是,它在Chrome浏览器中运行良好。 也不适用于IE11
在Chrome浏览器中(工作正常):
在Firefox浏览器中(Padding Bottom无效。为什么?):
真的我不明白这个..
许多专家告诉很多原因,比如溢出属性导致这个或显示:如果你搜索一个原因,flex处理填充有点不同。 @Temani Afif是正确的并且也纠正了我,这是最近出现的overflow-y:scroll
或overflow-y:auto
不考虑padding-bottom的错误。
https://bugzilla.mozilla.org/show_bug.cgi?id=1417667
为了快速解决您可以做的事情,而不是在具有overflow-y属性集的flex项目上应用底部填充,将其应用于项目的伪元素之后,例如
.container {
-ms-flex: 1 1 auto;
-webkit-flex: 1 1 auto;
flex: 1 1 auto;
overflow-y: auto;
box-sizing: border-box;
padding: 30px 60px 0 60px;
}
.container:after {
content:'';
display:block;
padding-bottom:30px;
}
希望这可以帮助你和所有其他人。
这是因为overflow-y: auto;
规则。 试试这个CSS
.container {
-ms-flex: 1 1 auto;
-webkit-flex: 1 1 auto;
flex: 1 1 auto;
overflow-y: auto; /* This rule affect the padding-bottom, quit it and see the results */
box-sizing: border-box;
padding: 30px 60px;
}
.footer {
border-top: 1px solid #f0f0f0;
box-sizing: border-box;
padding-left: 35px;
background: red;
margin-top: 60px; /* This rule add the effect you want */
}
从理论上讲,padding-bottom就在那里,但当你应用overflow-y:auto;
滚动条占用所有可用空间。
如果你不想添加一个margin-top: 60px;
你可以尝试这个新的CSS:
.container {
-ms-flex: 1 1 auto;
-webkit-flex: 1 1 auto;
flex: 1 1 auto;
overflow-y: auto;
box-sizing: border-box;
}
.container p {
padding: 30px 60px;
}
.footer {
border-top: 1px solid #f0f0f0;
box-sizing: border-box;
padding-left: 35px;
background: red;
}
或尝试此解决方案:
.container {
overflow-y: auto;
padding: 30px 60px;
}
.container p {
padding: 0 0 60px 0;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.