Nin*_*art 2 html css css3 flexbox
我想显示一个带图像和文字的按钮.文本和图像必须居中并位于同一行/行上.
在Firefox中,图像和文本始终位于不同的行上.我怎么解决这个问题?
这就是我所拥有的:
button {
display: inline-flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: center;
align-content: stretch;
align-items: center;
}
button img {
order: 0;
flex: 0 1 auto;
align-self: auto;
}
button span {
order: 0;
flex: 0 1 auto;
align-self: auto;
}
Run Code Online (Sandbox Code Playgroud)
某些HTML元素按设计不接受display更改.其中三个元素是:
<button><fieldset><legend>例如,display: table不会工作fieldset.
同样,施加display: inline-flex到button将被浏览器忽略.
还有其他合理的限制.例如,一些浏览器会忽略overflow: scroll的button要素.(经过测试:Firefox,没有滚动; Chrome,是的)
所以,底线,一个
button元素不能是一个flex容器.最简单的解决方法是换行的内容
button的div,使div柔性容器.或者(如评论中所述)使用aspan而不是adiv,因为这样可以保持标准符合性.
HTML
<button href="#">
<div>
<img src="http://placehold.it/10x10">
<span>Click me</span>
</div>
</button>
Run Code Online (Sandbox Code Playgroud)
CSS
div {
display: flex;
justify-content: center;
align-items: center;
}
Run Code Online (Sandbox Code Playgroud)
注意:虽然它们不能是弹性容器,但button元素可以是弹性项目.
在这里了解更多: