我有一个包含两个项目的flexbox布局.其中一个使用padding-bottom:
#flexBox {
border: 1px solid red;
width: 50%;
margin: 0 auto;
padding: 1em;
display: flex;
flex-direction: column;
}
#text {
border: 1px solid green;
padding: .5em;
}
#padding {
margin: 1em 0;
border: 1px solid blue;
padding-bottom: 56.25%; /* intrinsic aspect ratio */
height: 0;
}Run Code Online (Sandbox Code Playgroud)
<div id='flexBox'>
<div id='padding'></div>
<div id='text'>Some text</div>
</div>Run Code Online (Sandbox Code Playgroud)
当调整页面大小时,蓝色元素根据其宽度保持其宽高比. 这适用于Chrome和IE,看起来像:
但是,在Firefox和Edge中,我得到以下内容(它忽略了蓝色框上的填充,这是保持纵横比的原因):
我对flexbox太新了,不能真正理解这应该或不应该工作.flexbox的重点是调整大小,但我不确定为什么忽略内在填充,并将绝对大小放在蓝色元素上.
我想最终我甚至不确定Firefox或Chrome是否正在做正确的事情!任何Firefox Flexbox专家都可以提供帮助吗?
当使用overflow: scroll联合padding: /* ... */CSS属性,在元件的底部的填充缺少在Firefox.(但适用于Chrome和Safari.)
我是否遗漏了某些内容或是否有任何解决此问题的方法?
注意:该演示不使用任何库进行规范化,但我也尝试normalize.css过,但没有成功.
我有一个项目列表,我试图安排到一个可滚动的水平布局与flexbox.
容器中的每个项目都有左右边距,但最后一个项目的右边距正在折叠.
有没有办法阻止这种情况发生,或者是一个好的解决方法?
ul {
list-style-type: none;
padding: 0;
margin: 0;
display: flex;
height: 300px;
overflow: auto;
width: 600px;
background: orange;
}
ul li {
background: blue;
color: #fff;
padding: 90px;
margin: 0 30px;
white-space: nowrap;
flex-basis: auto;
}Run Code Online (Sandbox Code Playgroud)
<div class="container">
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
</ul>
</div>Run Code Online (Sandbox Code Playgroud)